Song Select V2: Difficulty Slider end bit decolors too early
Type
Cosmetic
Bug description
Does not look coherent with carousel color scheme, where purple persists during 8 star maps.
Screenshots or videos
https://github.com/user-attachments/assets/93e8f46f-ac7e-4922-8d77-393b303e514c
Version
b597f3e
Logs
https://github.com/ppy/osu/blob/9d3ee2a57340e6935ce6cd278f5cabbcd245b19f/osu.Game/Screens/SelectV2/FilterControl_DifficultyRangeSlider.cs#L158-L159
I can't tell if this was done intentionally or was typo'd because 9 stars is where black starts. @peppy do we just change this to 9?
If things are still legible at 9 then changing it is fine, yes.
The cutoff was arbitrarily chosen by @frenzibyte, intending to be the point where it would stop being legible to read dark-on-dark.
Any colour at 8* or afterwards becomes too dark for the nub, because it interpolates from the 7.7* dark purple to 9* black. One suggestion I can offer is to alter the spectrum such that the 9* black is replaced with the grey colour currently used instead:
diff --git a/osu.Game/Screens/SelectV2/FilterControl_DifficultyRangeSlider.cs b/osu.Game/Screens/SelectV2/FilterControl_DifficultyRangeSlider.cs
index 58c9c60460..9cc4bc7ac7 100644
--- a/osu.Game/Screens/SelectV2/FilterControl_DifficultyRangeSlider.cs
+++ b/osu.Game/Screens/SelectV2/FilterControl_DifficultyRangeSlider.cs
@@ -29,7 +29,13 @@ public partial class DifficultyRangeSlider : ShearedRangeSlider
private static readonly (float, Color4)[] spectrum = OsuColour.STAR_DIFFICULTY_SPECTRUM
.Skip(1)
- .Prepend((0.0f, OsuColour.STAR_DIFFICULTY_SPECTRUM.ElementAt(1).Item2)).ToArray();
+ .Prepend((0.0f, OsuColour.STAR_DIFFICULTY_SPECTRUM.ElementAt(1).Item2))
+ .SkipLast(2)
+ .Concat(new[]
+ {
+ (9.0f, OsuColour.Gray(0.25f)),
+ (10f, OsuColour.Gray(0.25f)),
+ }).ToArray();
public DifficultyRangeSlider()
: base("Star Rating")
@@ -155,9 +161,6 @@ protected override void UpdateDisplay(double value)
Colour4 nubColour = ColourUtils.SampleFromLinearGradient(spectrum, (float)Math.Round(value, 2, MidpointRounding.AwayFromZero));
nubColour = nubColour.Lighten(0.4f);
- if (value >= 8.0)
- nubColour = colours.Gray4;
-
Nub.AccentColour = nubColour;
Nub.GlowingAccentColour = nubColour.Lighten(0.2f);
Nub.ShadowColour = Color4.Black.Opacity(0.2f);
https://github.com/user-attachments/assets/998c4627-7698-441c-8e96-283860742ff8
Compared to the actual colours used in difficulties at such star ratings, this spectrum will give a greyed version instead.
that diff above is probably fine
If things are still legible at 9 then changing it is fine, yes.
The cutoff was arbitrarily chosen by @frenzibyte, intending to be the point where it would stop being legible to read dark-on-dark.
I don't want to pretend like I know better from the design team but I don't get why white is used in the first place. I would've assumed that the slider's color scheme would stay similar to the diff. color scheme. (website, carousel... Where yellow text starts on 6.5 diff.) but white text on 7+ diff doesn't correspond.
Text should be readable if it's mimicking the already known color diff. scheme.
Video to show what I mean, done on a separate branch
https://github.com/user-attachments/assets/ac733c44-06cf-4361-9573-f76765789287
(numbs unselected)