@gjsify/adwaita-web 0.35.0 → 0.37.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 (146) hide show
  1. package/dist/adwaita-web.css +433 -33
  2. package/dist/adwaita-web.css.map +1 -1
  3. package/lib/types/adw-shortcut-label.spec.d.ts +2 -0
  4. package/lib/types/breakpoints.d.ts +10 -12
  5. package/lib/types/elements/adw-about-dialog.d.ts +19 -36
  6. package/lib/types/elements/adw-action-row.d.ts +9 -12
  7. package/lib/types/elements/adw-alert-dialog.d.ts +0 -12
  8. package/lib/types/elements/adw-avatar.d.ts +1 -0
  9. package/lib/types/elements/adw-bottom-sheet.d.ts +7 -12
  10. package/lib/types/elements/adw-button-content.d.ts +3 -4
  11. package/lib/types/elements/adw-button-row.d.ts +1 -1
  12. package/lib/types/elements/adw-carousel.d.ts +28 -49
  13. package/lib/types/elements/adw-checks.d.ts +2 -8
  14. package/lib/types/elements/adw-combo-row.d.ts +6 -6
  15. package/lib/types/elements/adw-data-grid.d.ts +5 -10
  16. package/lib/types/elements/adw-drop-down.d.ts +3 -11
  17. package/lib/types/elements/adw-entry-row.d.ts +20 -23
  18. package/lib/types/elements/adw-icon.d.ts +2 -4
  19. package/lib/types/elements/adw-inline-view-switcher.d.ts +18 -31
  20. package/lib/types/elements/adw-navigation-split-view.d.ts +7 -12
  21. package/lib/types/elements/adw-navigation-view.d.ts +2 -10
  22. package/lib/types/elements/adw-overlay-split-view.d.ts +28 -52
  23. package/lib/types/elements/adw-password-entry-row.d.ts +4 -5
  24. package/lib/types/elements/adw-popover.d.ts +2 -7
  25. package/lib/types/elements/adw-preferences-dialog.d.ts +21 -34
  26. package/lib/types/elements/adw-preferences-group.d.ts +12 -14
  27. package/lib/types/elements/adw-progress-bar.d.ts +3 -4
  28. package/lib/types/elements/adw-shortcut-label.d.ts +20 -0
  29. package/lib/types/elements/adw-sidebar.d.ts +5 -10
  30. package/lib/types/elements/adw-spinner.d.ts +3 -5
  31. package/lib/types/elements/adw-split-button.d.ts +6 -16
  32. package/lib/types/elements/adw-switch-row.d.ts +3 -3
  33. package/lib/types/elements/adw-tab-view.d.ts +16 -26
  34. package/lib/types/elements/adw-toast-overlay.d.ts +8 -13
  35. package/lib/types/elements/adw-view-stack.d.ts +7 -17
  36. package/lib/types/elements/adw-view-switcher-bar.d.ts +4 -8
  37. package/lib/types/elements/adw-view-switcher.d.ts +18 -38
  38. package/lib/types/elements/adw-wrap-box.d.ts +7 -17
  39. package/lib/types/elements/view-switcher-dom.d.ts +10 -13
  40. package/lib/types/index.d.ts +1 -0
  41. package/lib/types/source-view/hex.d.ts +7 -13
  42. package/lib/types/style-classes.spec.d.ts +11 -0
  43. package/lib/types/styles.generated.d.ts +1 -1
  44. package/package.json +6 -6
  45. package/scss/_about_dialog.scss +3 -2
  46. package/scss/_action_row.scss +33 -0
  47. package/scss/_avatar.scss +12 -0
  48. package/scss/_button.scss +44 -22
  49. package/scss/_card.scss +11 -8
  50. package/scss/_checks.scss +2 -4
  51. package/scss/_dialog.scss +3 -2
  52. package/scss/_headerbar.scss +23 -0
  53. package/scss/_popover.scss +8 -4
  54. package/scss/_preferences.scss +7 -7
  55. package/scss/_progress_bar.scss +9 -6
  56. package/scss/_reset.scss +1 -1
  57. package/scss/_shortcut_label.scss +80 -0
  58. package/scss/_sidebar.scss +57 -0
  59. package/scss/_status_page.scss +20 -0
  60. package/scss/_style_classes.scss +407 -0
  61. package/scss/_switch.scss +4 -3
  62. package/scss/_variables.scss +25 -0
  63. package/scss/adwaita-skin.scss +12 -0
  64. package/src/adw-about-dialog.spec.ts +34 -49
  65. package/src/adw-action-rows.spec.ts +25 -33
  66. package/src/adw-avatar.spec.ts +51 -20
  67. package/src/adw-banner.spec.ts +5 -8
  68. package/src/adw-button-content.spec.ts +9 -12
  69. package/src/adw-button-row.spec.ts +2 -4
  70. package/src/adw-carousel.spec.ts +40 -53
  71. package/src/adw-checks.spec.ts +36 -47
  72. package/src/adw-drop-down.spec.ts +25 -32
  73. package/src/adw-header-bar.spec.ts +5 -7
  74. package/src/adw-icon.spec.ts +23 -32
  75. package/src/adw-progress-bar.spec.ts +10 -12
  76. package/src/adw-row-state.spec.ts +9 -10
  77. package/src/adw-shortcut-label.spec.ts +112 -0
  78. package/src/adw-sidebar.spec.ts +17 -24
  79. package/src/adw-switch.spec.ts +11 -17
  80. package/src/adw-tab-view.spec.ts +7 -10
  81. package/src/adw-toast-overlay.spec.ts +7 -11
  82. package/src/adw-view-switcher-bar.spec.ts +10 -14
  83. package/src/adw-wrap-box.spec.ts +25 -36
  84. package/src/bottom-sheet.spec.ts +30 -36
  85. package/src/breakpoints.ts +15 -18
  86. package/src/chrome.spec.ts +13 -21
  87. package/src/elements/adw-about-dialog.ts +71 -114
  88. package/src/elements/adw-action-row.ts +22 -37
  89. package/src/elements/adw-alert-dialog.ts +25 -50
  90. package/src/elements/adw-avatar.ts +40 -15
  91. package/src/elements/adw-banner.ts +14 -18
  92. package/src/elements/adw-bottom-sheet.ts +31 -52
  93. package/src/elements/adw-button-content.ts +30 -37
  94. package/src/elements/adw-button-row.ts +14 -24
  95. package/src/elements/adw-carousel.ts +87 -148
  96. package/src/elements/adw-checks.ts +43 -56
  97. package/src/elements/adw-clamp.ts +8 -9
  98. package/src/elements/adw-combo-row.ts +17 -25
  99. package/src/elements/adw-data-grid.ts +26 -38
  100. package/src/elements/adw-dialog.ts +25 -56
  101. package/src/elements/adw-drop-down.ts +31 -51
  102. package/src/elements/adw-entry-row.ts +39 -46
  103. package/src/elements/adw-expander-row.ts +30 -53
  104. package/src/elements/adw-icon.ts +30 -53
  105. package/src/elements/adw-inline-view-switcher.ts +38 -67
  106. package/src/elements/adw-menu-button.ts +28 -58
  107. package/src/elements/adw-navigation-split-view.ts +35 -47
  108. package/src/elements/adw-navigation-view.ts +12 -28
  109. package/src/elements/adw-overlay-split-view.ts +100 -175
  110. package/src/elements/adw-password-entry-row.ts +18 -28
  111. package/src/elements/adw-popover.ts +28 -44
  112. package/src/elements/adw-preferences-dialog.ts +41 -66
  113. package/src/elements/adw-preferences-group.ts +33 -46
  114. package/src/elements/adw-progress-bar.ts +27 -47
  115. package/src/elements/adw-shortcut-label.ts +138 -0
  116. package/src/elements/adw-sidebar.ts +31 -39
  117. package/src/elements/adw-spin-row.ts +7 -14
  118. package/src/elements/adw-spinner.ts +31 -43
  119. package/src/elements/adw-split-button.ts +45 -75
  120. package/src/elements/adw-switch-row.ts +29 -46
  121. package/src/elements/adw-switch.ts +28 -47
  122. package/src/elements/adw-tab-view.ts +62 -103
  123. package/src/elements/adw-toast-overlay.ts +28 -35
  124. package/src/elements/adw-toggle-group.ts +9 -16
  125. package/src/elements/adw-view-stack.ts +32 -51
  126. package/src/elements/adw-view-switcher-bar.ts +26 -50
  127. package/src/elements/adw-view-switcher.ts +60 -110
  128. package/src/elements/adw-window-title.ts +4 -4
  129. package/src/elements/adw-wrap-box.ts +33 -59
  130. package/src/elements/view-switcher-dom.ts +15 -22
  131. package/src/entry-rows.spec.ts +18 -24
  132. package/src/index.ts +13 -15
  133. package/src/navigation-view.spec.ts +7 -10
  134. package/src/preferences-search.ts +11 -15
  135. package/src/preferences.spec.ts +13 -15
  136. package/src/source-view/adw-source-view.ts +6 -19
  137. package/src/source-view/hex.ts +7 -13
  138. package/src/split-button.spec.ts +32 -44
  139. package/src/split-views.spec.ts +83 -149
  140. package/src/style-classes.spec.ts +181 -0
  141. package/src/style-isolation.spec.ts +3 -6
  142. package/src/styles.generated.ts +1 -1
  143. package/src/tab-view.spec.ts +26 -35
  144. package/src/test.browser.mts +4 -0
  145. package/src/view-stack.spec.ts +23 -34
  146. package/src/view-switcher.spec.ts +56 -84
