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

Add redesigned beatmap wedge for new song select #32480

Closed
wants to merge 44 commits into from

Conversation

frenzibyte
Copy link
Member

@frenzibyte frenzibyte commented Mar 20, 2025

Design reference: https://www.figma.com/design/GjPIkoh2kvt7hSLrqeinTQ/Client%2FSong-Select?node-id=6484-8213&t=GdkHN5mAyNgP0sdX-4

Preview:

CleanShot.2025-03-20.at.13.10.29.mp4

Follow-up tasks:

  • Display mod adjustments in beatmap difficulty statistics
  • Introduce a BeatmapSetLookupCache class to cache online beatmap attributes such as play & favourites count

@peppy
Copy link
Member

peppy commented Mar 21, 2025

There's quite a bit of movement in the fill flow line with play counts. I think it would help to pad each one so they (in the majority case) don't change position.

@minisbett
Copy link
Contributor

minisbett commented Mar 21, 2025

What about making the length and BPM right-aligned?

Another thing I thought about is what if you could click the heart icon (or whole UI element) of the favorite count to favorite the beatmapset? And when it's favorited, the heart appears in pink.

Overall the design looks really cool.

@frenzibyte
Copy link
Member Author

Right-side alignment won't work well for BPM since it's length is variable, also generally aligning anything on the right side on the wedge itself probably won't look good.

@frenzibyte
Copy link
Member Author

Added minimum padding to statistics as per suggestion.

video
CleanShot.2025-03-21.at.08.56.55.mp4

@tomm13
Copy link
Contributor

tomm13 commented Mar 21, 2025

In the design the bars above CS, OD,. AR, HP are the same width, this makes it easier to visually compare values
image

@frenzibyte
Copy link
Member Author

frenzibyte commented Mar 21, 2025

The width is based on the statistic label so it doesn't accumulate too much space to the left, giving hit count statistics a breathing space.

this makes it easier to visually compare values

I don't follow this part, it's not like the statistics move around when switching between beatmaps, what's hard to compare here?

@Tanza3D
Copy link

Tanza3D commented Mar 21, 2025

The width is based on the statistic label so it doesn't accumulate too much space to the left, giving hit count statistics a breathing space.

this makes it easier to visually compare values

I don't follow this part, it's not like the statistics move around when switching between beatmaps, what's hard to compare here?

image
i know the stacked comparison doesn't line up with the design but it gets across the point i think?

(just to explain what the person meant by that, not going to argue/suggest one way or another)

@peppy
Copy link
Member

peppy commented Mar 22, 2025

Agree they should all be the same width. I'm also not sure about the colour of the bars changing with the SR. Something about it is perturbing to me – it's updating dynamically but not with the thing it's representing.

Doesn't need to be changed immediately, but I think it may work better being coloured (or at least lightened) in line with the local number it's representing.

@Joehuu Joehuu self-requested a review March 27, 2025 02:44
Padding = new MarginPadding { Left = 10f },
Children = new[]
{
firstStatisticDifficulty = new WedgeStatisticDifficulty(BeatmapsetsStrings.ShowStatsCs) { Width = 65 },
Copy link
Member

@Joehuu Joehuu Mar 27, 2025

Choose a reason for hiding this comment

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

The fixed width doesn't work for other languages. The statistic can probably be autosized x, and the bar fixed to 65. I think it looks fine if the text is exceeds the bar (right now in english, the approach rate text is 70 and exceeds it).

Copy link
Member Author

Choose a reason for hiding this comment

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

I've adjusted that in some form in 6ca3685, now all statistics accumulate a width enough for the longest label across them.

Copy link
Member

Choose a reason for hiding this comment

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

Size invalidation doesn't seem to work reliably. Can reproduce when pressing up/down arrows on language dropdown.
Screenshot 2025-03-27 at 12 41 20 PM

Also I'm not really fond of this extreme case (one long translation and all others are wide):
Screenshot 2025-03-27 at 12 37 22 PM

Copy link
Member Author

Choose a reason for hiding this comment

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

Also I'm not really fond of this extreme case (one long translation and all others are wide):

I'm not sure that can be improved besides adding some spacing between the count and difficulty statistics, unless you have any bright ideas I'm not interested in dissecting this.

Copy link
Member

Choose a reason for hiding this comment

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

As I've said in the initial review, have the bar have a fixed width and text autosize. I consider this less broken than the huge amounts of whitespace in my previous image:
Screenshot 2025-03-27 at 8 47 20 PM

The figma also shows approach rate text width slightly over than the bar, unless that's an oversight.

Copy link
Member Author

Choose a reason for hiding this comment

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

How would this look if a statistic in the middle has a longer label than everything else, the bars will no longer be equally spaced and it'll look awkward in my eyes.

Copy link
Member

Choose a reason for hiding this comment

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

You might have a point, so I'll just wait for other opinions.

Screenshot 2025-03-27 at 9 16 54 PM

@Joehuu Joehuu mentioned this pull request Mar 27, 2025
17 tasks
@peppy
Copy link
Member

peppy commented Apr 8, 2025

Closing this PR as un-reviewable due to chained PRs with unclear dependencies.

For changes of this size, it's nigh impossible to review on a per-PR basis. Some PRs in the sequence are very unclear on why they "depend" on the previous PR. There are hundreds of commits but individual commits are not meaningful.

#32673 -> #32480 -> #32496 -> #32533 -> #32715

will (attempt) review of #32715 alone

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants