detached c560186

fix(styles): resolve WebKitGTK nested var() issues with hardcoded border fallbacks

commit
c5601864b83b406db13d8022fe993126cc001e43
author
brice · · 2025-12-16 19:08 UTC
committer
brice · · 2025-12-16 17:59 UTC
parent
6b28179
signature
unsigned
1 file · +8 -2
M webui/src/styles/tailwind.css +8 -2
@@ -5,7 +5,7 @@
55 * These bridge between:
66 * 1. Backend palette (--color-browser-*) injected at runtime
77 * 2. Design tokens (--background, --primary, etc.) for static fallbacks
8- * 3. Component usage (--dynamic-*) for actual styling
8+ * 3. Component usage (shadcn-svelte variables: --background, --card, --foreground, etc.)
99 */
1010 :root {
1111 /* Primary bridge - uses backend palette when available, falls back to tokens */
@@ -15,7 +15,8 @@
1515 --dynamic-text: var(--color-browser-text, var(--foreground));
1616 --dynamic-muted: var(--color-browser-muted, var(--muted-foreground));
1717 --dynamic-accent: var(--color-browser-accent, var(--primary));
18- --dynamic-border: var(--color-browser-border, var(--border));
18+ /* Border: hardcoded to avoid nested var() issues in WebKitGTK */
19+ --dynamic-border: var(--color-browser-border, rgba(0, 0, 0, 0.12));
1920
2021 /* Extended semantic colors from design tokens */
2122 --dynamic-primary: var(--primary);
@@ -25,6 +26,11 @@
2526 --dynamic-ring: var(--ring);
2627 }
2728
29+/* Dark mode border override */
30+.dark {
31+ --dynamic-border: var(--color-browser-border, rgba(255, 255, 255, 0.15));
32+}
33+
2834 /* Base styles for browser UI components */
2935 .browser-ui {
3036 background-color: var(--dynamic-bg);
@@ -5,7 +5,7 @@
5 * These bridge between:5 * These bridge between:
6 * 1. Backend palette (--color-browser-*) injected at runtime6 * 1. Backend palette (--color-browser-*) injected at runtime
7 * 2. Design tokens (--background, --primary, etc.) for static fallbacks7 * 2. Design tokens (--background, --primary, etc.) for static fallbacks
8- * 3. Component usage (--dynamic-*) for actual styling8+ * 3. Component usage (shadcn-svelte variables: --background, --card, --foreground, etc.)
9 */9 */
10 :root {10 :root {
11 /* Primary bridge - uses backend palette when available, falls back to tokens */11 /* Primary bridge - uses backend palette when available, falls back to tokens */
@@ -15,7 +15,8 @@
15 --dynamic-text: var(--color-browser-text, var(--foreground));15 --dynamic-text: var(--color-browser-text, var(--foreground));
16 --dynamic-muted: var(--color-browser-muted, var(--muted-foreground));16 --dynamic-muted: var(--color-browser-muted, var(--muted-foreground));
17 --dynamic-accent: var(--color-browser-accent, var(--primary));17 --dynamic-accent: var(--color-browser-accent, var(--primary));
18- --dynamic-border: var(--color-browser-border, var(--border));18+ /* Border: hardcoded to avoid nested var() issues in WebKitGTK */
19+ --dynamic-border: var(--color-browser-border, rgba(0, 0, 0, 0.12));
19 20
20 /* Extended semantic colors from design tokens */21 /* Extended semantic colors from design tokens */
21 --dynamic-primary: var(--primary);22 --dynamic-primary: var(--primary);
@@ -25,6 +26,11 @@
25 --dynamic-ring: var(--ring);26 --dynamic-ring: var(--ring);
26 }27 }
27 28
29+/* Dark mode border override */
30+.dark {
31+ --dynamic-border: var(--color-browser-border, rgba(255, 255, 255, 0.15));
32+}
33+
28 /* Base styles for browser UI components */34 /* Base styles for browser UI components */
29 .browser-ui {35 .browser-ui {
30 background-color: var(--dynamic-bg);36 background-color: var(--dynamic-bg);

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