@gjsify/adwaita-web 0.44.0 → 0.46.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.
Files changed (114) hide show
  1. package/README.md +8 -6
  2. package/dist/adwaita-web.css +96 -96
  3. package/dist/adwaita-web.css.map +1 -1
  4. package/lib/types/elements/adw-entry-row.d.ts +2 -2
  5. package/lib/types/elements/adw-expander-row.d.ts +1 -1
  6. package/lib/types/elements/adw-header-bar.d.ts +16 -8
  7. package/lib/types/elements/adw-split-button.d.ts +1 -1
  8. package/lib/types/elements/adw-switch-row.d.ts +1 -1
  9. package/lib/types/elements/adw-wrap-box.d.ts +1 -1
  10. package/lib/types/elements/{adw-checks.d.ts → checks.d.ts} +9 -2
  11. package/lib/types/elements/{adw-button.d.ts → gtk-button.d.ts} +1 -1
  12. package/lib/types/elements/{adw-drop-down.d.ts → gtk-drop-down.d.ts} +6 -6
  13. package/lib/types/elements/{adw-entry.d.ts → gtk-entry.d.ts} +1 -1
  14. package/lib/types/elements/{adw-icon.d.ts → gtk-image.d.ts} +2 -2
  15. package/lib/types/elements/{adw-menu-button.d.ts → gtk-menu-button.d.ts} +13 -4
  16. package/lib/types/elements/{adw-popover.d.ts → gtk-popover.d.ts} +9 -9
  17. package/lib/types/elements/{adw-progress-bar.d.ts → gtk-progress-bar.d.ts} +1 -1
  18. package/lib/types/elements/{adw-switch.d.ts → gtk-switch.d.ts} +2 -2
  19. package/lib/types/elements/view-switcher-dom.d.ts +4 -4
  20. package/lib/types/exported-elements.d.ts +10 -0
  21. package/lib/types/gtk-button.spec.d.ts +1 -0
  22. package/lib/types/gtk-drop-down.spec.d.ts +1 -0
  23. package/lib/types/gtk-entry.spec.d.ts +1 -0
  24. package/lib/types/gtk-image.spec.d.ts +1 -0
  25. package/lib/types/gtk-menu-button.spec.d.ts +1 -0
  26. package/lib/types/gtk-progress-bar.spec.d.ts +1 -0
  27. package/lib/types/gtk-switch.spec.d.ts +1 -0
  28. package/lib/types/icon-registry.d.ts +2 -2
  29. package/lib/types/index.d.ts +13 -51
  30. package/lib/types/namespace/adw.d.ts +44 -0
  31. package/lib/types/namespace/gtk.d.ts +9 -0
  32. package/lib/types/styles.generated.d.ts +1 -1
  33. package/package.json +9 -6
  34. package/scss/_about_dialog.scss +1 -1
  35. package/scss/_button.scss +4 -4
  36. package/scss/_checks.scss +6 -6
  37. package/scss/_drop_down.scss +3 -3
  38. package/scss/_entry.scss +3 -3
  39. package/scss/_expander_row.scss +1 -1
  40. package/scss/_icon.scss +4 -4
  41. package/scss/_menu_button.scss +3 -3
  42. package/scss/_popover.scss +2 -2
  43. package/scss/_progress_bar.scss +4 -4
  44. package/scss/_reset.scss +10 -8
  45. package/scss/_split_button.scss +1 -1
  46. package/scss/_style_classes.scss +9 -9
  47. package/scss/_switch.scss +2 -2
  48. package/scss/_switch_row.scss +1 -1
  49. package/scss/_toast.scss +1 -1
  50. package/scss/adwaita-skin.scss +2 -2
  51. package/src/adw-action-rows.spec.ts +2 -2
  52. package/src/adw-button-content.spec.ts +1 -1
  53. package/src/adw-header-bar.spec.ts +9 -4
  54. package/src/adw-tab-view.spec.ts +71 -0
  55. package/src/bottom-sheet.spec.ts +2 -2
  56. package/src/{adw-checks.spec.ts → checks.spec.ts} +11 -11
  57. package/src/chrome.spec.ts +2 -2
  58. package/src/connect-lifecycle.spec.ts +10 -7
  59. package/src/elements/adw-about-dialog.ts +6 -6
  60. package/src/elements/adw-avatar.ts +4 -4
  61. package/src/elements/adw-button-content.ts +6 -6
  62. package/src/elements/adw-button-row.ts +6 -6
  63. package/src/elements/adw-combo-row.ts +1 -1
  64. package/src/elements/adw-entry-row.ts +5 -5
  65. package/src/elements/adw-expander-row.ts +10 -10
  66. package/src/elements/adw-header-bar.ts +34 -13
  67. package/src/elements/adw-navigation-view.ts +24 -4
  68. package/src/elements/adw-password-entry-row.ts +3 -3
  69. package/src/elements/adw-sidebar.ts +4 -4
  70. package/src/elements/adw-split-button.ts +14 -14
  71. package/src/elements/adw-status-page.ts +4 -4
  72. package/src/elements/adw-switch-row.ts +8 -8
  73. package/src/elements/adw-tab-view.ts +32 -10
  74. package/src/elements/adw-toast-overlay.ts +2 -2
  75. package/src/elements/adw-toggle-group.ts +3 -3
  76. package/src/elements/adw-view-switcher-bar.ts +3 -3
  77. package/src/elements/adw-view-switcher.ts +3 -3
  78. package/src/elements/{adw-checks.ts → checks.ts} +13 -6
  79. package/src/elements/{adw-button.ts → gtk-button.ts} +6 -6
  80. package/src/elements/{adw-drop-down.ts → gtk-drop-down.ts} +18 -18
  81. package/src/elements/{adw-entry.ts → gtk-entry.ts} +4 -4
  82. package/src/elements/{adw-icon.ts → gtk-image.ts} +5 -5
  83. package/src/elements/{adw-menu-button.ts → gtk-menu-button.ts} +27 -18
  84. package/src/elements/{adw-popover.ts → gtk-popover.ts} +18 -18
  85. package/src/elements/{adw-progress-bar.ts → gtk-progress-bar.ts} +5 -5
  86. package/src/elements/{adw-switch.ts → gtk-switch.ts} +4 -4
  87. package/src/elements/view-switcher-dom.ts +5 -5
  88. package/src/exported-elements.ts +50 -0
  89. package/src/{adw-button.spec.ts → gtk-button.spec.ts} +6 -6
  90. package/src/{adw-drop-down.spec.ts → gtk-drop-down.spec.ts} +17 -17
  91. package/src/{adw-entry.spec.ts → gtk-entry.spec.ts} +8 -8
  92. package/src/{adw-icon.spec.ts → gtk-image.spec.ts} +21 -21
  93. package/src/{adw-menu-button.spec.ts → gtk-menu-button.spec.ts} +6 -6
  94. package/src/{adw-progress-bar.spec.ts → gtk-progress-bar.spec.ts} +12 -12
  95. package/src/{adw-switch.spec.ts → gtk-switch.spec.ts} +20 -20
  96. package/src/icon-registry.spec.ts +6 -6
  97. package/src/icon-registry.ts +6 -6
  98. package/src/index.ts +64 -63
  99. package/src/namespace/adw.ts +99 -0
  100. package/src/namespace/gtk.ts +22 -0
  101. package/src/preferences-search.ts +1 -1
  102. package/src/slotted-children.spec.ts +5 -3
  103. package/src/source-view/adw-source-view.ts +2 -2
  104. package/src/split-button.spec.ts +5 -5
  105. package/src/styles.generated.ts +1 -1
  106. package/src/test.browser.mts +15 -15
  107. package/lib/types/adw-button.spec.d.ts +0 -1
  108. package/lib/types/adw-drop-down.spec.d.ts +0 -1
  109. package/lib/types/adw-entry.spec.d.ts +0 -1
  110. package/lib/types/adw-icon.spec.d.ts +0 -1
  111. package/lib/types/adw-menu-button.spec.d.ts +0 -1
  112. package/lib/types/adw-progress-bar.spec.d.ts +0 -1
  113. package/lib/types/adw-switch.spec.d.ts +0 -1
  114. /package/lib/types/{adw-checks.spec.d.ts → checks.spec.d.ts} +0 -0
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # @gjsify/adwaita-web
2
2
 
