Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redesign of events page #1210

Merged
merged 33 commits into from
Mar 29, 2024
Merged

Redesign of events page #1210

merged 33 commits into from
Mar 29, 2024

Conversation

hedyhli
Copy link
Member

@hedyhli hedyhli commented Jan 20, 2024

Closes #494

This PR attempts address the proposal from the linked issue by redesigning our events page to draw more engagement. This includes making the content more easily accessible and organized.

It is also an opportunity to update the page to be more up-to-date on the latest events for this new year.

Pages on preview:
https://deploy-preview-1210--pydis-static.netlify.app/events/


Behold, responsive masonry in CSS only

pydis_masonry.mov

Implications

The events page would need to be updated more frequently due to this redesign. This means every time an event starts or finishes, we should update the page.

Limitations

Masonry grids

To have a good-looking grid with items of variable heights for our regular and one-off events, masonry was required.

Why do we want Masonry??

It isn't easy to have all our event descriptions to have the same visual height.

image

It might be possible to have flexible thumbnail heights though, to compensate the offsets created from the variable description heights. However, to have the Bulma card component sections work with flexbox is not very easy and I found Masonry to be more flexible.

For maximum end-user-experience and developer experience, Masonry itself would be probably be the best bet. However I was against adding a whole javascript dependency just for these two sections so I made use of the newly discovered CSS-only flexbox solution instead.

We can't simply use Bulma columns because we need to preserve item ordering on mobile, where no columns are used.

What do you mean??

If we use bulma columns, we will define a div with class "column" for each visual column. On wide viewports it will show like this:

image

But on mobile, where we disable side-by-side columns it will show like this:

image

🔗 Excalidraw

This is not desirable for the regular events grid because we might want to have a specific ordering for the showcase, nor the one-off events because we might want it to be in reverse-chronological order.

This came with the limitation that whenever items in the grids are updated we have to modify the height in CSS manually, ensuring it has enough room for all screen widths from around 600px to 1000px. This was a pain during development, and for the future when we are adding/removing items from the grid the person who updates it should not be overly involved in the CSS.

The implementation is in the events/base.css CSS file with comments.

Ideas for the future

Assets

Should use the same icons for the same event, or should we use the annual branding? For instance, we have different branding for each Pyweek and Code Jam, should the icon used in the "scheduled"/"previous" events use the specific branding for that year, this makes multiple entries of the same event have different icons.

Currently, I use the same Pyweek icons, but for Code Jam 2023, I used the 2023 icon, and for the rest, used 2022 icon.

Todo

Design

  • Implement masonry layout, hopefully without JS dependency
  • Consider using more fancy colors than white
  • Fix up spacing
  • Fix layout on tablets
  • Ensure consistency on mobile
  • Reconsider better labels and title text

Content

  • Add one-off events list
  • Apply changes suggested by Kat (on owners qna)
  • Finalize the assets to use
  • Finalize list and order of events
  • Ensure event schedules are correct
  • Fill up all the event pages

Etc.

  • Do dark theme stuff

--- Optimistic deadline: February ---
--- WIP ➡️ ready for reviews ---

Maybe

  • Minify and/or lazy-load all the images
  • Document in a readme how to update info in the future for new events
  • Should the events page get a special dazzling hero section similar to the home page with a confetti icon?

Copy link

netlify bot commented Jan 20, 2024

Deploy Preview for pydis-static ready!

Name Link
🔨 Latest commit ece9c31
🔍 Latest deploy log https://app.netlify.com/sites/pydis-static/deploys/66069a60b39d02000837e234
😎 Deploy Preview https://deploy-preview-1210--pydis-static.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

- Added standalone pages for each event
- Added initial design of new layout
- Refactored some sidebars and templates to update current/upcoming
  event
- Put two CJ10 assets into their own dedicated folder

Includes dummy text for event descriptions and content that is not
up-to-date: Current and Upcoming event components.
@coveralls
Copy link

coveralls commented Jan 20, 2024

Coverage Status

coverage: 100.0%. remained the same
when pulling ece9c31 on feat/events-redesign
into 1e5b465 on main.

@hedyhli hedyhli added status: WIP Work In Progress area: frontend Related to site content and user interaction type: enhancement Changes or improvements to existing features priority: 2 - normal Normal Priority labels Jan 20, 2024
Aka, many minor changes I shouldn't've grouped together in a single
commit.

- Add main page events description
- Use date icons every where
- Fill up one-off events list
- Use a media-like layout for one-off events instead
- Use 2-column masonry for one-off events list
- Update schedules for this year
- Add a colored top border line to cards in the main gallery that do not
  have thumbnail banners
- Add april fools to fill the gap in the second row so the grid looks
  better
- Re-purpose 'all events' sidebar as 'ToC' with appropriate anchor links
- Use circle-info icon everywhere for learn more buttons
- Added python release streams to the one-off events

That light blue cloud icon for devops hour looks dope IMO :P

- And of course, thanks to the layout change for one-off events list I
  do not have to hurriedly create ad-hoc thumbnails for them 😔. phew
- Which means our fancy hats workshop can use the beautiful magician hat
  emoji as the icon!

- Renamed 'scheduled' and 'recent' events to be year-independent. This
  makes it consistent because we might end up updating the list
  mid-year. This means all dates will have the year specified.

The pain of updating the gallery sections' height for both main and
one-off events section continues to be a limitation.
@hedyhli
Copy link
Member Author

hedyhli commented Feb 14, 2024

There are still a number of issues with the design, but I've run out of ideas on how to best solve them. So I'll mark this PR as ready for review now.

@hedyhli hedyhli marked this pull request as ready for review February 14, 2024 09:05
@hedyhli hedyhli added s: needs review Author is waiting for someone to review and approve and removed status: WIP Work In Progress labels Feb 14, 2024
Copy link
Contributor

@janine9vn janine9vn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't take an in-depth look at the code because I more-so care how it presents (and html is only so interesting). Overall, I love it! It presents what we do really well and is really and easily digestible.

Thank you so much for your work on this.

It's not completely over yet as the winners are yet to be announced, but
the coding phase, as shown in the date "March 17-24th" has passed so it
no longer makes sense to list it as ongoing.
@jchristgit jchristgit self-assigned this Mar 29, 2024
@jchristgit jchristgit self-requested a review March 29, 2024 10:10
Copy link
Member

@jchristgit jchristgit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks very good to me, thank you for the hard work!

I have a few tiny nitpicks, after that it looks good to merge to me. Thank you again!

pydis_site/templates/events/other_events.html Outdated Show resolved Hide resolved
pydis_site/templates/events/pages/game-jams/_index.html Outdated Show resolved Hide resolved
pydis_site/templates/events/pages/pyweek/_index.html Outdated Show resolved Hide resolved
Co-authored-by: jchristgit <jc@jchri.st>
@hedyhli hedyhli requested a review from jchristgit March 29, 2024 10:41
@jchristgit jchristgit merged commit dac3226 into main Mar 29, 2024
12 checks passed
@jchristgit jchristgit deleted the feat/events-redesign branch March 29, 2024 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: frontend Related to site content and user interaction priority: 2 - normal Normal Priority s: needs review Author is waiting for someone to review and approve type: enhancement Changes or improvements to existing features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Re-work our main events page
4 participants