gnome-shell/data/theme
Georges Basile Stavracas Neto ca503774b2 panel: Add workspaces indicators in activities button
After removing the app name and icon, the next natural step that
was requested from the design team is to add workspaces indicators
to the top bar, where currently the Activities button is placed.

In addition to that, this is desired because there are known issues
with using "Activities" as a label for the overview. A more
comprehensive rationale for that can be found at [1].

Add an workspaces indicator replacing the Activities label in the
activities button.

The WorkspaceIndicators class controls how many workspaces dots
exists, their expansion, and the width multiplier. The WorkspaceDot
class takes the expansion and the multiplier, and applies it
internally so that we can get perfectly rounded dots at all
times without using CSS hacks.

The width multipliers are hardcoded, and defined by the design
team. We can revisit them later if necessary. Special care is
taken to not let these width multipliers result in fractional
widths.

When the number of workspaces changes, WorkspaceIndicators adds
new dot to the end, and animate them. When removing, scale the dot
out, then destroy it.

This does not work with workspace grids, but that's not supported
by GNOME Shell anyway, so no effort is made to cover this use case.

The button continues to have "Activities" as its accessible name,
but the label actor is removed.

Also adjust the padding of the activities pill, so it better wraps
the new indicators.

[1] https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/227

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2902>
2023-08-19 15:54:04 +00:00
..
gnome-shell-sass panel: Add workspaces indicators in activities button 2023-08-19 15:54:04 +00:00
calendar-today-light.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
calendar-today.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
checkbox-focused.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
checkbox-off-focused-light.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
checkbox-off-focused.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
checkbox-off-light.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
checkbox-off.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
checkbox.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
dash-placeholder.svg dash: Improve DND to dash and allow reordering 2010-11-29 16:35:54 +01:00
gnome-shell-dark.scss theme: Include both dark and light variant in resource 2023-05-25 17:10:53 +02:00
gnome-shell-high-contrast.scss styling: Don't switch app icons to symbolic for HC 2022-11-28 14:12:33 +00:00
gnome-shell-light.scss theme: Include both dark and light variant in resource 2023-05-25 17:10:53 +02:00
gnome-shell-start.svg welcomeDialog: Add “welcome” dialog 2021-02-05 13:41:26 +00:00
meson.build theme: Include both dark and light variant in resource 2023-05-25 17:10:53 +02:00
pad-osd.css padOsd: Figure out label/edition UI positions from unchanged fonts 2022-09-02 19:24:47 +00:00
process-working.svg spinner: use a 60fps spinner 2015-08-05 13:44:32 +02:00
README.md docs: Use Markdown 2018-05-23 19:03:01 +02:00
running-indicator.svg theme: Make the running indicator look as it's supposed to 2011-06-27 12:53:38 -04:00
toggle-off-hc.svg style: High Contrast improvments 2022-11-24 09:54:02 +00:00
toggle-off-light.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
toggle-off.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
toggle-on-hc.svg theme: Stylesheet papercuts and other visual fixes 2022-02-14 13:35:41 -03:30
toggle-on-light.svg stylesheet: Fixes and missed updates for the 42 refresh 2022-01-21 18:11:37 +00:00
toggle-on.svg theme: Minor fixes from the 42 beta 2022-02-22 18:39:41 +00:00
workspace-placeholder.svg theme: Rotate placeholder for horizontal workspace-thumbnails 2021-05-01 00:16:29 +03:00

Summary

Do not edit the CSS directly, edit the source SCSS files and the CSS files will be generated automatically when building with meson + ninja and left inside the build directory to be incorporated into the gresource XML (you'll need to have sassc installed).

How to tweak the theme

Adwaita is a complex theme, so to keep it maintainable it's written and processed in SASS, the generated CSS is then transformed into a gresource file during gtk build and used at runtime in a non-legible or editable form.

It is very likely your change will happen in the _common.scss file. That's where all the widget selectors are defined. Here's a rundown of the "supporting" stylesheets, that are unlikely to be the right place for a drive by stylesheet fix:

File Description
_colors.scss global color definitions. We keep the number of defined colors to a necessary minimum, most colors are derived from a handful of basics. It is an exact copy of the gtk+ counterpart. Light theme is used for the classic theme and dark is for GNOME3 shell default.
_drawing.scss drawing helper mixings/functions to allow easier definition of widget drawing under specific context. This is why Adwaita isn't 15000 LOC.
_common.scss actual definitions of style for each widget. This is where you are likely to add/remove your changes.

You can read about SASS on its web page. Once you make your changes to the _common.scss file, you can run ninja to generate the final CSS files.