gnome-shell/data/theme
Florian Müllner 3fe45e29e4 theme: Replace gnome-shell-sass submodule with subtree
As the style has grown bigger and more complex, generating the different
variants from a common source has been a good decision. However given how
intertwined the theme is with gnome-shell itself, relying on a submodule
has proven to be quite painful. And as things stand right now, it is going
to get worse:

 - using either pre-generated CSS or generating it at build time is
   odd, and violates meson's strict separation between source- and
   build directories; we are therefore considering dropping the CSS
   and depending on sassc to always generate it at build time

 - with the migration to gitlab, our workflow shifts decisively towards
   branches; however there is no support in either git or gitlab for
   handling two brances of separate repositories consecutively, which
   gets particularly awkward for branches in a private namespace

With those pain points in mind, we will adjust our setup as follows:

 - remove the submodule from gnome-shell and instead import the
   sass as subtree

 - after that, the sass sources can be changed like any other files
   in the repository, and regular contributors can forget that there
   was ever anything special about them

 - whenever we want to update the classic style, we can push the subtree
   changes and bump gnome-shell-extension's sass submodule

In other words: Updating the classic styling will become slightly more
painful, but not much and only for me; in return, everyone else can
stop fiddling with submodules (and buy me a beer).
2018-02-09 21:45:09 +00:00
..
gnome-shell-sass theme: Replace gnome-shell-sass submodule with subtree 2018-02-09 21:45:09 +00:00
calendar-arrow-left.svg
calendar-arrow-right.svg
calendar-today.svg calendar: make day with events more prominent 2015-04-15 13:05:01 +02:00
checkbox-focused.svg theme: update some svg assets to adwaita 3.14 counterparts 2015-02-20 15:14:40 +01:00
checkbox-off-focused.svg theme: update some svg assets to adwaita 3.14 counterparts 2015-02-20 15:14:40 +01:00
checkbox-off.svg theme: update some svg assets to adwaita 3.14 counterparts 2015-02-20 15:14:40 +01:00
checkbox.svg theme: update some svg assets to adwaita 3.14 counterparts 2015-02-20 15:14:40 +01:00
close-window-active.svg add missing close button states 2017-09-22 17:13:07 +02:00
close-window-hover.svg add missing close button states 2017-09-22 17:13:07 +02:00
close-window.svg add missing close button states 2017-09-22 17:13:07 +02:00
close.svg
corner-ripple-ltr.png
corner-ripple-rtl.png
dash-placeholder.svg
filter-selected-ltr.svg
filter-selected-rtl.svg
gnome-shell-high-contrast.css panel: Fix active button style on solid panel 2018-02-07 17:40:46 +01:00
gnome-shell-high-contrast.scss HighContrast: provide more contrasty switches 2015-04-15 19:35:51 +02:00
gnome-shell.css panel: Fix active button style on solid panel 2018-02-07 17:40:46 +01:00
gnome-shell.scss theme: Use gnome-shell-sass as a submodule 2015-02-20 17:15:29 +01:00
HACKING theme: Use gnome-shell-sass as a submodule 2015-02-20 17:15:29 +01:00
logged-in-indicator.svg
meson.build build: Support the meson build system 2017-07-20 00:20:54 +02:00
message-indicator-symbolic.svg dateMenu: Use icon for message indicator 2017-09-12 17:32:51 +02:00
no-events.svg calendar: Add MessageList and Section/Message base types 2015-02-20 17:38:04 +01:00
no-notifications.svg calendar: Add NotificationSection to message list 2015-02-20 17:39:25 +01:00
noise-texture.png
pad-osd.css ui: Add PadOsd 2016-11-04 16:08:10 +01:00
page-indicator-active.svg
page-indicator-checked.svg
page-indicator-hover.svg
page-indicator-inactive.svg
parse-sass.sh data: Expect shell in /bin rather than /usr/bin 2017-08-17 13:43:43 +02:00
process-working.svg spinner: use a 60fps spinner 2015-08-05 13:44:32 +02:00
README build: Switch to sassc for generating style 2017-05-30 12:41:16 +02:00
running-indicator.svg
source-button-border.svg
summary-counter.svg
toggle-off-hc.svg HighContrast: provide more contrasty switches 2015-04-15 19:35:51 +02:00
toggle-off-intl.svg theme: update some svg assets to adwaita 3.14 counterparts 2015-02-20 15:14:40 +01:00
toggle-off-us.svg theme: update some svg assets to adwaita 3.14 counterparts 2015-02-20 15:14:40 +01:00
toggle-on-hc.svg HighContrast: provide more contrasty switches 2015-04-15 19:35:51 +02:00
toggle-on-intl.svg theme: dark $selected_bg_color for toggle switches 2015-04-15 13:04:20 +02:00
toggle-on-us.svg theme: dark $selected_bg_color for toggle switches 2015-04-15 13:04:20 +02:00
ws-switch-arrow-down.png
ws-switch-arrow-up.png

Summary
-------

* Do not edit the CSS directly, edit the source SCSS files and process them with SASS (running
  `make` should do that when you have the required software installed, as described below;
  run `./parse-sass.sh` manually if it doesn't)
* Most SASS preprocessors should produce similar results, however the build system
  integration and 'parse-sass.sh' script use sassc. You should be able to install
  it with `pkcon install sassc` or your distribution's package manager.

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:

_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 at http://sass-lang.com/documentation/. Once you make your changes to the
_common.scss file, you can either run make or the ./parse-sass.sh script.