detached 926c7d2

style(tailwind): simplify CSS with dynamic color tokens

Color System:
- Remove hardcoded @theme color definitions (rely on Go-injected palette)
- Remove hardcoded .dark class color overrides
- Use dynamic CSS custom properties throughout
- Keep only :root dynamic token mappings

Toast Styles:
- Remove border-radius (sharp corners)
- Unify success/error/info variants to use CSS custom properties
- Remove variant-specific color overrides for light/dark themes
- Apply consistent --toast-bg, --toast-text, --toast-border tokens

Omnibox Styles:
- Update border width from 2px to 1px
- Remove border-radius for sharp corners throughout
- Apply consistent dynamic color tokens

Findbar:
- Remove border-radius from buttons for consistency
commit
926c7d2682a28bef3328713f5f8c70d7cf533481
author
bamen · · 2025-10-06 17:06 UTC
committer
bamen · · 2025-10-06 19:56 UTC
parent
e4d5fcf
signature
unsigned
1 file · +9 -59
M gui/src/styles/tailwind.css +9 -59
@@ -1,17 +1,5 @@
11 @import "tailwindcss";
22
3-/* Define custom theme colors for v4 */
4-@theme {
5- /* Light theme colors (default) */
6- --color-browser-bg: rgb(253 252 250);
7- --color-browser-surface: rgb(245 245 240);
8- --color-browser-surface-variant: rgb(253 250 245);
9- --color-browser-text: rgb(17 24 39);
10- --color-browser-muted: rgb(107 114 128);
11- --color-browser-accent: rgb(59 130 246);
12- --color-browser-border: rgb(229 231 235);
13-}
14-
153 /* Dynamic theme switching via CSS variables */
164 :root {
175 --dynamic-bg: var(--color-browser-bg);
@@ -23,17 +11,6 @@
2311 --dynamic-border: var(--color-browser-border);
2412 }
2513
26-/* Dark theme colors (applied via .dark class from GTK) */
27-.dark {
28- --dynamic-bg: rgb(17 24 39);
29- --dynamic-surface-variant: rgb(21 30 50);
30- --dynamic-surface: rgb(31 41 55);
31- --dynamic-text: rgb(243 244 246);
32- --dynamic-muted: rgb(156 163 175);
33- --dynamic-accent: rgb(96 165 250);
34- --dynamic-border: rgb(55 65 81);
35-}
36-
3714 /* Base styles for browser UI components */
3815 .browser-ui {
3916 background-color: var(--dynamic-bg);
@@ -44,7 +21,7 @@
4421
4522 /* Toast notification styles */
4623 .toast-base {
47- border-radius: 0.375rem; /* rounded-md */
24+ border-radius: 0;
4825 box-shadow:
4926 0 10px 15px -3px rgb(0 0 0 / 0.1),
5027 0 4px 6px -4px rgb(0 0 0 / 0.1);
@@ -56,47 +33,19 @@
5633 border: 1px solid var(--dynamic-border);
5734 }
5835
59-.toast-success {
60- background-color: rgb(240 253 244);
61- color: rgb(22 163 74);
62- border: 1px solid rgb(187 247 208);
63-}
64-
65-.dark .toast-success {
66- background-color: rgb(22 163 74 / 0.2);
67- color: rgb(187 247 208);
68- border-color: rgb(22 163 74);
69-}
70-
71-.toast-error {
72- background-color: rgb(254 242 242);
73- color: rgb(220 38 38);
74- border: 1px solid rgb(254 202 202);
75-}
76-
77-.dark .toast-error {
78- background-color: rgb(220 38 38 / 0.2);
79- color: rgb(254 202 202);
80- border-color: rgb(220 38 38);
81-}
82-
36+.toast-success,
37+.toast-error,
8338 .toast-info {
84- background-color: rgb(239 246 255);
85- color: rgb(59 130 246);
86- border: 1px solid rgb(191 219 254);
87-}
88-
89-.dark .toast-info {
90- background-color: rgb(59 130 246 / 0.2);
91- color: rgb(191 219 254);
92- border-color: rgb(59 130 246);
39+ background-color: var(--toast-bg, var(--dynamic-surface));
40+ color: var(--toast-text, var(--dynamic-text));
41+ border: 1px solid var(--toast-border, var(--dynamic-border));
9342 }
9443
9544 /* Omnibox/Find bar styles */
9645 .omnibox-base {
9746 background-color: var(--dynamic-bg);
9847 color: var(--dynamic-text);
99- border: 2px solid var(--dynamic-border);
48+ border: 1px solid var(--dynamic-border);
10049 box-shadow:
10150 0 4px 6px -1px rgb(0 0 0 / 0.1),
10251 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -123,7 +72,7 @@
12372 .omnibox-results {
12473 background-color: var(--dynamic-bg);
12574 border: 1px solid var(--dynamic-border);
126- border-radius: 0.375rem;
75+ border-radius: 0;
12776 box-shadow:
12877 0 10px 15px -3px rgb(0 0 0 / 0.1),
12978 0 4px 6px -4px rgb(0 0 0 / 0.1);
@@ -171,6 +120,7 @@
171120
172121 .findbar-button {
173122 padding: 0.25rem 0.5rem;
123+ border-radius: 0;
174124 color: var(--dynamic-muted);
175125 transition: colors 150ms;
176126 font-size: 0.875rem;
@@ -1,17 +1,5 @@
1 @import "tailwindcss";1 @import "tailwindcss";
2 2
3-/* Define custom theme colors for v4 */
4-@theme {
5- /* Light theme colors (default) */
6- --color-browser-bg: rgb(253 252 250);
7- --color-browser-surface: rgb(245 245 240);
8- --color-browser-surface-variant: rgb(253 250 245);
9- --color-browser-text: rgb(17 24 39);
10- --color-browser-muted: rgb(107 114 128);
11- --color-browser-accent: rgb(59 130 246);
12- --color-browser-border: rgb(229 231 235);
13-}
14-
15 /* Dynamic theme switching via CSS variables */3 /* Dynamic theme switching via CSS variables */
16 :root {4 :root {
17 --dynamic-bg: var(--color-browser-bg);5 --dynamic-bg: var(--color-browser-bg);
@@ -23,17 +11,6 @@
23 --dynamic-border: var(--color-browser-border);11 --dynamic-border: var(--color-browser-border);
24 }12 }
25 13
26-/* Dark theme colors (applied via .dark class from GTK) */
27-.dark {
28- --dynamic-bg: rgb(17 24 39);
29- --dynamic-surface-variant: rgb(21 30 50);
30- --dynamic-surface: rgb(31 41 55);
31- --dynamic-text: rgb(243 244 246);
32- --dynamic-muted: rgb(156 163 175);
33- --dynamic-accent: rgb(96 165 250);
34- --dynamic-border: rgb(55 65 81);
35-}
36-
37 /* Base styles for browser UI components */14 /* Base styles for browser UI components */
38 .browser-ui {15 .browser-ui {
39 background-color: var(--dynamic-bg);16 background-color: var(--dynamic-bg);
@@ -44,7 +21,7 @@
44 21
45 /* Toast notification styles */22 /* Toast notification styles */
46 .toast-base {23 .toast-base {
47- border-radius: 0.375rem; /* rounded-md */24+ border-radius: 0;
48 box-shadow:25 box-shadow:
49 0 10px 15px -3px rgb(0 0 0 / 0.1),26 0 10px 15px -3px rgb(0 0 0 / 0.1),
50 0 4px 6px -4px rgb(0 0 0 / 0.1);27 0 4px 6px -4px rgb(0 0 0 / 0.1);
@@ -56,47 +33,19 @@
56 border: 1px solid var(--dynamic-border);33 border: 1px solid var(--dynamic-border);
57 }34 }
58 35
59-.toast-success {36+.toast-success,
60- background-color: rgb(240 253 244);37+.toast-error,
61- color: rgb(22 163 74);
62- border: 1px solid rgb(187 247 208);
63-}
64-
65-.dark .toast-success {
66- background-color: rgb(22 163 74 / 0.2);
67- color: rgb(187 247 208);
68- border-color: rgb(22 163 74);
69-}
70-
71-.toast-error {
72- background-color: rgb(254 242 242);
73- color: rgb(220 38 38);
74- border: 1px solid rgb(254 202 202);
75-}
76-
77-.dark .toast-error {
78- background-color: rgb(220 38 38 / 0.2);
79- color: rgb(254 202 202);
80- border-color: rgb(220 38 38);
81-}
82-
83 .toast-info {38 .toast-info {
84- background-color: rgb(239 246 255);39+ background-color: var(--toast-bg, var(--dynamic-surface));
85- color: rgb(59 130 246);40+ color: var(--toast-text, var(--dynamic-text));
86- border: 1px solid rgb(191 219 254);41+ border: 1px solid var(--toast-border, var(--dynamic-border));
87-}
88-
89-.dark .toast-info {
90- background-color: rgb(59 130 246 / 0.2);
91- color: rgb(191 219 254);
92- border-color: rgb(59 130 246);
93 }42 }
94 43
95 /* Omnibox/Find bar styles */44 /* Omnibox/Find bar styles */
96 .omnibox-base {45 .omnibox-base {
97 background-color: var(--dynamic-bg);46 background-color: var(--dynamic-bg);
98 color: var(--dynamic-text);47 color: var(--dynamic-text);
99- border: 2px solid var(--dynamic-border);48+ border: 1px solid var(--dynamic-border);
100 box-shadow:49 box-shadow:
101 0 4px 6px -1px rgb(0 0 0 / 0.1),50 0 4px 6px -1px rgb(0 0 0 / 0.1),
102 0 2px 4px -2px rgb(0 0 0 / 0.1);51 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -123,7 +72,7 @@
123 .omnibox-results {72 .omnibox-results {
124 background-color: var(--dynamic-bg);73 background-color: var(--dynamic-bg);
125 border: 1px solid var(--dynamic-border);74 border: 1px solid var(--dynamic-border);
126- border-radius: 0.375rem;75+ border-radius: 0;
127 box-shadow:76 box-shadow:
128 0 10px 15px -3px rgb(0 0 0 / 0.1),77 0 10px 15px -3px rgb(0 0 0 / 0.1),
129 0 4px 6px -4px rgb(0 0 0 / 0.1);78 0 4px 6px -4px rgb(0 0 0 / 0.1);
@@ -171,6 +120,7 @@
171 120
172 .findbar-button {121 .findbar-button {
173 padding: 0.25rem 0.5rem;122 padding: 0.25rem 0.5rem;
123+ border-radius: 0;
174 color: var(--dynamic-muted);124 color: var(--dynamic-muted);
175 transition: colors 150ms;125 transition: colors 150ms;
176 font-size: 0.875rem;126 font-size: 0.875rem;

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close