@gjsify/adwaita-web 0.51.1 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -0
- package/dist/adwaita-web.css +259 -31
- package/dist/adwaita-web.css.map +1 -1
- package/lib/types/accent.d.ts +12 -2
- package/lib/types/adw-appearance.spec.d.ts +2 -0
- package/lib/types/appearance.d.ts +41 -0
- package/lib/types/blueprint-layout.spec.d.ts +1 -0
- package/lib/types/blueprint-markup.spec.d.ts +4 -0
- package/lib/types/blueprint-tree.spec.d.ts +1 -0
- package/lib/types/elements/adw-bottom-sheet.d.ts +31 -13
- package/lib/types/elements/adw-carousel.d.ts +5 -0
- package/lib/types/elements/adw-header-bar.d.ts +15 -0
- package/lib/types/elements/adw-inline-view-switcher.d.ts +1 -0
- package/lib/types/elements/adw-navigation-view.d.ts +1 -0
- package/lib/types/elements/adw-sidebar.d.ts +10 -0
- package/lib/types/elements/adw-tab-view.d.ts +1 -0
- package/lib/types/elements/adw-toggle-group.d.ts +11 -0
- package/lib/types/elements/gtk-action-bar.d.ts +19 -0
- package/lib/types/elements/gtk-box.d.ts +17 -0
- package/lib/types/elements/gtk-button.d.ts +2 -0
- package/lib/types/elements/gtk-label.d.ts +122 -0
- package/lib/types/font-stack.spec.d.ts +2 -0
- package/lib/types/gio-menu.spec.d.ts +1 -0
- package/lib/types/gtk-box.spec.d.ts +1 -0
- package/lib/types/gtk-label.spec.d.ts +1 -0
- package/lib/types/gtk-value-doors.spec.d.ts +1 -0
- package/lib/types/index.d.ts +6 -1
- package/lib/types/namespace/gio.d.ts +1 -0
- package/lib/types/namespace/gtk.d.ts +5 -0
- package/lib/types/shared-tree-builder.d.ts +64 -0
- package/lib/types/source-view/asm6502.d.ts +1 -20
- package/lib/types/source-view/index.d.ts +3 -2
- package/lib/types/source-view/theme.d.ts +1 -1
- package/lib/types/string-list-slot.d.ts +4 -0
- package/lib/types/styles.generated.d.ts +1 -1
- package/lib/types/tags.spec.d.ts +1 -0
- package/lib/types/value-lists.spec.d.ts +1 -0
- package/package.json +8 -6
- package/scss/_action_bar.scss +51 -0
- package/scss/_banner.scss +8 -1
- package/scss/_bottom_sheet.scss +57 -0
- package/scss/_box.scss +23 -0
- package/scss/_button.scss +29 -7
- package/scss/_button_content.scss +6 -1
- package/scss/_button_row.scss +5 -2
- package/scss/_carousel.scss +6 -0
- package/scss/_labels.scss +126 -12
- package/scss/_navigation_split_view.scss +18 -0
- package/scss/_overlay_split_view.scss +5 -0
- package/scss/_reset.scss +29 -4
- package/scss/_split_button.scss +5 -2
- package/scss/_status_page.scss +31 -17
- package/scss/_theme.scss +11 -3
- package/scss/_toolbar_view.scss +10 -0
- package/scss/_variables.scss +23 -3
- package/scss/_widget.scss +55 -0
- package/scss/_window_title.scss +9 -0
- package/scss/adwaita-skin.scss +8 -2
- package/src/accent.ts +28 -5
- package/src/adw-appearance.spec.ts +178 -0
- package/src/adw-banner.spec.ts +16 -0
- package/src/adw-button-row.spec.ts +8 -0
- package/src/adw-header-bar.spec.ts +17 -0
- package/src/appearance.ts +207 -0
- package/src/blueprint-layout.spec.ts +223 -0
- package/src/blueprint-markup.spec.ts +155 -0
- package/src/blueprint-tree.spec.ts +174 -0
- package/src/bottom-sheet.spec.ts +166 -1
- package/src/chrome.spec.ts +5 -2
- package/src/elements/adw-bottom-sheet.ts +166 -59
- package/src/elements/adw-carousel.ts +10 -5
- package/src/elements/adw-clamp.ts +12 -0
- package/src/elements/adw-combo-row.ts +13 -4
- package/src/elements/adw-header-bar.ts +46 -3
- package/src/elements/adw-inline-view-switcher.ts +11 -0
- package/src/elements/adw-navigation-view.ts +10 -0
- package/src/elements/adw-sidebar.ts +22 -0
- package/src/elements/adw-spin-row.ts +44 -5
- package/src/elements/adw-status-page.ts +12 -6
- package/src/elements/adw-tab-view.ts +20 -3
- package/src/elements/adw-toggle-group.ts +45 -4
- package/src/elements/adw-toolbar-view.ts +9 -0
- package/src/elements/gtk-action-bar.ts +90 -0
- package/src/elements/gtk-box.ts +87 -0
- package/src/elements/gtk-button.ts +60 -13
- package/src/elements/gtk-drop-down.ts +10 -1
- package/src/elements/gtk-label.ts +415 -0
- package/src/elements/swipe-drag.ts +1 -1
- package/src/font-stack.spec.ts +110 -0
- package/src/gio-menu.spec.ts +125 -0
- package/src/globals.d.ts +7 -0
- package/src/gtk-box.spec.ts +168 -0
- package/src/gtk-button.spec.ts +123 -1
- package/src/gtk-label.spec.ts +595 -0
- package/src/gtk-value-doors.spec.ts +104 -0
- package/src/index.ts +32 -1
- package/src/keyboard-operable.spec.ts +5 -4
- package/src/namespace/gio.ts +19 -0
- package/src/namespace/gtk.ts +14 -0
- package/src/shared-tree-builder.ts +268 -0
- package/src/shared-trees.spec.ts +296 -32
- package/src/source-view/adw-source-view.ts +3 -3
- package/src/source-view/asm6502.ts +11 -191
- package/src/source-view/index.ts +17 -11
- package/src/source-view/theme.ts +23 -17
- package/src/split-button.spec.ts +7 -0
- package/src/string-list-slot.ts +21 -0
- package/src/styles.generated.ts +1 -1
- package/src/tags.spec.ts +51 -0
- package/src/test.browser.mts +25 -0
- package/src/value-lists.spec.ts +93 -0
- package/lib/types/source-view/hex.d.ts +0 -21
- package/src/source-view/hex.ts +0 -37
package/README.md
CHANGED
|
@@ -151,6 +151,40 @@ surface + light/dark `color-scheme` by adding the `adw-root` class to `<body>`
|
|
|
151
151
|
`--window-fg-color` + `color-scheme: light dark` to the page and changes nothing
|
|
152
152
|
about the individual components.
|
|
153
153
|
|
|
154
|
+
## Following the desktop's accent
|
|
155
|
+
|
|
156
|
+
A page follows the desktop's accent and colour scheme from these sources, highest
|
|
157
|
+
first ([ADR 0078](../../../docs/adr/0078-the-desktop-appearance-reaches-a-web-page-through-a-handoff.md)):
|
|
158
|
+
|
|
159
|
+
1. **your own choice**: `applyAdwaitaAccent('green')`. Nothing below overrides it;
|
|
160
|
+
`clearAdwaitaAccent()` hands the page back.
|
|
161
|
+
2. **a server handoff**: `<meta name="adw-accent" content="purple">` and
|
|
162
|
+
`<meta name="adw-color-scheme" content="dark">` in `<head>`, read on import and
|
|
163
|
+
whenever they change, or `applyDesktopAppearance(json)` for live updates. A gjsify
|
|
164
|
+
server writes the tags with `renderAppearanceMeta` from
|
|
165
|
+
`@gjsify/adwaita-app/appearance`.
|
|
166
|
+
3. **the CSS system colour `AccentColor`**, once you call `applySystemAccent()` or
|
|
167
|
+
the tag says `content="system"` (#1821).
|
|
168
|
+
4. **Adwaita blue**, the stylesheet's own value.
|
|
169
|
+
|
|
170
|
+
```ts
|
|
171
|
+
import { applyDesktopAppearance, applySystemAccent } from '@gjsify/adwaita-web';
|
|
172
|
+
|
|
173
|
+
applySystemAccent(); // follow AccentColor where the engine resolves it; returns the accent or null
|
|
174
|
+
new EventSource('/appearance').onmessage = (event) => applyDesktopAppearance(JSON.parse(event.data));
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Every source is snapped to one of the nine accents with `nearestAccent`, as libadwaita
|
|
178
|
+
does, so the page matches a native Adwaita window on the same desktop.
|
|
179
|
+
`adwaitaAccentSource()` tells you which source won. Only `<html>` follows.
|
|
180
|
+
|
|
181
|
+
`AccentColor` support differs between engines and has not been verified everywhere.
|
|
182
|
+
Chrome announced shipping it only in 2026. On a GNOME desktop set to purple,
|
|
183
|
+
Playwright's headless Firefox 151 resolved it to `rgb(0, 96, 223)` and headless
|
|
184
|
+
Chromium 149 to `rgb(0, 117, 255)`: both blue, neither the desktop's accent. A page
|
|
185
|
+
cannot tell such a default from a real accent, which is why the server handoff ranks
|
|
186
|
+
above it.
|
|
187
|
+
|
|
154
188
|
## Icons, and the ones the stylesheet does not ship
|
|
155
189
|
|
|
156
190
|
A `<gtk-image icon-name="go-next">` is a CSS mask: the box takes its colour from
|
package/dist/adwaita-web.css
CHANGED
|
@@ -292,6 +292,7 @@
|
|
|
292
292
|
--entry-border-hover-color: rgba(0, 0, 6, 0.28);
|
|
293
293
|
--destructive-bg-color: #e01b24;
|
|
294
294
|
--destructive-fg-color: #ffffff;
|
|
295
|
+
--destructive-color: oklab(from var(--destructive-bg-color) min(l, 0.5) a b);
|
|
295
296
|
--success-bg-color: #2ec27e;
|
|
296
297
|
--success-fg-color: #ffffff;
|
|
297
298
|
--success-color: oklab(from var(--success-bg-color) min(l, 0.5) a b);
|
|
@@ -311,7 +312,7 @@
|
|
|
311
312
|
--spacing-m: 12px;
|
|
312
313
|
--spacing-l: 18px;
|
|
313
314
|
--spacing-xl: 24px;
|
|
314
|
-
--font-family: 'Adwaita Sans', 'Cantarell', 'Inter', 'Segoe UI', sans-serif;
|
|
315
|
+
--font-family: 'Adwaita Sans', 'Cantarell', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
315
316
|
--font-size-base: 11pt;
|
|
316
317
|
--font-size-small: 9pt;
|
|
317
318
|
--font-size-heading: 12pt;
|
|
@@ -321,7 +322,7 @@
|
|
|
321
322
|
--disabled-opacity: 0.5;
|
|
322
323
|
--document-font-family: var(--font-family);
|
|
323
324
|
--document-font-size: var(--font-size-base);
|
|
324
|
-
--monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', monospace;
|
|
325
|
+
--monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', 'Consolas', monospace;
|
|
325
326
|
--monospace-font-size: var(--font-size-base);
|
|
326
327
|
}
|
|
327
328
|
|
|
@@ -369,6 +370,7 @@
|
|
|
369
370
|
--entry-border-hover-color: rgba(255, 255, 255, 0.26);
|
|
370
371
|
--destructive-bg-color: #c01c28;
|
|
371
372
|
--destructive-fg-color: #ffffff;
|
|
373
|
+
--destructive-color: oklab(from var(--destructive-bg-color) max(l, 0.85) a b);
|
|
372
374
|
--success-bg-color: #26a269;
|
|
373
375
|
--success-color: oklab(from var(--success-bg-color) max(l, 0.85) a b);
|
|
374
376
|
--warning-bg-color: #cd9309;
|
|
@@ -377,7 +379,7 @@
|
|
|
377
379
|
--error-color: oklab(from var(--error-bg-color) max(l, 0.85) a b);
|
|
378
380
|
--switch-off-bg: rgba(255, 255, 255, 0.2);
|
|
379
381
|
--switch-knob-bg: #deddda;
|
|
380
|
-
--active-toggle-
|
|
382
|
+
--active-toggle-bg-color: rgb(255 255 255 / 20%);
|
|
381
383
|
}
|
|
382
384
|
}
|
|
383
385
|
.theme-dark {
|
|
@@ -416,6 +418,7 @@
|
|
|
416
418
|
--entry-border-hover-color: rgba(255, 255, 255, 0.26);
|
|
417
419
|
--destructive-bg-color: #c01c28;
|
|
418
420
|
--destructive-fg-color: #ffffff;
|
|
421
|
+
--destructive-color: oklab(from var(--destructive-bg-color) max(l, 0.85) a b);
|
|
419
422
|
--success-bg-color: #26a269;
|
|
420
423
|
--success-color: oklab(from var(--success-bg-color) max(l, 0.85) a b);
|
|
421
424
|
--warning-bg-color: #cd9309;
|
|
@@ -424,7 +427,7 @@
|
|
|
424
427
|
--error-color: oklab(from var(--error-bg-color) max(l, 0.85) a b);
|
|
425
428
|
--switch-off-bg: rgba(255, 255, 255, 0.2);
|
|
426
429
|
--switch-knob-bg: #deddda;
|
|
427
|
-
--active-toggle-
|
|
430
|
+
--active-toggle-bg-color: rgb(255 255 255 / 20%);
|
|
428
431
|
}
|
|
429
432
|
|
|
430
433
|
.theme-light {
|
|
@@ -465,6 +468,7 @@
|
|
|
465
468
|
--entry-border-hover-color: rgba(0, 0, 6, 0.28);
|
|
466
469
|
--destructive-bg-color: #e01b24;
|
|
467
470
|
--destructive-fg-color: #ffffff;
|
|
471
|
+
--destructive-color: oklab(from var(--destructive-bg-color) min(l, 0.5) a b);
|
|
468
472
|
--success-bg-color: #2ec27e;
|
|
469
473
|
--success-fg-color: #ffffff;
|
|
470
474
|
--success-color: oklab(from var(--success-bg-color) min(l, 0.5) a b);
|
|
@@ -484,7 +488,7 @@
|
|
|
484
488
|
--spacing-m: 12px;
|
|
485
489
|
--spacing-l: 18px;
|
|
486
490
|
--spacing-xl: 24px;
|
|
487
|
-
--font-family: 'Adwaita Sans', 'Cantarell', 'Inter', 'Segoe UI', sans-serif;
|
|
491
|
+
--font-family: 'Adwaita Sans', 'Cantarell', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
488
492
|
--font-size-base: 11pt;
|
|
489
493
|
--font-size-small: 9pt;
|
|
490
494
|
--font-size-heading: 12pt;
|
|
@@ -494,7 +498,7 @@
|
|
|
494
498
|
--disabled-opacity: 0.5;
|
|
495
499
|
--document-font-family: var(--font-family);
|
|
496
500
|
--document-font-size: var(--font-size-base);
|
|
497
|
-
--monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', monospace;
|
|
501
|
+
--monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', 'Consolas', monospace;
|
|
498
502
|
--monospace-font-size: var(--font-size-base);
|
|
499
503
|
}
|
|
500
504
|
|
|
@@ -506,7 +510,7 @@
|
|
|
506
510
|
font-size: var(--font-size-base);
|
|
507
511
|
}
|
|
508
512
|
|
|
509
|
-
adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response, adw-avatar, adw-banner, adw-bottom-sheet, adw-bottom-sheet-content, adw-bottom-sheet-sheet, gtk-button, adw-button-content, adw-button-row, adw-card, adw-carousel, adw-carousel-indicator-dots, adw-carousel-indicator-lines, gtk-check-button, adw-clamp, adw-combo-row, adw-data-grid, adw-dialog, gtk-drop-down, gtk-entry, adw-entry-row, adw-expander-row, adw-header-bar, gtk-image, adw-inline-view-switcher, gtk-menu-button, adw-navigation-page, adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view, adw-password-entry-row, gtk-popover, adw-preferences-dialog, adw-preferences-group, adw-preferences-page, gtk-progress-bar, adw-radio, adw-shortcut-label, adw-sidebar, adw-sidebar-item, adw-sidebar-section, adw-source-view, adw-spinner, adw-spin-row, adw-split-button, adw-status-page, gtk-switch, adw-switch-row, adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group, adw-toolbar-view, adw-view-stack, adw-view-stack-page, adw-view-switcher, adw-view-switcher-bar, adw-view-switcher-page, adw-window, adw-window-title, adw-wrap-box {
|
|
513
|
+
adw-about-dialog, adw-action-row, gtk-action-bar, adw-alert-dialog, adw-alert-response, adw-avatar, adw-banner, adw-bottom-sheet, adw-bottom-sheet-bottom-bar, adw-bottom-sheet-content, adw-bottom-sheet-sheet, gtk-box, gtk-button, adw-button-content, adw-button-row, adw-card, adw-carousel, adw-carousel-indicator-dots, adw-carousel-indicator-lines, gtk-check-button, adw-clamp, adw-combo-row, adw-data-grid, adw-dialog, gtk-drop-down, gtk-entry, adw-entry-row, adw-expander-row, adw-header-bar, gtk-image, adw-inline-view-switcher, gtk-label, gtk-menu-button, adw-navigation-page, adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view, adw-password-entry-row, gtk-popover, adw-preferences-dialog, adw-preferences-group, adw-preferences-page, gtk-progress-bar, adw-radio, adw-shortcut-label, adw-sidebar, adw-sidebar-item, adw-sidebar-section, adw-source-view, adw-spinner, adw-spin-row, adw-split-button, adw-status-page, gtk-switch, adw-switch-row, adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group, adw-toolbar-view, adw-view-stack, adw-view-stack-page, adw-view-switcher, adw-view-switcher-bar, adw-view-switcher-page, adw-window, adw-window-title, adw-wrap-box {
|
|
510
514
|
box-sizing: border-box;
|
|
511
515
|
color: var(--window-fg-color);
|
|
512
516
|
font-family: var(--font-family);
|
|
@@ -523,6 +527,20 @@ adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response, adw-avat
|
|
|
523
527
|
text-shadow: none;
|
|
524
528
|
}
|
|
525
529
|
|
|
530
|
+
:where(adw-about-dialog, adw-action-row, gtk-action-bar, adw-alert-dialog, adw-alert-response, adw-avatar, adw-banner, adw-bottom-sheet, adw-bottom-sheet-bottom-bar, adw-bottom-sheet-content, adw-bottom-sheet-sheet, gtk-box, gtk-button, adw-button-content, adw-button-row, adw-card, adw-carousel, adw-carousel-indicator-dots, adw-carousel-indicator-lines, gtk-check-button, adw-clamp, adw-combo-row, adw-data-grid, adw-dialog, gtk-drop-down, gtk-entry, adw-entry-row, adw-expander-row, adw-header-bar, gtk-image, adw-inline-view-switcher, gtk-label, gtk-menu-button, adw-navigation-page, adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view, adw-password-entry-row, gtk-popover, adw-preferences-dialog, adw-preferences-group, adw-preferences-page, gtk-progress-bar, adw-radio, adw-shortcut-label, adw-sidebar, adw-sidebar-item, adw-sidebar-section, adw-source-view, adw-spinner, adw-spin-row, adw-split-button, adw-status-page, gtk-switch, adw-switch-row, adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group, adw-toolbar-view, adw-view-stack, adw-view-stack-page, adw-view-switcher, adw-view-switcher-bar, adw-view-switcher-page, adw-window, adw-window-title, adw-wrap-box) :is(gtk-box, gtk-label, adw-button-content) {
|
|
531
|
+
color: inherit;
|
|
532
|
+
font-family: inherit;
|
|
533
|
+
font-size: inherit;
|
|
534
|
+
font-weight: inherit;
|
|
535
|
+
font-style: inherit;
|
|
536
|
+
font-variant: inherit;
|
|
537
|
+
line-height: inherit;
|
|
538
|
+
letter-spacing: inherit;
|
|
539
|
+
word-spacing: inherit;
|
|
540
|
+
text-transform: inherit;
|
|
541
|
+
text-shadow: inherit;
|
|
542
|
+
}
|
|
543
|
+
|
|
526
544
|
adw-about-dialog *,
|
|
527
545
|
adw-about-dialog *::before,
|
|
528
546
|
adw-about-dialog *::after {
|
|
@@ -535,6 +553,12 @@ adw-action-row *::after {
|
|
|
535
553
|
box-sizing: border-box;
|
|
536
554
|
}
|
|
537
555
|
|
|
556
|
+
gtk-action-bar *,
|
|
557
|
+
gtk-action-bar *::before,
|
|
558
|
+
gtk-action-bar *::after {
|
|
559
|
+
box-sizing: border-box;
|
|
560
|
+
}
|
|
561
|
+
|
|
538
562
|
adw-alert-dialog *,
|
|
539
563
|
adw-alert-dialog *::before,
|
|
540
564
|
adw-alert-dialog *::after {
|
|
@@ -565,6 +589,12 @@ adw-bottom-sheet *::after {
|
|
|
565
589
|
box-sizing: border-box;
|
|
566
590
|
}
|
|
567
591
|
|
|
592
|
+
adw-bottom-sheet-bottom-bar *,
|
|
593
|
+
adw-bottom-sheet-bottom-bar *::before,
|
|
594
|
+
adw-bottom-sheet-bottom-bar *::after {
|
|
595
|
+
box-sizing: border-box;
|
|
596
|
+
}
|
|
597
|
+
|
|
568
598
|
adw-bottom-sheet-content *,
|
|
569
599
|
adw-bottom-sheet-content *::before,
|
|
570
600
|
adw-bottom-sheet-content *::after {
|
|
@@ -577,6 +607,12 @@ adw-bottom-sheet-sheet *::after {
|
|
|
577
607
|
box-sizing: border-box;
|
|
578
608
|
}
|
|
579
609
|
|
|
610
|
+
gtk-box *,
|
|
611
|
+
gtk-box *::before,
|
|
612
|
+
gtk-box *::after {
|
|
613
|
+
box-sizing: border-box;
|
|
614
|
+
}
|
|
615
|
+
|
|
580
616
|
gtk-button *,
|
|
581
617
|
gtk-button *::before,
|
|
582
618
|
gtk-button *::after {
|
|
@@ -691,6 +727,12 @@ adw-inline-view-switcher *::after {
|
|
|
691
727
|
box-sizing: border-box;
|
|
692
728
|
}
|
|
693
729
|
|
|
730
|
+
gtk-label *,
|
|
731
|
+
gtk-label *::before,
|
|
732
|
+
gtk-label *::after {
|
|
733
|
+
box-sizing: border-box;
|
|
734
|
+
}
|
|
735
|
+
|
|
694
736
|
gtk-menu-button *,
|
|
695
737
|
gtk-menu-button *::before,
|
|
696
738
|
gtk-menu-button *::after {
|
|
@@ -940,7 +982,50 @@ adw-wrap-box *::after {
|
|
|
940
982
|
background-color: transparent;
|
|
941
983
|
}
|
|
942
984
|
|
|
943
|
-
|
|
985
|
+
gtk-label {
|
|
986
|
+
display: flex;
|
|
987
|
+
align-items: var(--gtk-label-align-items, center);
|
|
988
|
+
white-space: pre;
|
|
989
|
+
caret-color: currentColor;
|
|
990
|
+
user-select: none;
|
|
991
|
+
}
|
|
992
|
+
gtk-label::before, gtk-label::after {
|
|
993
|
+
content: "";
|
|
994
|
+
flex-shrink: 1;
|
|
995
|
+
flex-basis: 0;
|
|
996
|
+
}
|
|
997
|
+
gtk-label::before {
|
|
998
|
+
flex-grow: var(--gtk-label-xalign, 0.5);
|
|
999
|
+
}
|
|
1000
|
+
gtk-label::after {
|
|
1001
|
+
flex-grow: calc(1 - var(--gtk-label-xalign, 0.5));
|
|
1002
|
+
}
|
|
1003
|
+
gtk-label[wrap] {
|
|
1004
|
+
white-space: pre-wrap;
|
|
1005
|
+
}
|
|
1006
|
+
gtk-label .adw-label-text {
|
|
1007
|
+
display: block;
|
|
1008
|
+
max-width: 100%;
|
|
1009
|
+
}
|
|
1010
|
+
gtk-label[wrap-mode=char] .adw-label-text {
|
|
1011
|
+
word-break: break-all;
|
|
1012
|
+
}
|
|
1013
|
+
gtk-label[wrap-mode=word-char] .adw-label-text {
|
|
1014
|
+
overflow-wrap: anywhere;
|
|
1015
|
+
}
|
|
1016
|
+
gtk-label .adw-label-text.adw-label-clamp {
|
|
1017
|
+
display: -webkit-box;
|
|
1018
|
+
-webkit-box-orient: vertical;
|
|
1019
|
+
-webkit-line-clamp: var(--gtk-label-lines, 1);
|
|
1020
|
+
overflow: hidden;
|
|
1021
|
+
text-overflow: var(--gtk-label-ellipsize-overflow, ellipsis);
|
|
1022
|
+
white-space: normal;
|
|
1023
|
+
}
|
|
1024
|
+
gtk-label[selectable] {
|
|
1025
|
+
user-select: text;
|
|
1026
|
+
cursor: text;
|
|
1027
|
+
}
|
|
1028
|
+
.dimmed, .adw-data-grid .adw-data-grid-row.header .adw-data-grid-cell, gtk-progress-bar .adw-progress-bar-text, gtk-label.separator {
|
|
944
1029
|
opacity: var(--dim-opacity);
|
|
945
1030
|
}
|
|
946
1031
|
|
|
@@ -1027,6 +1112,16 @@ adw-wrap-box *::after {
|
|
|
1027
1112
|
font-variant-numeric: tabular-nums;
|
|
1028
1113
|
}
|
|
1029
1114
|
|
|
1115
|
+
gtk-box {
|
|
1116
|
+
display: flex;
|
|
1117
|
+
flex-direction: row;
|
|
1118
|
+
align-items: stretch;
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
gtk-box[homogeneous] > * {
|
|
1122
|
+
flex: 1 1 0;
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1030
1125
|
/************
|
|
1031
1126
|
* Surfaces *
|
|
1032
1127
|
************/
|
|
@@ -1368,6 +1463,38 @@ adw-window.devel adw-header-bar {
|
|
|
1368
1463
|
background-image: linear-gradient(to bottom, transparent 0%, var(--headerbar-bg-color) 100%), repeating-linear-gradient(116.565deg, color-mix(in srgb, currentColor 5%, transparent) 0 32px, transparent 32px 64px);
|
|
1369
1464
|
}
|
|
1370
1465
|
|
|
1466
|
+
gtk-action-bar {
|
|
1467
|
+
display: flex;
|
|
1468
|
+
align-items: center;
|
|
1469
|
+
gap: 6px;
|
|
1470
|
+
box-sizing: border-box;
|
|
1471
|
+
background-color: var(--headerbar-bg-color);
|
|
1472
|
+
color: var(--headerbar-fg-color);
|
|
1473
|
+
box-shadow: inset 0 1px var(--headerbar-shade-color);
|
|
1474
|
+
padding: 7px 6px 6px 6px;
|
|
1475
|
+
}
|
|
1476
|
+
gtk-action-bar[hidden] {
|
|
1477
|
+
display: none;
|
|
1478
|
+
}
|
|
1479
|
+
gtk-action-bar > .adw-action-bar-start,
|
|
1480
|
+
gtk-action-bar > .adw-action-bar-end {
|
|
1481
|
+
display: flex;
|
|
1482
|
+
align-items: center;
|
|
1483
|
+
gap: 6px;
|
|
1484
|
+
}
|
|
1485
|
+
gtk-action-bar > .adw-action-bar-start {
|
|
1486
|
+
flex: 1 1 0;
|
|
1487
|
+
justify-content: flex-start;
|
|
1488
|
+
}
|
|
1489
|
+
gtk-action-bar > .adw-action-bar-center {
|
|
1490
|
+
display: flex;
|
|
1491
|
+
align-items: center;
|
|
1492
|
+
}
|
|
1493
|
+
gtk-action-bar > .adw-action-bar-end {
|
|
1494
|
+
flex: 1 1 0;
|
|
1495
|
+
justify-content: flex-end;
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1371
1498
|
adw-window-title {
|
|
1372
1499
|
display: flex;
|
|
1373
1500
|
flex-direction: column;
|
|
@@ -1376,6 +1503,11 @@ adw-window-title {
|
|
|
1376
1503
|
line-height: 1.15;
|
|
1377
1504
|
min-width: 0;
|
|
1378
1505
|
}
|
|
1506
|
+
adw-window-title .adw-window-title-title,
|
|
1507
|
+
adw-window-title .adw-window-title-subtitle {
|
|
1508
|
+
padding-left: 12px;
|
|
1509
|
+
padding-right: 12px;
|
|
1510
|
+
}
|
|
1379
1511
|
adw-window-title .adw-window-title-title {
|
|
1380
1512
|
font-size: var(--font-size-base);
|
|
1381
1513
|
font-weight: 700;
|
|
@@ -1458,14 +1590,21 @@ gtk-button {
|
|
|
1458
1590
|
filter: brightness(0.92);
|
|
1459
1591
|
}
|
|
1460
1592
|
.adw-button.destructive-action {
|
|
1461
|
-
|
|
1462
|
-
color: var(--destructive-fg-color);
|
|
1593
|
+
--accent-bg-color: var(--destructive-bg-color);
|
|
1594
|
+
--accent-fg-color: var(--destructive-fg-color);
|
|
1595
|
+
--accent-color: var(--destructive-color);
|
|
1596
|
+
color: var(--destructive-color);
|
|
1597
|
+
background-color: color-mix(in srgb, currentColor 15%, transparent);
|
|
1463
1598
|
}
|
|
1464
1599
|
.adw-button.destructive-action:hover {
|
|
1465
|
-
|
|
1600
|
+
background-color: color-mix(in srgb, currentColor 20%, transparent);
|
|
1466
1601
|
}
|
|
1467
1602
|
.adw-button.destructive-action:active {
|
|
1468
|
-
|
|
1603
|
+
background-color: color-mix(in srgb, currentColor 35%, transparent);
|
|
1604
|
+
}
|
|
1605
|
+
.adw-button.text-button {
|
|
1606
|
+
padding-left: 17px;
|
|
1607
|
+
padding-right: 17px;
|
|
1469
1608
|
}
|
|
1470
1609
|
.adw-button.icon-only {
|
|
1471
1610
|
padding: 0;
|
|
@@ -1477,7 +1616,8 @@ gtk-button {
|
|
|
1477
1616
|
border-radius: 9999px;
|
|
1478
1617
|
}
|
|
1479
1618
|
.adw-button.pill {
|
|
1480
|
-
|
|
1619
|
+
min-height: 44px;
|
|
1620
|
+
padding: 10px 32px;
|
|
1481
1621
|
border-radius: 9999px;
|
|
1482
1622
|
}
|
|
1483
1623
|
.adw-button.raised {
|
|
@@ -1509,7 +1649,7 @@ gtk-button {
|
|
|
1509
1649
|
background-color: color-mix(in srgb, black 48.75%, currentColor 16.25%);
|
|
1510
1650
|
}
|
|
1511
1651
|
|
|
1512
|
-
.adw-button.image-text-button {
|
|
1652
|
+
.adw-button.image-text-button:not(.pill) {
|
|
1513
1653
|
padding-left: 9px;
|
|
1514
1654
|
padding-right: 9px;
|
|
1515
1655
|
}
|
|
@@ -1758,9 +1898,9 @@ gtk-popover[data-position=bottom][data-align=end], gtk-popover[data-position=top
|
|
|
1758
1898
|
align-items: center;
|
|
1759
1899
|
justify-content: center;
|
|
1760
1900
|
min-height: 34px;
|
|
1761
|
-
width:
|
|
1901
|
+
width: 24px;
|
|
1762
1902
|
margin: 0;
|
|
1763
|
-
padding: 0
|
|
1903
|
+
padding: 0 4px;
|
|
1764
1904
|
border: none;
|
|
1765
1905
|
border-left: 1px solid var(--separator-color);
|
|
1766
1906
|
border-radius: 0 var(--button-radius) var(--button-radius) 0;
|
|
@@ -2629,12 +2769,15 @@ adw-banner .adw-banner-title {
|
|
|
2629
2769
|
flex: 1 1 auto;
|
|
2630
2770
|
min-width: 0;
|
|
2631
2771
|
font-size: var(--font-size-base);
|
|
2772
|
+
font-weight: 700;
|
|
2632
2773
|
}
|
|
2633
2774
|
adw-banner .adw-banner-button {
|
|
2634
2775
|
flex-shrink: 0;
|
|
2776
|
+
box-sizing: border-box;
|
|
2777
|
+
min-height: 34px;
|
|
2635
2778
|
border: none;
|
|
2636
2779
|
border-radius: var(--button-radius);
|
|
2637
|
-
padding:
|
|
2780
|
+
padding: 5px 17px;
|
|
2638
2781
|
background: var(--button-bg-color);
|
|
2639
2782
|
color: var(--window-fg-color);
|
|
2640
2783
|
font-family: var(--font-family);
|
|
@@ -2659,40 +2802,45 @@ adw-status-page {
|
|
|
2659
2802
|
align-items: center;
|
|
2660
2803
|
justify-content: center;
|
|
2661
2804
|
text-align: center;
|
|
2662
|
-
gap:
|
|
2663
|
-
padding:
|
|
2805
|
+
gap: 12px;
|
|
2806
|
+
padding: 36px 12px;
|
|
2664
2807
|
color: var(--window-fg-color);
|
|
2665
2808
|
}
|
|
2666
2809
|
adw-status-page .adw-status-page-icon {
|
|
2667
|
-
width:
|
|
2668
|
-
height:
|
|
2810
|
+
width: 128px;
|
|
2811
|
+
height: 128px;
|
|
2812
|
+
margin-bottom: 24px;
|
|
2669
2813
|
background-color: currentColor;
|
|
2670
2814
|
opacity: 0.45;
|
|
2671
2815
|
-webkit-mask-size: contain;
|
|
2672
2816
|
mask-size: contain;
|
|
2673
2817
|
}
|
|
2674
2818
|
adw-status-page .adw-status-page-title {
|
|
2675
|
-
font-size: 18pt;
|
|
2676
2819
|
font-weight: 800;
|
|
2820
|
+
font-size: 181%;
|
|
2821
|
+
max-width: 600px;
|
|
2677
2822
|
}
|
|
2678
2823
|
adw-status-page .adw-status-page-description {
|
|
2679
2824
|
font-size: var(--font-size-base);
|
|
2680
2825
|
opacity: var(--dim-opacity);
|
|
2681
|
-
max-width:
|
|
2826
|
+
max-width: 600px;
|
|
2682
2827
|
}
|
|
2683
2828
|
adw-status-page .adw-status-page-child {
|
|
2684
|
-
margin-top:
|
|
2829
|
+
margin-top: 24px;
|
|
2685
2830
|
}
|
|
2686
2831
|
adw-status-page.compact {
|
|
2687
|
-
|
|
2688
|
-
padding: var(--spacing-m);
|
|
2832
|
+
padding: 24px 12px;
|
|
2689
2833
|
}
|
|
2690
2834
|
adw-status-page.compact .adw-status-page-icon {
|
|
2691
|
-
width:
|
|
2692
|
-
height:
|
|
2835
|
+
width: 96px;
|
|
2836
|
+
height: 96px;
|
|
2837
|
+
margin-bottom: 12px;
|
|
2693
2838
|
}
|
|
2694
2839
|
adw-status-page.compact .adw-status-page-title {
|
|
2695
|
-
font-size:
|
|
2840
|
+
font-size: 136%;
|
|
2841
|
+
}
|
|
2842
|
+
adw-status-page.compact .adw-status-page-child {
|
|
2843
|
+
margin-top: 12px;
|
|
2696
2844
|
}
|
|
2697
2845
|
|
|
2698
2846
|
adw-switch-row,
|
|
@@ -2986,8 +3134,8 @@ adw-button-row {
|
|
|
2986
3134
|
align-items: center;
|
|
2987
3135
|
justify-content: center;
|
|
2988
3136
|
width: 100%;
|
|
2989
|
-
min-height:
|
|
2990
|
-
padding:
|
|
3137
|
+
min-height: 44px;
|
|
3138
|
+
padding: 0 var(--spacing-m);
|
|
2991
3139
|
border-bottom: 1px solid var(--card-shade-color);
|
|
2992
3140
|
color: var(--card-fg-color);
|
|
2993
3141
|
cursor: pointer;
|
|
@@ -3309,6 +3457,9 @@ adw-toolbar-view .adw-toolbar-view-content {
|
|
|
3309
3457
|
adw-toolbar-view .adw-toolbar-view-content > :only-child {
|
|
3310
3458
|
flex: 1 1 auto;
|
|
3311
3459
|
}
|
|
3460
|
+
adw-toolbar-view .adw-toolbar-view-content > :only-child:is([valign=start], [valign=end], [valign=center]) {
|
|
3461
|
+
flex-grow: 0;
|
|
3462
|
+
}
|
|
3312
3463
|
adw-toolbar-view .adw-toolbar-view-top.raised,
|
|
3313
3464
|
adw-toolbar-view .adw-toolbar-view-bottom.raised {
|
|
3314
3465
|
background-color: var(--headerbar-bg-color);
|
|
@@ -3460,6 +3611,8 @@ adw-overlay-split-view {
|
|
|
3460
3611
|
overflow: hidden;
|
|
3461
3612
|
}
|
|
3462
3613
|
adw-overlay-split-view .adw-osv-sidebar {
|
|
3614
|
+
display: flex;
|
|
3615
|
+
flex-direction: column;
|
|
3463
3616
|
overflow-y: auto;
|
|
3464
3617
|
flex-shrink: 0;
|
|
3465
3618
|
z-index: 10;
|
|
@@ -3582,6 +3735,18 @@ adw-navigation-split-view .adw-nsv-content {
|
|
|
3582
3735
|
flex: 1 1 auto;
|
|
3583
3736
|
background-color: var(--window-bg-color);
|
|
3584
3737
|
}
|
|
3738
|
+
adw-navigation-split-view .adw-nsv-sidebar > adw-navigation-page,
|
|
3739
|
+
adw-navigation-split-view .adw-nsv-content > adw-navigation-page {
|
|
3740
|
+
display: flex;
|
|
3741
|
+
flex-direction: column;
|
|
3742
|
+
flex: 1 1 auto;
|
|
3743
|
+
min-height: 0;
|
|
3744
|
+
}
|
|
3745
|
+
adw-navigation-split-view .adw-nsv-sidebar > adw-navigation-page > *,
|
|
3746
|
+
adw-navigation-split-view .adw-nsv-content > adw-navigation-page > * {
|
|
3747
|
+
flex: 1 1 auto;
|
|
3748
|
+
min-height: 0;
|
|
3749
|
+
}
|
|
3585
3750
|
adw-navigation-split-view.sidebar-end .adw-nsv-content {
|
|
3586
3751
|
order: 1;
|
|
3587
3752
|
}
|
|
@@ -3607,6 +3772,7 @@ adw-navigation-split-view.collapsed .adw-nsv-sidebar[data-pane-visible=true] {
|
|
|
3607
3772
|
adw-carousel {
|
|
3608
3773
|
display: block;
|
|
3609
3774
|
overflow: hidden;
|
|
3775
|
+
contain: inline-size;
|
|
3610
3776
|
}
|
|
3611
3777
|
adw-carousel .adw-carousel-track {
|
|
3612
3778
|
display: flex;
|
|
@@ -4334,6 +4500,7 @@ adw-bottom-sheet {
|
|
|
4334
4500
|
color: var(--window-fg-color);
|
|
4335
4501
|
}
|
|
4336
4502
|
adw-bottom-sheet .adw-bottom-sheet-content {
|
|
4503
|
+
display: grid;
|
|
4337
4504
|
box-sizing: border-box;
|
|
4338
4505
|
width: 100%;
|
|
4339
4506
|
height: 100%;
|
|
@@ -4385,9 +4552,41 @@ adw-bottom-sheet .adw-bottom-sheet-drag-handle {
|
|
|
4385
4552
|
adw-bottom-sheet .adw-bottom-sheet-sheet-body {
|
|
4386
4553
|
box-sizing: border-box;
|
|
4387
4554
|
}
|
|
4555
|
+
adw-bottom-sheet .adw-bottom-sheet-bottom-bar {
|
|
4556
|
+
display: block;
|
|
4557
|
+
box-sizing: border-box;
|
|
4558
|
+
width: 100%;
|
|
4559
|
+
min-width: 0;
|
|
4560
|
+
min-height: 0;
|
|
4561
|
+
padding: 0;
|
|
4562
|
+
border: none;
|
|
4563
|
+
border-radius: 0;
|
|
4564
|
+
font: inherit;
|
|
4565
|
+
font-weight: inherit;
|
|
4566
|
+
color: inherit;
|
|
4567
|
+
background: none;
|
|
4568
|
+
box-shadow: none;
|
|
4569
|
+
cursor: pointer;
|
|
4570
|
+
}
|
|
4571
|
+
adw-bottom-sheet .adw-bottom-sheet-bottom-bar:hover {
|
|
4572
|
+
background-color: color-mix(in srgb, currentColor 5%, transparent);
|
|
4573
|
+
}
|
|
4574
|
+
adw-bottom-sheet .adw-bottom-sheet-bottom-bar:active {
|
|
4575
|
+
background-color: color-mix(in srgb, currentColor 10%, transparent);
|
|
4576
|
+
}
|
|
4577
|
+
adw-bottom-sheet .adw-bottom-sheet-bottom-bar.inert {
|
|
4578
|
+
cursor: default;
|
|
4579
|
+
}
|
|
4580
|
+
adw-bottom-sheet .adw-bottom-sheet-bottom-bar.inert:hover, adw-bottom-sheet .adw-bottom-sheet-bottom-bar.inert:active {
|
|
4581
|
+
background: none;
|
|
4582
|
+
}
|
|
4388
4583
|
adw-bottom-sheet.open .adw-bottom-sheet-sheet {
|
|
4389
4584
|
transform: translateY(0);
|
|
4390
4585
|
}
|
|
4586
|
+
adw-bottom-sheet.showing-bottom-bar .adw-bottom-sheet-sheet {
|
|
4587
|
+
transform: translateY(0);
|
|
4588
|
+
box-shadow: 0 0 0 1px rgba(0, 0, 6, 0.06), 0 2px 8px 2px rgba(0, 0, 6, 0.06), 0 3px 20px 10px rgba(0, 0, 6, 0.05);
|
|
4589
|
+
}
|
|
4391
4590
|
adw-bottom-sheet:not(.modal) .adw-bottom-sheet-dimming {
|
|
4392
4591
|
display: none;
|
|
4393
4592
|
}
|
|
@@ -5164,6 +5363,35 @@ adw-dialog[data-presentation=bottom-sheet] .adw-dialog-box {
|
|
|
5164
5363
|
transform: translateY(0);
|
|
5165
5364
|
}
|
|
5166
5365
|
}
|
|
5366
|
+
[halign=start] {
|
|
5367
|
+
margin-inline-end: auto;
|
|
5368
|
+
}
|
|
5369
|
+
|
|
5370
|
+
[halign=end] {
|
|
5371
|
+
margin-inline-start: auto;
|
|
5372
|
+
}
|
|
5373
|
+
|
|
5374
|
+
[halign=center] {
|
|
5375
|
+
margin-inline: auto;
|
|
5376
|
+
}
|
|
5377
|
+
|
|
5378
|
+
[valign=start] {
|
|
5379
|
+
margin-block-end: auto;
|
|
5380
|
+
}
|
|
5381
|
+
|
|
5382
|
+
[valign=end] {
|
|
5383
|
+
margin-block-start: auto;
|
|
5384
|
+
}
|
|
5385
|
+
|
|
5386
|
+
[valign=center] {
|
|
5387
|
+
margin-block: auto;
|
|
5388
|
+
}
|
|
5389
|
+
|
|
5390
|
+
gtk-box:not([orientation=vertical]) > [hexpand],
|
|
5391
|
+
gtk-box[orientation=vertical] > [vexpand] {
|
|
5392
|
+
flex-grow: 1;
|
|
5393
|
+
}
|
|
5394
|
+
|
|
5167
5395
|
[hidden] {
|
|
5168
5396
|
display: none !important;
|
|
5169
5397
|
}
|