@@ -285,12 +285,22 @@
285
285
  --font-size-small: 9pt;
286
286
  --font-size-heading: 12pt;
287
287
  --dim-opacity: 0.55;
288
+ --border-opacity: 15%;
289
+ --border-color: color-mix(in srgb, currentColor var(--border-opacity), transparent);
290
+ --disabled-opacity: 0.5;
288
291
  --document-font-family: var(--font-family);
289
292
  --document-font-size: var(--font-size-base);
290
293
  --monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', monospace;
291
294
  --monospace-font-size: var(--font-size-base);
292
295
  }
293
296
 
297
+ @media (prefers-contrast: more) {
298
+ :root {
299
+ --border-opacity: 50%;
300
+ --dim-opacity: 0.9;
301
+ --disabled-opacity: 0.4;
302
+ }
303
+ }
294
304
  @media (prefers-color-scheme: dark) {
295
305
  :root:not(.theme-light) {
296
306
  --window-bg-color: #222226;
@@ -392,7 +402,7 @@
392
402
  font-size: var(--font-size-base);
393
403
  }
394
404
 
395
- 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-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 {
405
+ 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 {
396
406
  box-sizing: border-box;
397
407
  color: var(--window-fg-color);
398
408
  font-family: var(--font-family);
@@ -649,6 +659,12 @@ adw-radio *::after {
649
659
  box-sizing: border-box;
650
660
  }
651
661
 
662
+ adw-shortcut-label *,
663
+ adw-shortcut-label *::before,
664
+ adw-shortcut-label *::after {
665
+ box-sizing: border-box;
666
+ }
667
+
652
668
  adw-sidebar *,
653
669
  adw-sidebar *::before,
654
670
  adw-sidebar *::after {
@@ -898,6 +914,270 @@ adw-wrap-box *::after {
898
914
  font-variant-numeric: tabular-nums;
899
915
  }
900
916
 
917
+ /************
918
+ * Surfaces *
919
+ ************/
920
+ .background {
921
+ background-color: var(--window-bg-color);
922
+ color: var(--window-fg-color);
923
+ }
924
+
925
+ .view {
926
+ background-color: var(--view-bg-color);
927
+ color: var(--view-fg-color);
928
+ }
929
+ .view:disabled, .view[disabled] {
930
+ color: color-mix(in srgb, var(--view-fg-color) var(--disabled-opacity), transparent);
931
+ background-color: color-mix(in srgb, var(--window-bg-color) 60%, var(--view-bg-color));
932
+ }
933
+ .view[aria-selected=true] {
934
+ background-color: color-mix(in srgb, var(--accent-bg-color) 25%, transparent);
935
+ border-radius: var(--button-radius);
936
+ }
937
+
938
+ .frame {
939
+ border: 1px solid var(--border-color);
940
+ }
941
+
942
+ /*********
943
+ * Cards *
944
+ *********/
945
+ adw-card,
946
+ .adw-card, adw-preferences-group .adw-preferences-group-listbox, .boxed-list-separate > *, .boxed-list, .card {
947
+ background-color: var(--card-bg-color);
948
+ color: var(--card-fg-color);
949
+ border-radius: var(--card-radius);
950
+ box-shadow: 0 0 0 1px rgba(0, 0, 6, 0.03), 0 1px 3px 1px rgba(0, 0, 6, 0.07), 0 2px 6px 2px rgba(0, 0, 6, 0.03);
951
+ }
952
+ @media (prefers-contrast: more) {
953
+ adw-card,
954
+ .adw-card, adw-preferences-group .adw-preferences-group-listbox, .boxed-list-separate > *, .boxed-list, .card {
955
+ box-shadow: 0 0 0 1px var(--border-color), 0 1px 3px 1px rgba(0, 0, 6, 0.07), 0 2px 6px 2px rgba(0, 0, 6, 0.03);
956
+ }
957
+ }
958
+
959
+ .card.activatable {
960
+ transition: background-color 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
961
+ }
962
+ .card.activatable:hover {
963
+ background-image: linear-gradient(color-mix(in srgb, currentColor 3%, transparent), color-mix(in srgb, currentColor 3%, transparent));
964
+ }
965
+ .card.activatable:active {
966
+ background-image: linear-gradient(color-mix(in srgb, currentColor 8%, transparent), color-mix(in srgb, currentColor 8%, transparent));
967
+ }
968
+ .osd .card, .card.osd {
969
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
970
+ color: rgba(255, 255, 255, 0.9);
971
+ box-shadow: none;
972
+ }
973
+ @media (prefers-contrast: more) {
974
+ .osd .card, .card.osd {
975
+ box-shadow: 0 0 0 1px var(--border-color);
976
+ }
977
+ }
978
+
979
+ /***************
980
+ * Boxed lists *
981
+ ***************/
982
+ .boxed-list {
983
+ display: flex;
984
+ flex-direction: column;
985
+ overflow: hidden;
986
+ }
987
+
988
+ .boxed-list-separate {
989
+ display: flex;
990
+ flex-direction: column;
991
+ gap: 12px;
992
+ background: none;
993
+ color: var(--card-fg-color);
994
+ }
995
+ .boxed-list-separate > * {
996
+ overflow: hidden;
997
+ border-bottom: none;
998
+ }
999
+
1000
+ /************
1001
+ * Toolbars *
1002
+ ************/
1003
+ .toolbar {
1004
+ display: flex;
1005
+ align-items: center;
1006
+ gap: 6px;
1007
+ padding: 6px;
1008
+ }
1009
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only,
1010
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button,
1011
+ .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1012
+ .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button {
1013
+ background-color: transparent;
1014
+ }
1015
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only:hover,
1016
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button:hover,
1017
+ .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1018
+ .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover {
1019
+ background-color: var(--button-hover-color);
1020
+ }
1021
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only:active,
1022
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button:active,
1023
+ .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1024
+ .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active {
1025
+ background-color: var(--button-active-color);
1026
+ }
1027
+ .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1028
+ .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1029
+ .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1030
+ .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1031
+ .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1032
+ .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button {
1033
+ background-color: var(--button-bg-color);
1034
+ }
1035
+ .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1036
+ .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1037
+ .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1038
+ .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1039
+ .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1040
+ .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover {
1041
+ background-color: var(--button-hover-color);
1042
+ }
1043
+ .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1044
+ .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1045
+ .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1046
+ .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1047
+ .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1048
+ .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active {
1049
+ background-color: var(--button-active-color);
1050
+ }
1051
+ .toolbar.osd {
1052
+ padding: 12px;
1053
+ border-radius: calc(var(--button-radius) + 6px);
1054
+ }
1055
+
1056
+ .spacer {
1057
+ background: none;
1058
+ border: none;
1059
+ flex-shrink: 0;
1060
+ }
1061
+ .spacer, .spacer.horizontal {
1062
+ min-width: 12px;
1063
+ }
1064
+ .spacer.vertical {
1065
+ min-height: 12px;
1066
+ }
1067
+
1068
+ /*******
1069
+ * OSD *
1070
+ *******/
1071
+ .osd:not(adw-progress-bar):not(adw-button):not(adw-menu-button):not(adw-split-button):not(adw-inline-view-switcher) {
1072
+ --accent-bg-color: rgb(255 255 255 / 75%);
1073
+ --accent-fg-color: rgb(0 0 0 / 75%);
1074
+ --accent-color: oklab(from var(--accent-bg-color) max(l, 0.85) a b);
1075
+ --destructive-color: oklab(from var(--destructive-bg-color) max(l, 0.85) a b);
1076
+ --success-color: oklab(from var(--success-bg-color) max(l, 0.85) a b);
1077
+ --warning-color: oklab(from var(--warning-bg-color) max(l, 0.85) a b);
1078
+ --error-color: oklab(from var(--error-bg-color) max(l, 0.85) a b);
1079
+ color: rgba(255, 255, 255, 0.9);
1080
+ border: none;
1081
+ background-color: rgba(0, 0, 0, 0.7);
1082
+ background-clip: padding-box;
1083
+ }
1084
+
1085
+ /*******************
1086
+ * Linked controls *
1087
+ *******************/
1088
+ .linked,
1089
+ .adw-linked {
1090
+ display: inline-flex;
1091
+ }
1092
+ .linked:not(.vertical) > *:not(:first-child) .adw-button, .linked:not(.vertical) > *:not(:first-child).adw-button,
1093
+ .adw-linked:not(.vertical) > *:not(:first-child) .adw-button,
1094
+ .adw-linked:not(.vertical) > *:not(:first-child).adw-button {
1095
+ border-start-start-radius: 0;
1096
+ border-end-start-radius: 0;
1097
+ }
1098
+ .linked:not(.vertical) > *:not(:last-child) .adw-button, .linked:not(.vertical) > *:not(:last-child).adw-button,
1099
+ .adw-linked:not(.vertical) > *:not(:last-child) .adw-button,
1100
+ .adw-linked:not(.vertical) > *:not(:last-child).adw-button {
1101
+ border-start-end-radius: 0;
1102
+ border-end-end-radius: 0;
1103
+ }
1104
+ .linked:not(.vertical) > *:not(:first-child) .adw-entry, .linked:not(.vertical) > *:not(:first-child).adw-entry,
1105
+ .adw-linked:not(.vertical) > *:not(:first-child) .adw-entry,
1106
+ .adw-linked:not(.vertical) > *:not(:first-child).adw-entry {
1107
+ border-start-start-radius: 0;
1108
+ border-end-start-radius: 0;
1109
+ }
1110
+ .linked:not(.vertical) > *:not(:last-child) .adw-entry, .linked:not(.vertical) > *:not(:last-child).adw-entry,
1111
+ .adw-linked:not(.vertical) > *:not(:last-child) .adw-entry,
1112
+ .adw-linked:not(.vertical) > *:not(:last-child).adw-entry {
1113
+ border-start-end-radius: 0;
1114
+ border-end-end-radius: 0;
1115
+ }
1116
+ .linked.vertical,
1117
+ .adw-linked.vertical {
1118
+ flex-direction: column;
1119
+ }
1120
+ .linked.vertical > *:not(:first-child) .adw-button, .linked.vertical > *:not(:first-child).adw-button,
1121
+ .adw-linked.vertical > *:not(:first-child) .adw-button,
1122
+ .adw-linked.vertical > *:not(:first-child).adw-button {
1123
+ border-start-start-radius: 0;
1124
+ border-start-end-radius: 0;
1125
+ }
1126
+ .linked.vertical > *:not(:last-child) .adw-button, .linked.vertical > *:not(:last-child).adw-button,
1127
+ .adw-linked.vertical > *:not(:last-child) .adw-button,
1128
+ .adw-linked.vertical > *:not(:last-child).adw-button {
1129
+ border-end-start-radius: 0;
1130
+ border-end-end-radius: 0;
1131
+ }
1132
+ .linked.vertical > *:not(:first-child) .adw-entry, .linked.vertical > *:not(:first-child).adw-entry,
1133
+ .adw-linked.vertical > *:not(:first-child) .adw-entry,
1134
+ .adw-linked.vertical > *:not(:first-child).adw-entry {
1135
+ border-start-start-radius: 0;
1136
+ border-start-end-radius: 0;
1137
+ }
1138
+ .linked.vertical > *:not(:last-child) .adw-entry, .linked.vertical > *:not(:last-child).adw-entry,
1139
+ .adw-linked.vertical > *:not(:last-child) .adw-entry,
1140
+ .adw-linked.vertical > *:not(:last-child).adw-entry {
1141
+ border-end-start-radius: 0;
1142
+ border-end-end-radius: 0;
1143
+ }
1144
+
1145
+ /*************
1146
+ * App icons *
1147
+ *************/
1148
+ .lowres-icon {
1149
+ filter: drop-shadow(0 -1px rgba(0, 0, 6, 0.05)) drop-shadow(1px 0 rgba(0, 0, 6, 0.1)) drop-shadow(0 1px rgba(0, 0, 6, 0.3)) drop-shadow(-1px 0 rgba(0, 0, 6, 0.1));
1150
+ }
1151
+
1152
+ .icon-dropshadow {
1153
+ filter: drop-shadow(0 1px 12px rgba(0, 0, 6, 0.05)) drop-shadow(0 -1px rgba(0, 0, 6, 0.05)) drop-shadow(1px 0 rgba(0, 0, 6, 0.1)) drop-shadow(0 1px rgba(0, 0, 6, 0.3)) drop-shadow(-1px 0 rgba(0, 0, 6, 0.1));
1154
+ }
1155
+
1156
+ /************************
1157
+ * Undershoot indicators *
1158
+ ************************/
1159
+ .undershoot-top:not(adw-toolbar-view) {
1160
+ box-shadow: inset 0 6px 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1161
+ }
1162
+
1163
+ .undershoot-bottom:not(adw-toolbar-view) {
1164
+ box-shadow: inset 0 -6px 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1165
+ }
1166
+
1167
+ .undershoot-start:dir(ltr) {
1168
+ box-shadow: inset 6px 0 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1169
+ }
1170
+ .undershoot-start:dir(rtl) {
1171
+ box-shadow: inset -6px 0 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1172
+ }
1173
+
1174
+ .undershoot-end:dir(ltr) {
1175
+ box-shadow: inset -6px 0 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1176
+ }
1177
+ .undershoot-end:dir(rtl) {
1178
+ box-shadow: inset 6px 0 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1179
+ }
1180
+
901
1181
  adw-window {
902
1182
  display: flex;
903
1183
  flex-direction: column;
@@ -970,6 +1250,11 @@ adw-header-bar .adw-header-btn:active {
970
1250
  background: rgba(128, 128, 128, 0.22);
971
1251
  }
972
1252
 
1253
+ .devel adw-header-bar,
1254
+ adw-window.devel adw-header-bar {
1255
+ 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);
1256
+ }
1257
+
973
1258
  adw-window-title {
974
1259
  display: flex;
975
1260
  flex-direction: column;
@@ -1082,26 +1367,33 @@ adw-button {
1082
1367
  padding: 6px 20px;
1083
1368
  border-radius: 9999px;
1084
1369
  }
1085
-
1086
- .adw-linked {
1087
- display: inline-flex;
1370
+ .adw-button.raised {
1371
+ background-color: var(--button-bg-color);
1088
1372
  }
1089
- .adw-linked > .adw-button,
1090
- .adw-linked > adw-button .adw-button {
1091
- border-radius: 0;
1373
+ .adw-button.raised:hover {
1374
+ background-color: var(--button-hover-color);
1092
1375
  }
1093
- .adw-linked > :first-child .adw-button,
1094
- .adw-linked > .adw-button:first-child {
1095
- border-top-left-radius: var(--button-radius);
1096
- border-bottom-left-radius: var(--button-radius);
1376
+ .adw-button.raised:active {
1377
+ background-color: var(--button-active-color);
1097
1378
  }
1098
- .adw-linked > :last-child .adw-button,
1099
- .adw-linked > .adw-button:last-child {
1100
- border-top-right-radius: var(--button-radius);
1101
- border-bottom-right-radius: var(--button-radius);
1379
+ .adw-button.osd {
1380
+ min-height: 32px;
1381
+ min-width: 32px;
1382
+ color: rgba(255, 255, 255, 0.9);
1383
+ background-color: rgba(0, 0, 0, 0.65);
1102
1384
  }
1103
- .adw-linked > * + * {
1104
- margin-left: 2px;
1385
+ @media (prefers-contrast: more) {
1386
+ .adw-button.osd {
1387
+ box-shadow: 0 0 0 1px currentColor;
1388
+ }
1389
+ }
1390
+ .adw-button.osd:hover {
1391
+ color: #ffffff;
1392
+ background-color: color-mix(in srgb, black 55.25%, currentColor 9.75%);
1393
+ }
1394
+ .adw-button.osd:active {
1395
+ color: #ffffff;
1396
+ background-color: color-mix(in srgb, black 48.75%, currentColor 16.25%);
1105
1397
  }
1106
1398
 
1107
1399
  .adw-button.image-text-button {
@@ -1161,7 +1453,7 @@ adw-popover {
1161
1453
  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);
1162
1454
  }
1163
1455
  }
1164
- adw-popover[menu] {
1456
+ adw-popover[menu], adw-popover.menu {
1165
1457
  padding: 6px;
1166
1458
  }
1167
1459
  adw-popover[data-position=bottom] {
@@ -1221,7 +1513,7 @@ adw-popover[data-position=bottom][data-align=end], adw-popover[data-position=top
1221
1513
  outline-offset: -2px;
1222
1514
  }
1223
1515
  .adw-popover-item[disabled] {
1224
- opacity: var(--disabled-opacity, 0.5);
1516
+ opacity: var(--disabled-opacity);
1225
1517
  pointer-events: none;
1226
1518
  }
1227
1519
 
@@ -1656,7 +1948,7 @@ adw-toggle-group.flat.round .adw-toggle {
1656
1948
  }
1657
1949
 
1658
1950
  .adw-switch.disabled {
1659
- opacity: var(--dim-opacity);
1951
+ opacity: var(--disabled-opacity);
1660
1952
  }
1661
1953
  .adw-switch.disabled .adw-switch-slider {
1662
1954
  cursor: not-allowed;
@@ -1790,7 +2082,7 @@ adw-radio[indeterminate]:not([disabled]):active .adw-check-indicator {
1790
2082
  adw-checkbox[disabled],
1791
2083
  adw-radio[disabled] {
1792
2084
  cursor: not-allowed;
1793
- opacity: var(--dim-opacity);
2085
+ opacity: var(--disabled-opacity);
1794
2086
  }
1795
2087
  adw-checkbox .adw-check-input:focus-visible ~ .adw-check-indicator,
1796
2088
  adw-radio .adw-check-input:focus-visible ~ .adw-check-indicator {
@@ -1867,7 +2159,7 @@ adw-progress-bar .adw-progress-bar-text {
1867
2159
  font-size: smaller;
1868
2160
  }
1869
2161
  adw-progress-bar[disabled] {
1870
- opacity: var(--dim-opacity);
2162
+ opacity: var(--disabled-opacity);
1871
2163
  }
1872
2164
  adw-progress-bar[inverted] .adw-progress-bar-trough {
1873
2165
  justify-content: flex-end;
@@ -1875,16 +2167,16 @@ adw-progress-bar[inverted] .adw-progress-bar-trough {
1875
2167
  adw-progress-bar .adw-progress-bar-trough.empty .adw-progress-bar-progress {
1876
2168
  all: unset;
1877
2169
  }
1878
- adw-progress-bar[osd] {
2170
+ adw-progress-bar[osd], adw-progress-bar.osd {
1879
2171
  min-width: 2px;
1880
2172
  }
1881
- adw-progress-bar[osd] .adw-progress-bar-trough {
2173
+ adw-progress-bar[osd] .adw-progress-bar-trough, adw-progress-bar.osd .adw-progress-bar-trough {
1882
2174
  height: 2px;
1883
2175
  border-radius: 0;
1884
2176
  background-color: transparent;
1885
2177
  box-shadow: none;
1886
2178
  }
1887
- adw-progress-bar[osd] .adw-progress-bar-progress {
2179
+ adw-progress-bar[osd] .adw-progress-bar-progress, adw-progress-bar.osd .adw-progress-bar-progress {
1888
2180
  border-radius: 0;
1889
2181
  }
1890
2182
  adw-progress-bar[pulsing] .adw-progress-bar-progress {
@@ -1960,21 +2252,13 @@ adw-preferences-group .adw-preferences-group-description {
1960
2252
  color: var(--window-fg-color);
1961
2253
  }
1962
2254
  adw-preferences-group .adw-preferences-group-listbox {
1963
- background-color: var(--card-bg-color);
1964
- color: var(--card-fg-color);
1965
- border-radius: var(--card-radius);
1966
- box-shadow: 0 0 0 1px rgba(0, 0, 6, 0.03), 0 1px 3px 1px rgba(0, 0, 6, 0.07), 0 2px 6px 2px rgba(0, 0, 6, 0.03);
1967
2255
  overflow: hidden;
1968
2256
  }
1969
2257
 
1970
2258
  adw-card,
1971
2259
  .adw-card {
1972
2260
  display: block;
1973
- background-color: var(--card-bg-color);
1974
- color: var(--card-fg-color);
1975
- border-radius: var(--card-radius);
1976
2261
  padding: var(--spacing-l);
1977
- box-shadow: 0 0 0 1px rgba(0, 0, 6, 0.03), 0 1px 3px 1px rgba(0, 0, 6, 0.07), 0 2px 6px 2px rgba(0, 0, 6, 0.03);
1978
2262
  overflow: hidden;
1979
2263
  }
1980
2264
 
@@ -2080,6 +2364,48 @@ adw-spinner svg {
2080
2364
  flex: none;
2081
2365
  }
2082
2366
 
2367
+ adw-shortcut-label {
2368
+ display: inline-flex;
2369
+ align-items: center;
2370
+ gap: 6px;
2371
+ border-radius: 6px;
2372
+ }
2373
+ adw-shortcut-label:focus-visible {
2374
+ outline: 2px solid var(--accent-color);
2375
+ outline-offset: 1px;
2376
+ }
2377
+ adw-shortcut-label .adw-shortcut-label-keys {
2378
+ display: inline-flex;
2379
+ align-items: center;
2380
+ gap: 6px;
2381
+ }
2382
+ adw-shortcut-label .keycap {
2383
+ display: inline-flex;
2384
+ align-items: center;
2385
+ justify-content: center;
2386
+ box-sizing: border-box;
2387
+ min-width: 20px;
2388
+ padding: 6px;
2389
+ border-radius: 6px;
2390
+ background: color-mix(in srgb, currentColor 10%, transparent);
2391
+ box-shadow: inset 0 -2px var(--card-shade-color);
2392
+ }
2393
+ @media (prefers-contrast: more) {
2394
+ adw-shortcut-label .keycap {
2395
+ box-shadow: inset 0 -2px var(--card-shade-color), 0 0 0 1px var(--border-color);
2396
+ }
2397
+ }
2398
+ adw-shortcut-label .adw-shortcut-label-side {
2399
+ margin-inline-start: 2px;
2400
+ font-size: 82%;
2401
+ font-weight: 700;
2402
+ vertical-align: baseline;
2403
+ bottom: 0;
2404
+ }
2405
+ adw-shortcut-label > .dimmed {
2406
+ padding: 6px 0;
2407
+ }
2408
+
2083
2409
  adw-avatar {
2084
2410
  display: inline-flex;
2085
2411
  align-items: center;
@@ -2103,6 +2429,12 @@ adw-avatar .adw-avatar-icon {
2103
2429
  -webkit-mask-size: contain;
2104
2430
  mask-size: contain;
2105
2431
  }
2432
+ adw-avatar .adw-avatar-custom-image {
2433
+ display: block;
2434
+ width: 100%;
2435
+ height: 100%;
2436
+ object-fit: cover;
2437
+ }
2106
2438
 
2107
2439
  adw-banner {
2108
2440
  display: flex;
@@ -2176,6 +2508,17 @@ adw-status-page .adw-status-page-description {
2176
2508
  adw-status-page .adw-status-page-child {
2177
2509
  margin-top: var(--spacing-s);
2178
2510
  }
2511
+ adw-status-page.compact {
2512
+ gap: var(--spacing-s);
2513
+ padding: var(--spacing-m);
2514
+ }
2515
+ adw-status-page.compact .adw-status-page-icon {
2516
+ width: 72px;
2517
+ height: 72px;
2518
+ }
2519
+ adw-status-page.compact .adw-status-page-title {
2520
+ font-size: 14pt;
2521
+ }
2179
2522
 
2180
2523
  adw-switch-row,
2181
2524
  adw-combo-row {
@@ -2276,6 +2619,27 @@ adw-action-row .adw-row-subtitle {
2276
2619
  text-overflow: ellipsis;
2277
2620
  }
2278
2621
 
2622
+ adw-action-row.property .adw-row-title,
2623
+ adw-expander-row.property .adw-row-title {
2624
+ font-size: var(--font-size-small);
2625
+ opacity: var(--dim-opacity);
2626
+ }
2627
+ adw-action-row.property .adw-row-subtitle,
2628
+ adw-expander-row.property .adw-row-subtitle {
2629
+ font-size: var(--font-size-base);
2630
+ opacity: 1;
2631
+ }
2632
+ adw-action-row.property.monospace,
2633
+ adw-expander-row.property.monospace {
2634
+ font-family: inherit;
2635
+ font-size: inherit;
2636
+ }
2637
+ adw-action-row.property.monospace .adw-row-subtitle,
2638
+ adw-expander-row.property.monospace .adw-row-subtitle {
2639
+ font-family: var(--monospace-font-family);
2640
+ font-size: var(--monospace-font-size);
2641
+ }
2642
+
2279
2643
  adw-entry-row {
2280
2644
  display: flex;
2281
2645
  align-items: center;
@@ -3967,6 +4331,42 @@ adw-sidebar.page .adw-sidebar-item-arrow {
3967
4331
  display: inline-block;
3968
4332
  }
3969
4333
 
4334
+ .navigation-sidebar, .navigation-sidebar.view, .navigation-sidebar.view:disabled {
4335
+ background-color: transparent;
4336
+ color: inherit;
4337
+ }
4338
+ .navigation-sidebar.background {
4339
+ background-color: var(--window-bg-color);
4340
+ color: var(--window-fg-color);
4341
+ }
4342
+ .navigation-sidebar {
4343
+ padding-top: var(--spacing-xs);
4344
+ padding-bottom: 4px;
4345
+ }
4346
+ .navigation-sidebar > * {
4347
+ margin: 0 var(--spacing-xs) 2px;
4348
+ padding: 3px 14px;
4349
+ border-radius: var(--button-radius);
4350
+ }
4351
+ .navigation-sidebar > .activatable:hover {
4352
+ background-color: color-mix(in srgb, currentColor 7%, transparent);
4353
+ }
4354
+ .navigation-sidebar > .activatable:active {
4355
+ background-color: color-mix(in srgb, currentColor 16%, transparent);
4356
+ }
4357
+ .navigation-sidebar > [aria-selected=true],
4358
+ .navigation-sidebar > .selected {
4359
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
4360
+ }
4361
+ .navigation-sidebar > [aria-selected=true]:hover,
4362
+ .navigation-sidebar > .selected:hover {
4363
+ background-color: color-mix(in srgb, currentColor 13%, transparent);
4364
+ }
4365
+ .navigation-sidebar > [aria-selected=true]:active,
4366
+ .navigation-sidebar > .selected:active {
4367
+ background-color: color-mix(in srgb, currentColor 19%, transparent);
4368
+ }
4369
+
3970
4370
  adw-about-dialog {
3971
4371
  display: none;
3972
4372
  }