A fork of the Materia GTK theme.

Important information: Google announced that, from September 2026, Android devices will require ALL apps to be signed by Google, effectively leading to an iOS situation. Value your right to a computer that does what you want; do not tolerate this monopolistic practice! Contact me if you don't understand why it is bad. Click to learn more.

 HACKING.md

View raw Download
text/plain • 3.55 kiB
ASCII text

Summary

  • Do not edit the CSS directly, edit the source SCSS files and run ./parse-sass.sh

  • To be able to use the latest/adequate version of sass, install sassc

How to tweak the theme

Flat-Plat is a complex theme, so to keep it maintainable it's written and processed in SASS.

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 form a handful of basics. It covers both the light variant and the dark variant.

  • _colors-public.scss

SCSS colors exported through gtk to allow for 3rd party apps color mixing.

  • _drawing.scss

drawing helper mixings/functions to allow easier definition of widget drawing under specific context. This is why Flat-Plat 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, run the ./parse-sass.sh script.

How to change the assets color

To keep it maintainable SVG files are basically edited on text-based.

So if you just want to change the SVG assets color, I recommend using a text editor instead of Inkscape. But please note that in some cases Inkscape is needed to render PNG assets.

Here is an example to change the _accent color_:

  1. Open the following .svg files with a text editor.

- ./src/gtk-2.0/assets.svg - ./src/gtk-2.0/assets-dark.svg - ./src/gtk-3.0/gtk-common/assets.svg - ./src/gnome-shell/3.18/assets/checkbox.svg - ./src/gnome-shell/3.18/assets/more-results.svg - ./src/gnome-shell/3.18/assets/toggle-on.svg - ./src/gnome-shell/3.18/assets-dark/checkbox.svg - ./src/gnome-shell/3.18/assets-dark/more-results.svg - ./src/gnome-shell/3.18/assets-dark/toggle-on.svg

  1. Search #FF4081 (default accent color) and replace with your favorite color.

- The recommended color palette is: https://material.io/guidelines/style/color.html#color-color-palette

  1. For gtk2 and gtk3, delete all png assets before redrawing them.

sh rm -v ./src/gtk-2.0/assets/*.png rm -v ./src/gtk-2.0/assets-dark/*.png rm -v ./src/gtk-3.0/gtk-common/assets/*.png

  1. Render png assets with scripts. (Inkscape is required to run the scripts.)

- for gtk2:

sh cd ./src/gtk-2.0 ./render-assets.sh ./render-assets-dark.sh

- for gtk3:

sh cd ./src/gtk-3.0/gtk-common ./render-assets.sh

Useful Links

Upstream theme sources:

Tips:

                
                    
1
Summary
2
-------
3
4
- Do not edit the CSS directly, edit the source SCSS files and run `./parse-sass.sh`
5
6
- To be able to use the latest/adequate version of sass, install `sassc`
7
8
How to tweak the theme
9
----------------------
10
11
Flat-Plat is a complex theme, so to keep it maintainable it's written and
12
processed in SASS.
13
14
It is very likely your change will happen in the `_common.scss` file. That's where
15
all the widget selectors are defined. Here's a rundown of the "supporting"
16
stylesheets, that are unlikely to be the right place for a drive by stylesheet
17
fix:
18
19
- `_colors.scss`
20
21
global color definitions. We keep the number of defined colors to a necessary
22
minimum, most colors are derived form a handful of basics. It covers both the
23
light variant and the dark variant.
24
25
- `_colors-public.scss`
26
27
SCSS colors exported through gtk to allow for 3rd party apps color mixing.
28
29
- `_drawing.scss`
30
31
drawing helper mixings/functions to allow easier definition of widget drawing
32
under specific context. This is why Flat-Plat isn't 15000 LOC.
33
34
- `_common.scss`
35
36
actual definitions of style for each widget. This is where you are likely to
37
add/remove your changes.
38
39
You can read about SASS at http://sass-lang.com/documentation/. Once you make
40
your changes to the `_common.scss` file, run the `./parse-sass.sh` script.
41
42
How to change the assets color
43
------------------------------
44
45
To keep it maintainable SVG files are basically edited on text-based.
46
47
So if you just want to change the SVG assets color, I recommend using a
48
**text editor** instead of **Inkscape**. But please note that in some cases
49
Inkscape is needed to render PNG assets.
50
51
Here is an example to change the _accent color_:
52
53
1. Open the following `.svg` files with a **text editor**.
54
55
- ./src/gtk-2.0/assets.svg
56
- ./src/gtk-2.0/assets-dark.svg
57
- ./src/gtk-3.0/gtk-common/assets.svg
58
- ./src/gnome-shell/3.18/assets/checkbox.svg
59
- ./src/gnome-shell/3.18/assets/more-results.svg
60
- ./src/gnome-shell/3.18/assets/toggle-on.svg
61
- ./src/gnome-shell/3.18/assets-dark/checkbox.svg
62
- ./src/gnome-shell/3.18/assets-dark/more-results.svg
63
- ./src/gnome-shell/3.18/assets-dark/toggle-on.svg
64
65
2. Search `#FF4081` (default accent color) and replace with your favorite color.
66
67
- The recommended color palette is: https://material.io/guidelines/style/color.html#color-color-palette
68
69
3. For gtk2 and gtk3, delete all png assets before redrawing them.
70
71
```sh
72
rm -v ./src/gtk-2.0/assets/*.png
73
rm -v ./src/gtk-2.0/assets-dark/*.png
74
rm -v ./src/gtk-3.0/gtk-common/assets/*.png
75
```
76
77
4. Render png assets with scripts. (Inkscape is required to run the scripts.)
78
79
- for gtk2:
80
81
```sh
82
cd ./src/gtk-2.0
83
./render-assets.sh
84
./render-assets-dark.sh
85
```
86
87
- for gtk3:
88
89
```sh
90
cd ./src/gtk-3.0/gtk-common
91
./render-assets.sh
92
```
93
94
Useful Links
95
------------
96
97
Upstream theme sources:
98
- [GTK+ 4](https://github.com/GNOME/gtk/tree/master/gtk/theme/Adwaita)
99
- [3.22.x](https://github.com/GNOME/gtk/tree/gtk-3-22/gtk/theme/Adwaita)
100
- [3.20.x](https://github.com/GNOME/gtk/tree/gtk-3-20/gtk/theme/Adwaita)
101
- [3.18.x](https://github.com/GNOME/gtk/tree/gtk-3-18/gtk/theme/Adwaita)
102
- [GTK+ 2](https://github.com/GNOME/gnome-themes-standard/tree/master/themes/Adwaita/gtk-2.0)
103
- [GNOME Shell](https://github.com/GNOME/gnome-shell/tree/master/data/theme)
104
- [Sass sources](https://github.com/GNOME/gnome-shell-sass)
105
106
Tips:
107
- [Unity/Theming](https://wiki.ubuntu.com/Unity/Theming)
108
- [Material Design Guidelines](https://www.material.io/guidelines/)
109
- [Personal CSS Guidelines](https://github.com/nana-4/Flat-Plat/wiki/CSS-Guidelines)
110