Cursor redesign
Open, Needs TriagePublic

Description

The current cursor theme does not really seem to fit with other Breeze UI elements. This is rather prominent when it comes to the colors used for some cursors.

Also the overall style and design paradigm might be a bit off. I think they are somewhat derived from Oxygen cursors?

This has already been brought up by me at the Consistency BoF at Academy 2020. Views on this were mixed.

For comparison and inspirational purposes:

Current Breeze cursors:

Yaru cursors (Ubuntu):

Windows 8.1 cursors (almost identical to Windows 10):

I propose to rethink the current cursor theme and identify aspects that are inconsistent / need changing to fit with the general UI of Plasma / KDE.

This is a spin off from https://bugs.kde.org/show_bug.cgi?id=428788.

Related Objects

StatusAssignedTask
OpenNone
OpenNone
clel created this task.Nov 10 2020, 12:35 PM
clel added a parent task: T10891: Breeze theme evolution.

Can you be more specific about "not really seem to fit with other Breeze UI elements"? What is the problem exactly?

clel added a comment.Nov 10 2020, 2:55 PM

For consistency see the categories listed at https://phabricator.kde.org/T13690.

In particular I think

  • the colors used might be problematic and don't seem to have been chosen with consideration of other used colors (at least they remained the same while other UI colors got changed)
  • the level of abstraction is sometimes higher and sometimes lower than usual
    • the spinners are rather detailed, arrows on them placed pretty far on the outside of the circle, two colors used for them giving them a somewhat "childish" look
    • resize and move icons feel a bit like in a game to me, not that much like a desktop environment
    • normal mouse cursor has an unsusual shape that instead of adding visual weight to the top of it moved the weight downwards

Unfortunately it is really hard to express the experience I have. I hope I could somewhat explain my impression. I only focused on negative parts, of course there are also parts that I like about the current theme.

ndavis updated the task description. (Show Details)Nov 10 2020, 3:48 PM
ndavis added a subscriber: ndavis.EditedNov 10 2020, 8:40 PM

I agree, a cursor theme update would be good.

I quite like the pointer shape of the earlier versions of Bibata cursors. The more colorful ones aren't really to my taste and the newer super round versions aren't either though.

I also like the slight modifications Capitaine cursors made to Breeze cursors.
https://cdn.pling.com/img/4/8/3/5/e6df21a4d723a4e21a1b85f9ae5979f6fb25.png
https://store.kde.org/p/1148692/

Overall, I think that the wedge shape the old version of Bibata uses is more in line with the style of Breeze icons.

clel added a comment.Nov 11 2020, 4:13 PM

When it comes to the normal cursor I still prefer it to have a "tail". That would also play more nicely with the rather conservative overall design decisions made in Breeze evolution, I think. I wonder how that shape looks with some short tail applied.

I really like the macOS Mojave cursors in that regard (https://store.kde.org/p/1355701/):

The hands are also much nicer than BigSur in my opinion (https://store.kde.org/p/1411743/):

However, I like the hand cursors of the current Breeze theme pretty much.

When it comes to colors, I personally prefer stronger ones in general, but as the current direction of other UI elements tend to less saturated ones, I guess one also has to somewhat reflect this in the cursor theme.

I know this is a bit of necromancy on this task, but it's becoming somewhat relevant with the exceptional design work from the Blue Ocean effort. Breeze has evolved significantly since the original graphics were created, and portions such as the spinners are quite behind the style of the desktop. I wouldn't go as far as to wholesale change the style, but we are due for the cursors to be adjusted slightly so they better fit the Breeze of 2022.

That being said what I'm really here to bring up is prepping Breeze Cursors so they can, eventually, follow the system color scheme and accent colour. I'm not sure if this task should be where the technical aspects are discussed, so I'll ask for forgiveness here and leave that stuff for last.

In terms of immediate work, I'd like to do the following to the Breeze cursors:

  • Begin making use of the CSS color syntax used in icons.
  • Make the cursors TinySVG-friendly. This boils down to using Halo-based shadows in lieu of filters.
  • Break the structure of the cursors down into individual files (I think someone did this already?)
  • Move any configuration values required to generate the cursors to the index.theme file.
  • Write up a new generator tool for cursor authors, which would likely also serve as a reference for the "real" implementation. (This would likely be Python to make it easy on downstream artists)
  • Update some components of the cursors to better fit the Blue Ocean work, e.g. spinners.

Technical Stuff Below:

In terms of the index.theme file changes, I'm thinking it may be structured something like...

# Exactly the same syntax here as normal icon sets. If "FollowsColorScheme" is present it's the hint that we have SVG files.
[Icon Theme]
FollowsColorScheme=true
Name=Breeze
# ... Translations ...
Comment=Breeze by the KDE VDG
# ... Translations ...

# Section name denoting cursor config is "Cursors" , capital C.
# After the "/" are available sizes.
[Cursors/24,36,48,72,96]

# Keys correspond to traditional xcursor files. Values are the paths to the SVGs, the x-hotspot, y-hotspot, and optional 4th value denoting the milliseconds-per-frame.
# For animated cursors the "*" character corresponds to a wildcard number denoting frame number. The number after "@" is the frame-rate. Skipping numbers results in hold frames. Lowest number is always the first frame.
# E.g. wait-*.svg would locate wait-0.svg, wait-1.svg, wait-7.svg, etc.
default=path/to/default.svg,4,4
all-scroll=path/to/all-scroll.svg,16,16
wait=path/to/wait-*.svg,16,y16,42
#...etc...

If this sort of structure is feasible to eventually springboard colour-aware cursors, I'll begin working on the outline I mentioned. I know it won't happen environment-side right away, but if I can get a thumbs up that this looks reasonable then we can be positioned for the feature in future.

Sounds like a great plan to me!