3
- Browser Adwaita UI components as Custom Elements, bringing the Libadwaita look (light/dark) to the web with no GJS dependencies. Provides `AdwWindow`, `AdwHeaderBar`, `AdwButton`, `AdwEntry`, `AdwPreferencesGroup`, `AdwCard`, `AdwSwitchRow`, `AdwComboRow`, `AdwSpinRow`, `AdwToastOverlay`, and `AdwOverlaySplitView` (plus a `.adw-linked` button-group helper), backed by SCSS that mirrors the upstream `refs/adwaita-web` and `refs/libadwaita` color/sizing tokens.
3
+ Browser Adwaita UI components as Custom Elements, bringing the Libadwaita look (light/dark) to the web with no GJS dependencies. Backed by SCSS that mirrors the upstream `refs/adwaita-web` and `refs/libadwaita` color/sizing tokens.
4
+
5
+ Write the tags — `<adw-window>`, `<adw-header-bar>`, `<gtk-button>`, `<gtk-entry>`, `<adw-preferences-group>`, `<adw-switch-row>`, `<adw-overlay-split-view>` and the rest — or reach the classes through the GIR namespace the tag names: `Adw.Window`, `Gtk.Button`, `Adw.OverlaySplitView`. Each tag carries the prefix of the library that owns its GType, and the namespace member is that split read back (ADR 0034). There are no `AdwWindow`/`GtkButton` class exports at the package root; the elements with no GTK counterpart at all — `AdwCard`, `AdwDataGrid`, the declarative page and slot wrappers — keep their flat name, because it is their only one.
4
6
 
5
7
  Part of the [gjsify](https://github.com/gjsify/gjsify) project — Node.js and Web APIs for GJS (GNOME JavaScript).
6
8
 
@@ -63,7 +65,7 @@ identical child written in the markup.
63
65
 
64
66
  ```typescript
65
67
  const row = document.querySelector('adw-action-row')!;
66
- const toggle = document.createElement('adw-switch');
68
+ const toggle = document.createElement('gtk-switch');
67
69
  toggle.setAttribute('slot', 'suffix');
68
70
  row.append(toggle); // lands in the suffix section, exactly as a declared one does
69
71
  ```
@@ -151,7 +153,7 @@ about the individual components.
151
153
 
152
154
  ## Icons, and the ones the stylesheet does not ship
153
155
 
154
- An `<adw-icon icon-name="go-next">` is a CSS mask: the box takes its colour from
156
+ A `<gtk-image icon-name="go-next">` is a CSS mask: the box takes its colour from
155
157
  `currentColor` and a generated `.adw-icon--<name>` class supplies the `mask-image`, so the
156
158
  glyph re-themes with whatever contains it. The names that resolve are a **chosen subset** of
157
159
  [`@gjsify/adwaita-icons`](../adwaita-icons) — a few dozen of them, plus one glyph drawn
@@ -178,7 +180,7 @@ if (!isIconAvailable('dialog-error')) {
178
180
  ```
179
181
 
180
182
  ```html
181
- <adw-icon icon-name="dialog-error"></adw-icon>
183
+ <gtk-image icon-name="dialog-error"></gtk-image>
182
184
  <!-- …or any widget attribute that takes an icon name -->
183
185
  <adw-status-page icon="dialog-error" title="Could not connect"></adw-status-page>
184
186
  ```
@@ -187,7 +189,7 @@ if (!isIconAvailable('dialog-error')) {
187
189
  `@gjsify/adwaita-icons` exports, and equally any symbolic SVG of your own drawn on the 16px
188
190
  Adwaita grid with `fill="currentColor"`. It writes the same pair the build writes: a
189
191
  `--icon-<name>` custom property on the document element and a `.adw-icon--<name>` mask rule,
190
- so from then on the name is indistinguishable from a compiled one — in `<adw-icon>`, in a
192
+ so from then on the name is indistinguishable from a compiled one — in `<gtk-image>`, in a
191
193
  widget attribute, in a hand-written `class="adw-icon adw-icon--dialog-error"`, and in your
192
194
  own CSS as `var(--icon-dialog-error)`.
193
195
 
@@ -204,7 +206,7 @@ Notes worth having:
204
206
  comes off, and what is left has to be a single CSS token. `registerIcon` *throws* on a name
205
207
  that is not (`org.gnome.Builder`, `a b`), because a call that silently registers nothing is
206
208
  the failure this whole area exists to end — and because there is no mask class such a name
207
- could be given. `<adw-icon>` stays lenient with the same input: the name came from markup,
209
+ could be given. `<gtk-image>` stays lenient with the same input: the name came from markup,
208
210
  so it draws `image-missing` rather than taking the page down.
209
211
  - **Re-registering replaces the glyph** rather than adding a second rule, so a runtime theme
210
212
  switch can call it as often as it likes.
@@ -506,7 +506,7 @@
506
506
  font-size: var(--font-size-base);
507
507
  }
508
508
 
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, adw-button, adw-button-content, adw-button-row, adw-card, adw-carousel, adw-carousel-indicator-dots, adw-carousel-indicator-lines, adw-checkbox, adw-clamp, adw-combo-row, adw-data-grid, adw-dialog, adw-drop-down, adw-entry, adw-entry-row, adw-expander-row, adw-header-bar, adw-icon, adw-inline-view-switcher, adw-menu-button, adw-navigation-page, adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view, adw-password-entry-row, adw-popover, adw-preferences-dialog, adw-preferences-group, adw-preferences-page, adw-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, adw-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 {
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 {
510
510
  box-sizing: border-box;
511
511
  color: var(--window-fg-color);
512
512
  font-family: var(--font-family);
@@ -577,9 +577,9 @@ adw-bottom-sheet-sheet *::after {
577
577
  box-sizing: border-box;
578
578
  }
579
579
 
580
- adw-button *,
581
- adw-button *::before,
582
- adw-button *::after {
580
+ gtk-button *,
581
+ gtk-button *::before,
582
+ gtk-button *::after {
583
583
  box-sizing: border-box;
584
584
  }
585
585
 
@@ -619,9 +619,9 @@ adw-carousel-indicator-lines *::after {
619
619
  box-sizing: border-box;
620
620
  }
621
621
 
622
- adw-checkbox *,
623
- adw-checkbox *::before,
624
- adw-checkbox *::after {
622
+ gtk-check-button *,
623
+ gtk-check-button *::before,
624
+ gtk-check-button *::after {
625
625
  box-sizing: border-box;
626
626
  }
627
627
 
@@ -649,15 +649,15 @@ adw-dialog *::after {
649
649
  box-sizing: border-box;
650
650
  }
651
651
 
652
- adw-drop-down *,
653
- adw-drop-down *::before,
654
- adw-drop-down *::after {
652
+ gtk-drop-down *,
653
+ gtk-drop-down *::before,
654
+ gtk-drop-down *::after {
655
655
  box-sizing: border-box;
656
656
  }
657
657
 
658
- adw-entry *,
659
- adw-entry *::before,
660
- adw-entry *::after {
658
+ gtk-entry *,
659
+ gtk-entry *::before,
660
+ gtk-entry *::after {
661
661
  box-sizing: border-box;
662
662
  }
663
663
 
@@ -679,9 +679,9 @@ adw-header-bar *::after {
679
679
  box-sizing: border-box;
680
680
  }
681
681
 
682
- adw-icon *,
683
- adw-icon *::before,
684
- adw-icon *::after {
682
+ gtk-image *,
683
+ gtk-image *::before,
684
+ gtk-image *::after {
685
685
  box-sizing: border-box;
686
686
  }
687
687
 
@@ -691,9 +691,9 @@ adw-inline-view-switcher *::after {
691
691
  box-sizing: border-box;
692
692
  }
693
693
 
694
- adw-menu-button *,
695
- adw-menu-button *::before,
696
- adw-menu-button *::after {
694
+ gtk-menu-button *,
695
+ gtk-menu-button *::before,
696
+ gtk-menu-button *::after {
697
697
  box-sizing: border-box;
698
698
  }
699
699
 
@@ -727,9 +727,9 @@ adw-password-entry-row *::after {
727
727
  box-sizing: border-box;
728
728
  }
729
729
 
730
- adw-popover *,
731
- adw-popover *::before,
732
- adw-popover *::after {
730
+ gtk-popover *,
731
+ gtk-popover *::before,
732
+ gtk-popover *::after {
733
733
  box-sizing: border-box;
734
734
  }
735
735
 
@@ -751,9 +751,9 @@ adw-preferences-page *::after {
751
751
  box-sizing: border-box;
752
752
  }
753
753
 
754
- adw-progress-bar *,
755
- adw-progress-bar *::before,
756
- adw-progress-bar *::after {
754
+ gtk-progress-bar *,
755
+ gtk-progress-bar *::before,
756
+ gtk-progress-bar *::after {
757
757
  box-sizing: border-box;
758
758
  }
759
759
 
@@ -817,9 +817,9 @@ adw-status-page *::after {
817
817
  box-sizing: border-box;
818
818
  }
819
819
 
820
- adw-switch *,
821
- adw-switch *::before,
822
- adw-switch *::after {
820
+ gtk-switch *,
821
+ gtk-switch *::before,
822
+ gtk-switch *::after {
823
823
  box-sizing: border-box;
824
824
  }
825
825
 
@@ -940,7 +940,7 @@ adw-wrap-box *::after {
940
940
  background-color: transparent;
941
941
  }
942
942
 
943
- .dimmed, .adw-data-grid .adw-data-grid-row.header .adw-data-grid-cell, adw-progress-bar .adw-progress-bar-text {
943
+ .dimmed, .adw-data-grid .adw-data-grid-row.header .adw-data-grid-cell, gtk-progress-bar .adw-progress-bar-text {
944
944
  opacity: var(--dim-opacity);
945
945
  }
946
946
 
@@ -1023,7 +1023,7 @@ adw-wrap-box *::after {
1023
1023
  font-size: var(--monospace-font-size);
1024
1024
  }
1025
1025
 
1026
- .numeric, .adw-data-grid .adw-data-grid-cell.mono, adw-progress-bar .adw-progress-bar-text {
1026
+ .numeric, .adw-data-grid .adw-data-grid-cell.mono, gtk-progress-bar .adw-progress-bar-text {
1027
1027
  font-variant-numeric: tabular-nums;
1028
1028
  }
1029
1029
 
@@ -1119,45 +1119,45 @@ adw-card,
1119
1119
  gap: 6px;
1120
1120
  padding: 6px;
1121
1121
  }
1122
- .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only,
1123
- .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button,
1124
- .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1122
+ .toolbar gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only,
1123
+ .toolbar gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button,
1124
+ .toolbar gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1125
1125
  .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button {
1126
1126
  background-color: transparent;
1127
1127
  }
1128
- .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only:hover,
1129
- .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button:hover,
1130
- .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1128
+ .toolbar gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only:hover,
1129
+ .toolbar gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button:hover,
1130
+ .toolbar gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1131
1131
  .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover {
1132
1132
  background-color: var(--button-hover-color);
1133
1133
  }
1134
- .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only:active,
1135
- .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button:active,
1136
- .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1134
+ .toolbar gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only:active,
1135
+ .toolbar gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button:active,
1136
+ .toolbar gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1137
1137
  .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active {
1138
1138
  background-color: var(--button-active-color);
1139
1139
  }
1140
- .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1141
- .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1140
+ .toolbar .linked gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1141
+ .toolbar .linked gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1142
1142
  .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1143
- .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1144
- .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1143
+ .toolbar .adw-linked gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1144
+ .toolbar .adw-linked gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1145
1145
  .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button {
1146
1146
  background-color: var(--button-bg-color);
1147
1147
  }
1148
- .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1149
- .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1148
+ .toolbar .linked gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1149
+ .toolbar .linked gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1150
1150
  .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1151
- .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1152
- .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1151
+ .toolbar .adw-linked gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1152
+ .toolbar .adw-linked gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1153
1153
  .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover {
1154
1154
  background-color: var(--button-hover-color);
1155
1155
  }
1156
- .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1157
- .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1156
+ .toolbar .linked gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1157
+ .toolbar .linked gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1158
1158
  .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1159
- .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1160
- .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1159
+ .toolbar .adw-linked gtk-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1160
+ .toolbar .adw-linked gtk-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1161
1161
  .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active {
1162
1162
  background-color: var(--button-active-color);
1163
1163
  }
@@ -1181,7 +1181,7 @@ adw-card,
1181
1181
  /*******
1182
1182
  * OSD *
1183
1183
  *******/
1184
- .osd:not(adw-progress-bar):not(adw-button):not(adw-menu-button):not(adw-split-button):not(adw-inline-view-switcher) {
1184
+ .osd:not(gtk-progress-bar):not(gtk-button):not(gtk-menu-button):not(adw-split-button):not(adw-inline-view-switcher) {
1185
1185
  --accent-bg-color: rgb(255 255 255 / 75%);
1186
1186
  --accent-fg-color: rgb(0 0 0 / 75%);
1187
1187
  --accent-color: oklab(from var(--accent-bg-color) max(l, 0.85) a b);
@@ -1395,7 +1395,7 @@ adw-window-title .adw-window-title-subtitle {
1395
1395
  max-width: 100%;
1396
1396
  }
1397
1397
 
1398
- adw-button {
1398
+ gtk-button {
1399
1399
  display: inline-flex;
1400
1400
  }
1401
1401
 
@@ -1547,7 +1547,7 @@ adw-button-content.can-shrink .adw-button-content-label {
1547
1547
  min-width: 0;
1548
1548
  }
1549
1549
 
1550
- adw-popover {
1550
+ gtk-popover {
1551
1551
  --popover-radius: 15px;
1552
1552
  position: absolute;
1553
1553
  z-index: 10;
@@ -1562,31 +1562,31 @@ adw-popover {
1562
1562
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 1px 5px 1px rgba(0, 0, 0, 0.09), 0 2px 14px 3px rgba(0, 0, 0, 0.05);
1563
1563
  }
1564
1564
  @media (prefers-contrast: more) {
1565
- adw-popover {
1565
+ gtk-popover {
1566
1566
  box-shadow: 0 0 0 1px var(--separator-color), 0 1px 5px 1px rgba(0, 0, 0, 0.09), 0 2px 14px 3px rgba(0, 0, 0, 0.05);
1567
1567
  }
1568
1568
  }
1569
- adw-popover[menu], adw-popover.menu {
1569
+ gtk-popover[menu], gtk-popover.menu {
1570
1570
  padding: 6px;
1571
1571
  }
1572
- adw-popover[data-position=bottom] {
1572
+ gtk-popover[data-position=bottom] {
1573
1573
  top: calc(100% + 6px);
1574
1574
  }
1575
- adw-popover[data-position=top] {
1575
+ gtk-popover[data-position=top] {
1576
1576
  bottom: calc(100% + 6px);
1577
1577
  }
1578
- adw-popover[data-position=start] {
1578
+ gtk-popover[data-position=start] {
1579
1579
  top: 0;
1580
1580
  right: calc(100% + 6px);
1581
1581
  }
1582
- adw-popover[data-position=end] {
1582
+ gtk-popover[data-position=end] {
1583
1583
  top: 0;
1584
1584
  left: calc(100% + 6px);
1585
1585
  }
1586
- adw-popover[data-position=bottom][data-align=start], adw-popover[data-position=top][data-align=start] {
1586
+ gtk-popover[data-position=bottom][data-align=start], gtk-popover[data-position=top][data-align=start] {
1587
1587
  left: 0;
1588
1588
  }
1589
- adw-popover[data-position=bottom][data-align=end], adw-popover[data-position=top][data-align=end] {
1589
+ gtk-popover[data-position=bottom][data-align=end], gtk-popover[data-position=top][data-align=end] {
1590
1590
  right: 0;
1591
1591
  }
1592
1592
 
@@ -2067,7 +2067,7 @@ adw-toggle-group.flat.round .adw-toggle {
2067
2067
  cursor: not-allowed;
2068
2068
  }
2069
2069
 
2070
- adw-entry {
2070
+ gtk-entry {
2071
2071
  display: flex;
2072
2072
  flex: 1;
2073
2073
  min-width: 0;
@@ -2105,7 +2105,7 @@ adw-entry {
2105
2105
  box-shadow: inset 0 0 0 1px var(--entry-border-color);
2106
2106
  }
2107
2107
 
2108
- adw-checkbox,
2108
+ gtk-check-button,
2109
2109
  adw-radio {
2110
2110
  position: relative;
2111
2111
  display: inline-flex;
@@ -2116,7 +2116,7 @@ adw-radio {
2116
2116
  cursor: pointer;
2117
2117
  user-select: none;
2118
2118
  }
2119
- adw-checkbox .adw-check-input,
2119
+ gtk-check-button .adw-check-input,
2120
2120
  adw-radio .adw-check-input {
2121
2121
  position: absolute;
2122
2122
  width: 0;
@@ -2124,7 +2124,7 @@ adw-radio .adw-check-input {
2124
2124
  margin: 0;
2125
2125
  opacity: 0;
2126
2126
  }
2127
- adw-checkbox .adw-check-indicator,
2127
+ gtk-check-button .adw-check-indicator,
2128
2128
  adw-radio .adw-check-indicator {
2129
2129
  box-sizing: content-box;
2130
2130
  width: 14px;
@@ -2135,12 +2135,12 @@ adw-radio .adw-check-indicator {
2135
2135
  transition: background 200ms ease-out, box-shadow 200ms ease-out;
2136
2136
  }
2137
2137
  @media (prefers-contrast: more) {
2138
- adw-checkbox .adw-check-indicator,
2138
+ gtk-check-button .adw-check-indicator,
2139
2139
  adw-radio .adw-check-indicator {
2140
2140
  box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 30%, transparent);
2141
2141
  }
2142
2142
  }
2143
- adw-checkbox .adw-check-indicator::after,
2143
+ gtk-check-button .adw-check-indicator::after,
2144
2144
  adw-radio .adw-check-indicator::after {
2145
2145
  content: "";
2146
2146
  display: block;
@@ -2154,56 +2154,56 @@ adw-radio .adw-check-indicator::after {
2154
2154
  -webkit-mask-position: center;
2155
2155
  -webkit-mask-size: 14px;
2156
2156
  }
2157
- adw-checkbox:not([checked]):not([indeterminate]):not([disabled]):hover .adw-check-indicator,
2157
+ gtk-check-button:not([checked]):not([indeterminate]):not([disabled]):hover .adw-check-indicator,
2158
2158
  adw-radio:not([checked]):not([indeterminate]):not([disabled]):hover .adw-check-indicator {
2159
2159
  box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 20%, transparent);
2160
2160
  }
2161
2161
  @media (prefers-contrast: more) {
2162
- adw-checkbox:not([checked]):not([indeterminate]):not([disabled]):hover .adw-check-indicator,
2162
+ gtk-check-button:not([checked]):not([indeterminate]):not([disabled]):hover .adw-check-indicator,
2163
2163
  adw-radio:not([checked]):not([indeterminate]):not([disabled]):hover .adw-check-indicator {
2164
2164
  box-shadow: inset 0 0 0 2px color-mix(in srgb, currentColor 60%, transparent);
2165
2165
  }
2166
2166
  }
2167
- adw-checkbox:not([checked]):not([indeterminate]):not([disabled]):active .adw-check-indicator,
2167
+ gtk-check-button:not([checked]):not([indeterminate]):not([disabled]):active .adw-check-indicator,
2168
2168
  adw-radio:not([checked]):not([indeterminate]):not([disabled]):active .adw-check-indicator {
2169
2169
  background-color: color-mix(in srgb, currentColor 25%, transparent);
2170
2170
  box-shadow: none;
2171
2171
  }
2172
2172
  @media (prefers-contrast: more) {
2173
- adw-checkbox:not([checked]):not([indeterminate]):not([disabled]):active .adw-check-indicator,
2173
+ gtk-check-button:not([checked]):not([indeterminate]):not([disabled]):active .adw-check-indicator,
2174
2174
  adw-radio:not([checked]):not([indeterminate]):not([disabled]):active .adw-check-indicator {
2175
2175
  background-color: color-mix(in srgb, currentColor 60%, transparent);
2176
2176
  }
2177
2177
  }
2178
- adw-checkbox[checked] .adw-check-indicator, adw-checkbox[indeterminate] .adw-check-indicator,
2178
+ gtk-check-button[checked] .adw-check-indicator, gtk-check-button[indeterminate] .adw-check-indicator,
2179
2179
  adw-radio[checked] .adw-check-indicator,
2180
2180
  adw-radio[indeterminate] .adw-check-indicator {
2181
2181
  background-color: var(--accent-bg-color);
2182
2182
  color: var(--accent-fg-color);
2183
2183
  box-shadow: none;
2184
2184
  }
2185
- adw-checkbox[checked]:not([disabled]):hover .adw-check-indicator, adw-checkbox[indeterminate]:not([disabled]):hover .adw-check-indicator,
2185
+ gtk-check-button[checked]:not([disabled]):hover .adw-check-indicator, gtk-check-button[indeterminate]:not([disabled]):hover .adw-check-indicator,
2186
2186
  adw-radio[checked]:not([disabled]):hover .adw-check-indicator,
2187
2187
  adw-radio[indeterminate]:not([disabled]):hover .adw-check-indicator {
2188
2188
  background-image: linear-gradient(color-mix(in srgb, currentColor 10%, transparent), color-mix(in srgb, currentColor 10%, transparent));
2189
2189
  }
2190
- adw-checkbox[checked]:not([disabled]):active .adw-check-indicator, adw-checkbox[indeterminate]:not([disabled]):active .adw-check-indicator,
2190
+ gtk-check-button[checked]:not([disabled]):active .adw-check-indicator, gtk-check-button[indeterminate]:not([disabled]):active .adw-check-indicator,
2191
2191
  adw-radio[checked]:not([disabled]):active .adw-check-indicator,
2192
2192
  adw-radio[indeterminate]:not([disabled]):active .adw-check-indicator {
2193
2193
  background-image: linear-gradient(rgba(0, 0, 6, 0.2), rgba(0, 0, 6, 0.2));
2194
2194
  }
2195
- adw-checkbox[disabled],
2195
+ gtk-check-button[disabled],
2196
2196
  adw-radio[disabled] {
2197
2197
  cursor: not-allowed;
2198
2198
  opacity: var(--disabled-opacity);
2199
2199
  }
2200
- adw-checkbox .adw-check-input:focus-visible ~ .adw-check-indicator,
2200
+ gtk-check-button .adw-check-input:focus-visible ~ .adw-check-indicator,
2201
2201
  adw-radio .adw-check-input:focus-visible ~ .adw-check-indicator {
2202
2202
  outline: 2px solid var(--accent-color);
2203
2203
  outline-offset: 2px;
2204
2204
  }
2205
2205
 
2206
- adw-checkbox .adw-check-indicator {
2206
+ gtk-check-button .adw-check-indicator {
2207
2207
  border-radius: 6px;
2208
2208
  }
2209
2209
 
@@ -2211,7 +2211,7 @@ adw-radio .adw-check-indicator {
2211
2211
  border-radius: 100%;
2212
2212
  }
2213
2213
 
2214
- adw-checkbox[checked] .adw-check-indicator::after {
2214
+ gtk-check-button[checked] .adw-check-indicator::after {
2215
2215
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='m 12.599609,2.1992188 a 1,1 0 0 0 -1.40039,0.2011718 L 5.890625,9.4765625 2.7070313,6.2929687 a 1,1 0 0 0 -1.4140626,0 1,1 0 0 0 0,1.4140625 l 4,3.9999998 A 1.0001,1.0001 0 0 0 6.8007812,11.599609 L 12.800781,3.5996094 A 1,1 0 0 0 12.599609,2.1992188 Z'/%3E%3C/svg%3E");
2216
2216
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='m 12.599609,2.1992188 a 1,1 0 0 0 -1.40039,0.2011718 L 5.890625,9.4765625 2.7070313,6.2929687 a 1,1 0 0 0 -1.4140626,0 1,1 0 0 0 0,1.4140625 l 4,3.9999998 A 1.0001,1.0001 0 0 0 6.8007812,11.599609 L 12.800781,3.5996094 A 1,1 0 0 0 12.599609,2.1992188 Z'/%3E%3C/svg%3E");
2217
2217
  }
@@ -2221,33 +2221,33 @@ adw-radio[checked] .adw-check-indicator::after {
2221
2221
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 7 3 c -2.207 0 -4 1.793 -4 4 s 1.793 4 4 4 c 2.208 0 4 -1.793 4 -4 s -1.792 -4 -4 -4 z'/%3E%3C/svg%3E");
2222
2222
  }
2223
2223
 
2224
- adw-checkbox[indeterminate] .adw-check-indicator::after,
2224
+ gtk-check-button[indeterminate] .adw-check-indicator::after,
2225
2225
  adw-radio[indeterminate] .adw-check-indicator::after {
2226
2226
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 3 5 A 2 2 0 0 0 1 7 A 2 2 0 0 0 3 9 L 11 9 A 2 2 0 0 0 13 7 A 2 2 0 0 0 11 5 Z'/%3E%3C/svg%3E");
2227
2227
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 3 5 A 2 2 0 0 0 1 7 A 2 2 0 0 0 3 9 L 11 9 A 2 2 0 0 0 13 7 A 2 2 0 0 0 11 5 Z'/%3E%3C/svg%3E");
2228
2228
  }
2229
2229
 
2230
- adw-checkbox.selection-mode,
2230
+ gtk-check-button.selection-mode,
2231
2231
  adw-radio.selection-mode {
2232
2232
  border-radius: 100px;
2233
2233
  }
2234
- adw-checkbox.selection-mode .adw-check-indicator,
2234
+ gtk-check-button.selection-mode .adw-check-indicator,
2235
2235
  adw-radio.selection-mode .adw-check-indicator {
2236
2236
  padding: 7px;
2237
2237
  border-radius: 100px;
2238
2238
  }
2239
- adw-checkbox.selection-mode .adw-check-label,
2239
+ gtk-check-button.selection-mode .adw-check-label,
2240
2240
  adw-radio.selection-mode .adw-check-label {
2241
2241
  margin-inline-end: 6px;
2242
2242
  }
2243
2243
 
2244
- adw-progress-bar {
2244
+ gtk-progress-bar {
2245
2245
  display: flex;
2246
2246
  flex-direction: column;
2247
2247
  gap: var(--spacing-xs);
2248
2248
  min-width: 150px;
2249
2249
  }
2250
- adw-progress-bar .adw-progress-bar-trough {
2250
+ gtk-progress-bar .adw-progress-bar-trough {
2251
2251
  position: relative;
2252
2252
  display: flex;
2253
2253
  overflow: hidden;
@@ -2257,49 +2257,49 @@ adw-progress-bar .adw-progress-bar-trough {
2257
2257
  transition: background 200ms ease-out;
2258
2258
  }
2259
2259
  @media (prefers-contrast: more) {
2260
- adw-progress-bar .adw-progress-bar-trough {
2260
+ gtk-progress-bar .adw-progress-bar-trough {
2261
2261
  background-color: color-mix(in srgb, currentColor 30%, transparent);
2262
2262
  }
2263
2263
  }
2264
- adw-progress-bar .adw-progress-bar-progress {
2264
+ gtk-progress-bar .adw-progress-bar-progress {
2265
2265
  height: 100%;
2266
2266
  border-radius: 99px;
2267
2267
  background-color: var(--accent-bg-color);
2268
2268
  color: var(--accent-fg-color);
2269
2269
  transition: width 200ms ease-out, background 200ms ease-out;
2270
2270
  }
2271
- adw-progress-bar .adw-progress-bar-text {
2271
+ gtk-progress-bar .adw-progress-bar-text {
2272
2272
  font-size: smaller;
2273
2273
  }
2274
- adw-progress-bar[disabled] {
2274
+ gtk-progress-bar[disabled] {
2275
2275
  opacity: var(--disabled-opacity);
2276
2276
  }
2277
- adw-progress-bar[inverted] .adw-progress-bar-trough {
2277
+ gtk-progress-bar[inverted] .adw-progress-bar-trough {
2278
2278
  justify-content: flex-end;
2279
2279
  }
2280
- adw-progress-bar .adw-progress-bar-trough.empty .adw-progress-bar-progress {
2280
+ gtk-progress-bar .adw-progress-bar-trough.empty .adw-progress-bar-progress {
2281
2281
  all: unset;
2282
2282
  }
2283
- adw-progress-bar[osd], adw-progress-bar.osd {
2283
+ gtk-progress-bar[osd], gtk-progress-bar.osd {
2284
2284
  min-width: 2px;
2285
2285
  }
2286
- adw-progress-bar[osd] .adw-progress-bar-trough, adw-progress-bar.osd .adw-progress-bar-trough {
2286
+ gtk-progress-bar[osd] .adw-progress-bar-trough, gtk-progress-bar.osd .adw-progress-bar-trough {
2287
2287
  height: 2px;
2288
2288
  border-radius: 0;
2289
2289
  background-color: transparent;
2290
2290
  box-shadow: none;
2291
2291
  }
2292
- adw-progress-bar[osd] .adw-progress-bar-progress, adw-progress-bar.osd .adw-progress-bar-progress {
2292
+ gtk-progress-bar[osd] .adw-progress-bar-progress, gtk-progress-bar.osd .adw-progress-bar-progress {
2293
2293
  border-radius: 0;
2294
2294
  }
2295
- adw-progress-bar[pulsing] .adw-progress-bar-progress {
2295
+ gtk-progress-bar[pulsing] .adw-progress-bar-progress {
2296
2296
  position: absolute;
2297
2297
  inset-block: 0;
2298
2298
  width: 30%;
2299
2299
  animation: adw-progress-bar-indeterminate 1.5s infinite ease-in-out;
2300
2300
  }
2301
2301
  @media (prefers-reduced-motion: reduce) {
2302
- adw-progress-bar[pulsing] .adw-progress-bar-progress {
2302
+ gtk-progress-bar[pulsing] .adw-progress-bar-progress {
2303
2303
  left: 0;
2304
2304
  width: 100%;
2305
2305
  animation: none;