@gjsify/adwaita-web 0.36.0 → 0.38.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 (151) hide show
  1. package/dist/adwaita-web.css +504 -34
  2. package/dist/adwaita-web.css.map +1 -1
  3. package/lib/types/accent.d.ts +28 -0
  4. package/lib/types/adw-accent.spec.d.ts +2 -0
  5. package/lib/types/adw-shortcut-label.spec.d.ts +2 -0
  6. package/lib/types/breakpoints.d.ts +10 -12
  7. package/lib/types/elements/adw-about-dialog.d.ts +19 -36
  8. package/lib/types/elements/adw-action-row.d.ts +9 -12
  9. package/lib/types/elements/adw-alert-dialog.d.ts +0 -12
  10. package/lib/types/elements/adw-avatar.d.ts +1 -0
  11. package/lib/types/elements/adw-bottom-sheet.d.ts +7 -12
  12. package/lib/types/elements/adw-button-content.d.ts +3 -4
  13. package/lib/types/elements/adw-button-row.d.ts +1 -1
  14. package/lib/types/elements/adw-carousel.d.ts +28 -49
  15. package/lib/types/elements/adw-checks.d.ts +2 -8
  16. package/lib/types/elements/adw-combo-row.d.ts +6 -6
  17. package/lib/types/elements/adw-data-grid.d.ts +5 -10
  18. package/lib/types/elements/adw-drop-down.d.ts +3 -11
  19. package/lib/types/elements/adw-entry-row.d.ts +20 -23
  20. package/lib/types/elements/adw-icon.d.ts +2 -4
  21. package/lib/types/elements/adw-inline-view-switcher.d.ts +18 -31
  22. package/lib/types/elements/adw-navigation-split-view.d.ts +7 -12
  23. package/lib/types/elements/adw-navigation-view.d.ts +2 -10
  24. package/lib/types/elements/adw-overlay-split-view.d.ts +28 -52
  25. package/lib/types/elements/adw-password-entry-row.d.ts +4 -5
  26. package/lib/types/elements/adw-popover.d.ts +2 -7
  27. package/lib/types/elements/adw-preferences-dialog.d.ts +21 -34
  28. package/lib/types/elements/adw-preferences-group.d.ts +12 -14
  29. package/lib/types/elements/adw-progress-bar.d.ts +3 -4
  30. package/lib/types/elements/adw-shortcut-label.d.ts +20 -0
  31. package/lib/types/elements/adw-sidebar.d.ts +5 -10
  32. package/lib/types/elements/adw-spinner.d.ts +3 -5
  33. package/lib/types/elements/adw-split-button.d.ts +6 -16
  34. package/lib/types/elements/adw-switch-row.d.ts +3 -3
  35. package/lib/types/elements/adw-tab-view.d.ts +16 -26
  36. package/lib/types/elements/adw-toast-overlay.d.ts +8 -13
  37. package/lib/types/elements/adw-view-stack.d.ts +7 -17
  38. package/lib/types/elements/adw-view-switcher-bar.d.ts +4 -8
  39. package/lib/types/elements/adw-view-switcher.d.ts +18 -38
  40. package/lib/types/elements/adw-wrap-box.d.ts +7 -17
  41. package/lib/types/elements/view-switcher-dom.d.ts +10 -13
  42. package/lib/types/index.d.ts +3 -0
  43. package/lib/types/source-view/hex.d.ts +7 -13
  44. package/lib/types/style-classes.spec.d.ts +11 -0
  45. package/lib/types/styles.generated.d.ts +1 -1
  46. package/package.json +18 -7
  47. package/scss/_about_dialog.scss +3 -2
  48. package/scss/_action_row.scss +33 -0
  49. package/scss/_avatar.scss +12 -0
  50. package/scss/_button.scss +44 -22
  51. package/scss/_card.scss +11 -8
  52. package/scss/_checks.scss +2 -4
  53. package/scss/_dialog.scss +3 -2
  54. package/scss/_headerbar.scss +23 -0
  55. package/scss/_popover.scss +8 -4
  56. package/scss/_preferences.scss +7 -7
  57. package/scss/_progress_bar.scss +9 -6
  58. package/scss/_reset.scss +1 -1
  59. package/scss/_shortcut_label.scss +80 -0
  60. package/scss/_sidebar.scss +57 -0
  61. package/scss/_status_page.scss +20 -0
  62. package/scss/_style_classes.scss +407 -0
  63. package/scss/_switch.scss +4 -3
  64. package/scss/_theme.scss +20 -2
  65. package/scss/_variables.scss +34 -1
  66. package/scss/adwaita-skin.scss +12 -0
  67. package/src/accent.ts +74 -0
  68. package/src/adw-about-dialog.spec.ts +34 -49
  69. package/src/adw-accent.spec.ts +105 -0
  70. package/src/adw-action-rows.spec.ts +25 -33
  71. package/src/adw-avatar.spec.ts +51 -20
  72. package/src/adw-banner.spec.ts +5 -8
  73. package/src/adw-button-content.spec.ts +9 -12
  74. package/src/adw-button-row.spec.ts +2 -4
  75. package/src/adw-carousel.spec.ts +40 -53
  76. package/src/adw-checks.spec.ts +36 -47
  77. package/src/adw-drop-down.spec.ts +25 -32
  78. package/src/adw-header-bar.spec.ts +5 -7
  79. package/src/adw-icon.spec.ts +23 -32
  80. package/src/adw-progress-bar.spec.ts +10 -12
  81. package/src/adw-row-state.spec.ts +9 -10
  82. package/src/adw-shortcut-label.spec.ts +112 -0
  83. package/src/adw-sidebar.spec.ts +17 -24
  84. package/src/adw-switch.spec.ts +11 -17
  85. package/src/adw-tab-view.spec.ts +7 -10
  86. package/src/adw-toast-overlay.spec.ts +7 -11
  87. package/src/adw-view-switcher-bar.spec.ts +10 -14
  88. package/src/adw-wrap-box.spec.ts +25 -36
  89. package/src/bottom-sheet.spec.ts +30 -36
  90. package/src/breakpoints.ts +15 -18
  91. package/src/chrome.spec.ts +13 -21
  92. package/src/elements/adw-about-dialog.ts +71 -114
  93. package/src/elements/adw-action-row.ts +22 -37
  94. package/src/elements/adw-alert-dialog.ts +25 -50
  95. package/src/elements/adw-avatar.ts +40 -15
  96. package/src/elements/adw-banner.ts +14 -18
  97. package/src/elements/adw-bottom-sheet.ts +31 -52
  98. package/src/elements/adw-button-content.ts +30 -37
  99. package/src/elements/adw-button-row.ts +14 -24
  100. package/src/elements/adw-carousel.ts +87 -148
  101. package/src/elements/adw-checks.ts +43 -56
  102. package/src/elements/adw-clamp.ts +8 -9
  103. package/src/elements/adw-combo-row.ts +17 -25
  104. package/src/elements/adw-data-grid.ts +26 -38
  105. package/src/elements/adw-dialog.ts +25 -56
  106. package/src/elements/adw-drop-down.ts +31 -51
  107. package/src/elements/adw-entry-row.ts +39 -46
  108. package/src/elements/adw-expander-row.ts +30 -53
  109. package/src/elements/adw-icon.ts +30 -53
  110. package/src/elements/adw-inline-view-switcher.ts +38 -67
  111. package/src/elements/adw-menu-button.ts +28 -58
  112. package/src/elements/adw-navigation-split-view.ts +35 -47
  113. package/src/elements/adw-navigation-view.ts +12 -28
  114. package/src/elements/adw-overlay-split-view.ts +100 -175
  115. package/src/elements/adw-password-entry-row.ts +18 -28
  116. package/src/elements/adw-popover.ts +28 -44
  117. package/src/elements/adw-preferences-dialog.ts +41 -66
  118. package/src/elements/adw-preferences-group.ts +33 -46
  119. package/src/elements/adw-progress-bar.ts +27 -47
  120. package/src/elements/adw-shortcut-label.ts +138 -0
  121. package/src/elements/adw-sidebar.ts +31 -39
  122. package/src/elements/adw-spin-row.ts +7 -14
  123. package/src/elements/adw-spinner.ts +31 -43
  124. package/src/elements/adw-split-button.ts +45 -75
  125. package/src/elements/adw-switch-row.ts +29 -46
  126. package/src/elements/adw-switch.ts +28 -47
  127. package/src/elements/adw-tab-view.ts +62 -103
  128. package/src/elements/adw-toast-overlay.ts +28 -35
  129. package/src/elements/adw-toggle-group.ts +9 -16
  130. package/src/elements/adw-view-stack.ts +32 -51
  131. package/src/elements/adw-view-switcher-bar.ts +26 -50
  132. package/src/elements/adw-view-switcher.ts +60 -110
  133. package/src/elements/adw-window-title.ts +4 -4
  134. package/src/elements/adw-wrap-box.ts +33 -59
  135. package/src/elements/view-switcher-dom.ts +15 -22
  136. package/src/entry-rows.spec.ts +18 -24
  137. package/src/index.ts +24 -15
  138. package/src/navigation-view.spec.ts +7 -10
  139. package/src/preferences-search.ts +11 -15
  140. package/src/preferences.spec.ts +13 -15
  141. package/src/source-view/adw-source-view.ts +6 -19
  142. package/src/source-view/hex.ts +7 -13
  143. package/src/split-button.spec.ts +32 -44
  144. package/src/split-views.spec.ts +83 -149
  145. package/src/style-classes.spec.ts +181 -0
  146. package/src/style-isolation.spec.ts +3 -6
  147. package/src/styles.generated.ts +1 -1
  148. package/src/tab-view.spec.ts +26 -35
  149. package/src/test.browser.mts +6 -0
  150. package/src/view-stack.spec.ts +23 -34
  151. 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;
@@ -338,7 +348,7 @@
338
348
  --active-toggle-fg-color: rgba(0, 0, 6, 0.8);
339
349
  }
340
350
  }
341
- :root.theme-dark {
351
+ .theme-dark {
342
352
  --window-bg-color: #222226;
343
353
  --window-fg-color: #ffffff;
344
354
  --view-bg-color: #1d1d20;
@@ -384,6 +394,76 @@
384
394
  --active-toggle-fg-color: rgba(0, 0, 6, 0.8);
385
395
  }
386
396
 
397
+ .theme-light {
398
+ --window-bg-color: #fafafb;
399
+ --window-fg-color: rgba(0, 0, 6, 0.8);
400
+ --view-bg-color: #ffffff;
401
+ --view-fg-color: rgba(0, 0, 6, 0.8);
402
+ --headerbar-bg-color: #ffffff;
403
+ --headerbar-fg-color: rgba(0, 0, 6, 0.8);
404
+ --headerbar-shade-color: rgba(0, 0, 6, 0.12);
405
+ --separator-color: rgba(0, 0, 6, 0.1);
406
+ --sidebar-bg-color: #ebebed;
407
+ --sidebar-fg-color: rgba(0, 0, 6, 0.8);
408
+ --sidebar-backdrop-color: #f2f2f4;
409
+ --sidebar-shade-color: rgba(0, 0, 6, 0.07);
410
+ --sidebar-border-color: rgba(0, 0, 6, 0.07);
411
+ --secondary-sidebar-bg-color: #f3f3f5;
412
+ --secondary-sidebar-fg-color: rgba(0, 0, 6, 0.8);
413
+ --secondary-sidebar-backdrop-color: #f6f6fa;
414
+ --secondary-sidebar-shade-color: rgba(0, 0, 6, 0.07);
415
+ --secondary-sidebar-border-color: rgba(0, 0, 6, 0.07);
416
+ --card-bg-color: #ffffff;
417
+ --card-fg-color: rgba(0, 0, 6, 0.8);
418
+ --card-shade-color: rgba(0, 0, 6, 0.07);
419
+ --accent-bg-color: #3584e4;
420
+ --accent-fg-color: #ffffff;
421
+ --accent-color: #1c71d8;
422
+ --popover-bg-color: #ffffff;
423
+ --popover-fg-color: rgba(0, 0, 6, 0.8);
424
+ --popover-shade-color: rgba(0, 0, 6, 0.07);
425
+ --dialog-scrim-color: rgba(0, 0, 6, 0.32);
426
+ --button-bg-color: rgba(0, 0, 6, 0.08);
427
+ --button-hover-color: rgba(0, 0, 6, 0.13);
428
+ --button-active-color: rgba(0, 0, 6, 0.19);
429
+ --entry-bg-color: #ffffff;
430
+ --entry-border-color: rgba(0, 0, 6, 0.18);
431
+ --entry-border-hover-color: rgba(0, 0, 6, 0.28);
432
+ --destructive-bg-color: #e01b24;
433
+ --destructive-fg-color: #ffffff;
434
+ --success-bg-color: #2ec27e;
435
+ --success-fg-color: #ffffff;
436
+ --success-color: oklab(from var(--success-bg-color) min(l, 0.5) a b);
437
+ --warning-bg-color: #e5a50a;
438
+ --warning-fg-color: rgba(0, 0, 0, 0.8);
439
+ --warning-color: oklab(from var(--warning-bg-color) min(l, 0.5) a b);
440
+ --error-bg-color: #e01b24;
441
+ --error-fg-color: #ffffff;
442
+ --error-color: oklab(from var(--error-bg-color) min(l, 0.5) a b);
443
+ --switch-off-bg: rgba(0, 0, 0, 0.2);
444
+ --switch-knob-bg: #ffffff;
445
+ --window-radius: 15px;
446
+ --card-radius: 12px;
447
+ --button-radius: 9px;
448
+ --spacing-xs: 6px;
449
+ --spacing-s: 9px;
450
+ --spacing-m: 12px;
451
+ --spacing-l: 18px;
452
+ --spacing-xl: 24px;
453
+ --font-family: 'Adwaita Sans', 'Cantarell', 'Inter', 'Segoe UI', sans-serif;
454
+ --font-size-base: 11pt;
455
+ --font-size-small: 9pt;
456
+ --font-size-heading: 12pt;
457
+ --dim-opacity: 0.55;
458
+ --border-opacity: 15%;
459
+ --border-color: color-mix(in srgb, currentColor var(--border-opacity), transparent);
460
+ --disabled-opacity: 0.5;
461
+ --document-font-family: var(--font-family);
462
+ --document-font-size: var(--font-size-base);
463
+ --monospace-font-family: 'Adwaita Mono', ui-monospace, 'SF Mono', 'Menlo', monospace;
464
+ --monospace-font-size: var(--font-size-base);
465
+ }
466
+
387
467
  .adw-root {
388
468
  background-color: var(--window-bg-color);
389
469
  color: var(--window-fg-color);
@@ -392,7 +472,7 @@
392
472
  font-size: var(--font-size-base);
393
473
  }
394
474
 
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 {
475
+ 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
476
  box-sizing: border-box;
397
477
  color: var(--window-fg-color);
398
478
  font-family: var(--font-family);
@@ -649,6 +729,12 @@ adw-radio *::after {
649
729
  box-sizing: border-box;
650
730
  }
651
731
 
732
+ adw-shortcut-label *,
733
+ adw-shortcut-label *::before,
734
+ adw-shortcut-label *::after {
735
+ box-sizing: border-box;
736
+ }
737
+
652
738
  adw-sidebar *,
653
739
  adw-sidebar *::before,
654
740
  adw-sidebar *::after {
@@ -898,6 +984,270 @@ adw-wrap-box *::after {
898
984
  font-variant-numeric: tabular-nums;
899
985
  }
900
986
 
987
+ /************
988
+ * Surfaces *
989
+ ************/
990
+ .background {
991
+ background-color: var(--window-bg-color);
992
+ color: var(--window-fg-color);
993
+ }
994
+
995
+ .view {
996
+ background-color: var(--view-bg-color);
997
+ color: var(--view-fg-color);
998
+ }
999
+ .view:disabled, .view[disabled] {
1000
+ color: color-mix(in srgb, var(--view-fg-color) var(--disabled-opacity), transparent);
1001
+ background-color: color-mix(in srgb, var(--window-bg-color) 60%, var(--view-bg-color));
1002
+ }
1003
+ .view[aria-selected=true] {
1004
+ background-color: color-mix(in srgb, var(--accent-bg-color) 25%, transparent);
1005
+ border-radius: var(--button-radius);
1006
+ }
1007
+
1008
+ .frame {
1009
+ border: 1px solid var(--border-color);
1010
+ }
1011
+
1012
+ /*********
1013
+ * Cards *
1014
+ *********/
1015
+ adw-card,
1016
+ .adw-card, adw-preferences-group .adw-preferences-group-listbox, .boxed-list-separate > *, .boxed-list, .card {
1017
+ background-color: var(--card-bg-color);
1018
+ color: var(--card-fg-color);
1019
+ border-radius: var(--card-radius);
1020
+ 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);
1021
+ }
1022
+ @media (prefers-contrast: more) {
1023
+ adw-card,
1024
+ .adw-card, adw-preferences-group .adw-preferences-group-listbox, .boxed-list-separate > *, .boxed-list, .card {
1025
+ 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);
1026
+ }
1027
+ }
1028
+
1029
+ .card.activatable {
1030
+ 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);
1031
+ }
1032
+ .card.activatable:hover {
1033
+ background-image: linear-gradient(color-mix(in srgb, currentColor 3%, transparent), color-mix(in srgb, currentColor 3%, transparent));
1034
+ }
1035
+ .card.activatable:active {
1036
+ background-image: linear-gradient(color-mix(in srgb, currentColor 8%, transparent), color-mix(in srgb, currentColor 8%, transparent));
1037
+ }
1038
+ .osd .card, .card.osd {
1039
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
1040
+ color: rgba(255, 255, 255, 0.9);
1041
+ box-shadow: none;
1042
+ }
1043
+ @media (prefers-contrast: more) {
1044
+ .osd .card, .card.osd {
1045
+ box-shadow: 0 0 0 1px var(--border-color);
1046
+ }
1047
+ }
1048
+
1049
+ /***************
1050
+ * Boxed lists *
1051
+ ***************/
1052
+ .boxed-list {
1053
+ display: flex;
1054
+ flex-direction: column;
1055
+ overflow: hidden;
1056
+ }
1057
+
1058
+ .boxed-list-separate {
1059
+ display: flex;
1060
+ flex-direction: column;
1061
+ gap: 12px;
1062
+ background: none;
1063
+ color: var(--card-fg-color);
1064
+ }
1065
+ .boxed-list-separate > * {
1066
+ overflow: hidden;
1067
+ border-bottom: none;
1068
+ }
1069
+
1070
+ /************
1071
+ * Toolbars *
1072
+ ************/
1073
+ .toolbar {
1074
+ display: flex;
1075
+ align-items: center;
1076
+ gap: 6px;
1077
+ padding: 6px;
1078
+ }
1079
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only,
1080
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button,
1081
+ .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1082
+ .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button {
1083
+ background-color: transparent;
1084
+ }
1085
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only:hover,
1086
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button:hover,
1087
+ .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1088
+ .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover {
1089
+ background-color: var(--button-hover-color);
1090
+ }
1091
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button.icon-only:active,
1092
+ .toolbar adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque):has(adw-button-content) .adw-button:active,
1093
+ .toolbar adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1094
+ .toolbar adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active {
1095
+ background-color: var(--button-active-color);
1096
+ }
1097
+ .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1098
+ .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1099
+ .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1100
+ .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1101
+ .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button,
1102
+ .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button {
1103
+ background-color: var(--button-bg-color);
1104
+ }
1105
+ .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1106
+ .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1107
+ .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1108
+ .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1109
+ .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover,
1110
+ .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:hover {
1111
+ background-color: var(--button-hover-color);
1112
+ }
1113
+ .toolbar .linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1114
+ .toolbar .linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1115
+ .toolbar .linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1116
+ .toolbar .adw-linked adw-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1117
+ .toolbar .adw-linked adw-menu-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active,
1118
+ .toolbar .adw-linked adw-split-button:not(.raised):not(.suggested-action):not(.destructive-action):not(.opaque) .adw-button:active {
1119
+ background-color: var(--button-active-color);
1120
+ }
1121
+ .toolbar.osd {
1122
+ padding: 12px;
1123
+ border-radius: calc(var(--button-radius) + 6px);
1124
+ }
1125
+
1126
+ .spacer {
1127
+ background: none;
1128
+ border: none;
1129
+ flex-shrink: 0;
1130
+ }
1131
+ .spacer, .spacer.horizontal {
1132
+ min-width: 12px;
1133
+ }
1134
+ .spacer.vertical {
1135
+ min-height: 12px;
1136
+ }
1137
+
1138
+ /*******
1139
+ * OSD *
1140
+ *******/
1141
+ .osd:not(adw-progress-bar):not(adw-button):not(adw-menu-button):not(adw-split-button):not(adw-inline-view-switcher) {
1142
+ --accent-bg-color: rgb(255 255 255 / 75%);
1143
+ --accent-fg-color: rgb(0 0 0 / 75%);
1144
+ --accent-color: oklab(from var(--accent-bg-color) max(l, 0.85) a b);
1145
+ --destructive-color: oklab(from var(--destructive-bg-color) max(l, 0.85) a b);
1146
+ --success-color: oklab(from var(--success-bg-color) max(l, 0.85) a b);
1147
+ --warning-color: oklab(from var(--warning-bg-color) max(l, 0.85) a b);
1148
+ --error-color: oklab(from var(--error-bg-color) max(l, 0.85) a b);
1149
+ color: rgba(255, 255, 255, 0.9);
1150
+ border: none;
1151
+ background-color: rgba(0, 0, 0, 0.7);
1152
+ background-clip: padding-box;
1153
+ }
1154
+
1155
+ /*******************
1156
+ * Linked controls *
1157
+ *******************/
1158
+ .linked,
1159
+ .adw-linked {
1160
+ display: inline-flex;
1161
+ }
1162
+ .linked:not(.vertical) > *:not(:first-child) .adw-button, .linked:not(.vertical) > *:not(:first-child).adw-button,
1163
+ .adw-linked:not(.vertical) > *:not(:first-child) .adw-button,
1164
+ .adw-linked:not(.vertical) > *:not(:first-child).adw-button {
1165
+ border-start-start-radius: 0;
1166
+ border-end-start-radius: 0;
1167
+ }
1168
+ .linked:not(.vertical) > *:not(:last-child) .adw-button, .linked:not(.vertical) > *:not(:last-child).adw-button,
1169
+ .adw-linked:not(.vertical) > *:not(:last-child) .adw-button,
1170
+ .adw-linked:not(.vertical) > *:not(:last-child).adw-button {
1171
+ border-start-end-radius: 0;
1172
+ border-end-end-radius: 0;
1173
+ }
1174
+ .linked:not(.vertical) > *:not(:first-child) .adw-entry, .linked:not(.vertical) > *:not(:first-child).adw-entry,
1175
+ .adw-linked:not(.vertical) > *:not(:first-child) .adw-entry,
1176
+ .adw-linked:not(.vertical) > *:not(:first-child).adw-entry {
1177
+ border-start-start-radius: 0;
1178
+ border-end-start-radius: 0;
1179
+ }
1180
+ .linked:not(.vertical) > *:not(:last-child) .adw-entry, .linked:not(.vertical) > *:not(:last-child).adw-entry,
1181
+ .adw-linked:not(.vertical) > *:not(:last-child) .adw-entry,
1182
+ .adw-linked:not(.vertical) > *:not(:last-child).adw-entry {
1183
+ border-start-end-radius: 0;
1184
+ border-end-end-radius: 0;
1185
+ }
1186
+ .linked.vertical,
1187
+ .adw-linked.vertical {
1188
+ flex-direction: column;
1189
+ }
1190
+ .linked.vertical > *:not(:first-child) .adw-button, .linked.vertical > *:not(:first-child).adw-button,
1191
+ .adw-linked.vertical > *:not(:first-child) .adw-button,
1192
+ .adw-linked.vertical > *:not(:first-child).adw-button {
1193
+ border-start-start-radius: 0;
1194
+ border-start-end-radius: 0;
1195
+ }
1196
+ .linked.vertical > *:not(:last-child) .adw-button, .linked.vertical > *:not(:last-child).adw-button,
1197
+ .adw-linked.vertical > *:not(:last-child) .adw-button,
1198
+ .adw-linked.vertical > *:not(:last-child).adw-button {
1199
+ border-end-start-radius: 0;
1200
+ border-end-end-radius: 0;
1201
+ }
1202
+ .linked.vertical > *:not(:first-child) .adw-entry, .linked.vertical > *:not(:first-child).adw-entry,
1203
+ .adw-linked.vertical > *:not(:first-child) .adw-entry,
1204
+ .adw-linked.vertical > *:not(:first-child).adw-entry {
1205
+ border-start-start-radius: 0;
1206
+ border-start-end-radius: 0;
1207
+ }
1208
+ .linked.vertical > *:not(:last-child) .adw-entry, .linked.vertical > *:not(:last-child).adw-entry,
1209
+ .adw-linked.vertical > *:not(:last-child) .adw-entry,
1210
+ .adw-linked.vertical > *:not(:last-child).adw-entry {
1211
+ border-end-start-radius: 0;
1212
+ border-end-end-radius: 0;
1213
+ }
1214
+
1215
+ /*************
1216
+ * App icons *
1217
+ *************/
1218
+ .lowres-icon {
1219
+ 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));
1220
+ }
1221
+
1222
+ .icon-dropshadow {
1223
+ 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));
1224
+ }
1225
+
1226
+ /************************
1227
+ * Undershoot indicators *
1228
+ ************************/
1229
+ .undershoot-top:not(adw-toolbar-view) {
1230
+ box-shadow: inset 0 6px 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1231
+ }
1232
+
1233
+ .undershoot-bottom:not(adw-toolbar-view) {
1234
+ box-shadow: inset 0 -6px 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1235
+ }
1236
+
1237
+ .undershoot-start:dir(ltr) {
1238
+ box-shadow: inset 6px 0 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1239
+ }
1240
+ .undershoot-start:dir(rtl) {
1241
+ box-shadow: inset -6px 0 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1242
+ }
1243
+
1244
+ .undershoot-end:dir(ltr) {
1245
+ box-shadow: inset -6px 0 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1246
+ }
1247
+ .undershoot-end:dir(rtl) {
1248
+ box-shadow: inset 6px 0 6px -6px color-mix(in srgb, currentColor 6%, transparent);
1249
+ }
1250
+
901
1251
  adw-window {
902
1252
  display: flex;
903
1253
  flex-direction: column;
@@ -970,6 +1320,11 @@ adw-header-bar .adw-header-btn:active {
970
1320
  background: rgba(128, 128, 128, 0.22);
971
1321
  }
972
1322
 
1323
+ .devel adw-header-bar,
1324
+ adw-window.devel adw-header-bar {
1325
+ 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);
1326
+ }
1327
+
973
1328
  adw-window-title {
974
1329
  display: flex;
975
1330
  flex-direction: column;
@@ -1082,26 +1437,33 @@ adw-button {
1082
1437
  padding: 6px 20px;
1083
1438
  border-radius: 9999px;
1084
1439
  }
1085
-
1086
- .adw-linked {
1087
- display: inline-flex;
1440
+ .adw-button.raised {
1441
+ background-color: var(--button-bg-color);
1088
1442
  }
1089
- .adw-linked > .adw-button,
1090
- .adw-linked > adw-button .adw-button {
1091
- border-radius: 0;
1443
+ .adw-button.raised:hover {
1444
+ background-color: var(--button-hover-color);
1445
+ }
1446
+ .adw-button.raised:active {
1447
+ background-color: var(--button-active-color);
1448
+ }
1449
+ .adw-button.osd {
1450
+ min-height: 32px;
1451
+ min-width: 32px;
1452
+ color: rgba(255, 255, 255, 0.9);
1453
+ background-color: rgba(0, 0, 0, 0.65);
1092
1454
  }
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);
1455
+ @media (prefers-contrast: more) {
1456
+ .adw-button.osd {
1457
+ box-shadow: 0 0 0 1px currentColor;
1458
+ }
1097
1459
  }
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);
1460
+ .adw-button.osd:hover {
1461
+ color: #ffffff;
1462
+ background-color: color-mix(in srgb, black 55.25%, currentColor 9.75%);
1102
1463
  }
1103
- .adw-linked > * + * {
1104
- margin-left: 2px;
1464
+ .adw-button.osd:active {
1465
+ color: #ffffff;
1466
+ background-color: color-mix(in srgb, black 48.75%, currentColor 16.25%);
1105
1467
  }
1106
1468
 
1107
1469
  .adw-button.image-text-button {
@@ -1161,7 +1523,7 @@ adw-popover {
1161
1523
  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
1524
  }
1163
1525
  }
1164
- adw-popover[menu] {
1526
+ adw-popover[menu], adw-popover.menu {
1165
1527
  padding: 6px;
1166
1528
  }
1167
1529
  adw-popover[data-position=bottom] {
@@ -1221,7 +1583,7 @@ adw-popover[data-position=bottom][data-align=end], adw-popover[data-position=top
1221
1583
  outline-offset: -2px;
1222
1584
  }
1223
1585
  .adw-popover-item[disabled] {
1224
- opacity: var(--disabled-opacity, 0.5);
1586
+ opacity: var(--disabled-opacity);
1225
1587
  pointer-events: none;
1226
1588
  }
1227
1589
 
@@ -1656,7 +2018,7 @@ adw-toggle-group.flat.round .adw-toggle {
1656
2018
  }
1657
2019
 
1658
2020
  .adw-switch.disabled {
1659
- opacity: var(--dim-opacity);
2021
+ opacity: var(--disabled-opacity);
1660
2022
  }
1661
2023
  .adw-switch.disabled .adw-switch-slider {
1662
2024
  cursor: not-allowed;
@@ -1790,7 +2152,7 @@ adw-radio[indeterminate]:not([disabled]):active .adw-check-indicator {
1790
2152
  adw-checkbox[disabled],
1791
2153
  adw-radio[disabled] {
1792
2154
  cursor: not-allowed;
1793
- opacity: var(--dim-opacity);
2155
+ opacity: var(--disabled-opacity);
1794
2156
  }
1795
2157
  adw-checkbox .adw-check-input:focus-visible ~ .adw-check-indicator,
1796
2158
  adw-radio .adw-check-input:focus-visible ~ .adw-check-indicator {
@@ -1867,7 +2229,7 @@ adw-progress-bar .adw-progress-bar-text {
1867
2229
  font-size: smaller;
1868
2230
  }
1869
2231
  adw-progress-bar[disabled] {
1870
- opacity: var(--dim-opacity);
2232
+ opacity: var(--disabled-opacity);
1871
2233
  }
1872
2234
  adw-progress-bar[inverted] .adw-progress-bar-trough {
1873
2235
  justify-content: flex-end;
@@ -1875,16 +2237,16 @@ adw-progress-bar[inverted] .adw-progress-bar-trough {
1875
2237
  adw-progress-bar .adw-progress-bar-trough.empty .adw-progress-bar-progress {
1876
2238
  all: unset;
1877
2239
  }
1878
- adw-progress-bar[osd] {
2240
+ adw-progress-bar[osd], adw-progress-bar.osd {
1879
2241
  min-width: 2px;
1880
2242
  }
1881
- adw-progress-bar[osd] .adw-progress-bar-trough {
2243
+ adw-progress-bar[osd] .adw-progress-bar-trough, adw-progress-bar.osd .adw-progress-bar-trough {
1882
2244
  height: 2px;
1883
2245
  border-radius: 0;
1884
2246
  background-color: transparent;
1885
2247
  box-shadow: none;
1886
2248
  }
1887
- adw-progress-bar[osd] .adw-progress-bar-progress {
2249
+ adw-progress-bar[osd] .adw-progress-bar-progress, adw-progress-bar.osd .adw-progress-bar-progress {
1888
2250
  border-radius: 0;
1889
2251
  }
1890
2252
  adw-progress-bar[pulsing] .adw-progress-bar-progress {
@@ -1960,21 +2322,13 @@ adw-preferences-group .adw-preferences-group-description {
1960
2322
  color: var(--window-fg-color);
1961
2323
  }
1962
2324
  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
2325
  overflow: hidden;
1968
2326
  }
1969
2327
 
1970
2328
  adw-card,
1971
2329
  .adw-card {
1972
2330
  display: block;
1973
- background-color: var(--card-bg-color);
1974
- color: var(--card-fg-color);
1975
- border-radius: var(--card-radius);
1976
2331
  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
2332
  overflow: hidden;
1979
2333
  }
1980
2334
 
@@ -2080,6 +2434,48 @@ adw-spinner svg {
2080
2434
  flex: none;
2081
2435
  }
2082
2436
 
2437
+ adw-shortcut-label {
2438
+ display: inline-flex;
2439
+ align-items: center;
2440
+ gap: 6px;
2441
+ border-radius: 6px;
2442
+ }
2443
+ adw-shortcut-label:focus-visible {
2444
+ outline: 2px solid var(--accent-color);
2445
+ outline-offset: 1px;
2446
+ }
2447
+ adw-shortcut-label .adw-shortcut-label-keys {
2448
+ display: inline-flex;
2449
+ align-items: center;
2450
+ gap: 6px;
2451
+ }
2452
+ adw-shortcut-label .keycap {
2453
+ display: inline-flex;
2454
+ align-items: center;
2455
+ justify-content: center;
2456
+ box-sizing: border-box;
2457
+ min-width: 20px;
2458
+ padding: 6px;
2459
+ border-radius: 6px;
2460
+ background: color-mix(in srgb, currentColor 10%, transparent);
2461
+ box-shadow: inset 0 -2px var(--card-shade-color);
2462
+ }
2463
+ @media (prefers-contrast: more) {
2464
+ adw-shortcut-label .keycap {
2465
+ box-shadow: inset 0 -2px var(--card-shade-color), 0 0 0 1px var(--border-color);
2466
+ }
2467
+ }
2468
+ adw-shortcut-label .adw-shortcut-label-side {
2469
+ margin-inline-start: 2px;
2470
+ font-size: 82%;
2471
+ font-weight: 700;
2472
+ vertical-align: baseline;
2473
+ bottom: 0;
2474
+ }
2475
+ adw-shortcut-label > .dimmed {
2476
+ padding: 6px 0;
2477
+ }
2478
+
2083
2479
  adw-avatar {
2084
2480
  display: inline-flex;
2085
2481
  align-items: center;
@@ -2103,6 +2499,12 @@ adw-avatar .adw-avatar-icon {
2103
2499
  -webkit-mask-size: contain;
2104
2500
  mask-size: contain;
2105
2501
  }
2502
+ adw-avatar .adw-avatar-custom-image {
2503
+ display: block;
2504
+ width: 100%;
2505
+ height: 100%;
2506
+ object-fit: cover;
2507
+ }
2106
2508
 
2107
2509
  adw-banner {
2108
2510
  display: flex;
@@ -2176,6 +2578,17 @@ adw-status-page .adw-status-page-description {
2176
2578
  adw-status-page .adw-status-page-child {
2177
2579
  margin-top: var(--spacing-s);
2178
2580
  }
2581
+ adw-status-page.compact {
2582
+ gap: var(--spacing-s);
2583
+ padding: var(--spacing-m);
2584
+ }
2585
+ adw-status-page.compact .adw-status-page-icon {
2586
+ width: 72px;
2587
+ height: 72px;
2588
+ }
2589
+ adw-status-page.compact .adw-status-page-title {
2590
+ font-size: 14pt;
2591
+ }
2179
2592
 
2180
2593
  adw-switch-row,
2181
2594
  adw-combo-row {
@@ -2276,6 +2689,27 @@ adw-action-row .adw-row-subtitle {
2276
2689
  text-overflow: ellipsis;
2277
2690
  }
2278
2691
 
2692
+ adw-action-row.property .adw-row-title,
2693
+ adw-expander-row.property .adw-row-title {
2694
+ font-size: var(--font-size-small);
2695
+ opacity: var(--dim-opacity);
2696
+ }
2697
+ adw-action-row.property .adw-row-subtitle,
2698
+ adw-expander-row.property .adw-row-subtitle {
2699
+ font-size: var(--font-size-base);
2700
+ opacity: 1;
2701
+ }
2702
+ adw-action-row.property.monospace,
2703
+ adw-expander-row.property.monospace {
2704
+ font-family: inherit;
2705
+ font-size: inherit;
2706
+ }
2707
+ adw-action-row.property.monospace .adw-row-subtitle,
2708
+ adw-expander-row.property.monospace .adw-row-subtitle {
2709
+ font-family: var(--monospace-font-family);
2710
+ font-size: var(--monospace-font-size);
2711
+ }
2712
+
2279
2713
  adw-entry-row {
2280
2714
  display: flex;
2281
2715
  align-items: center;
@@ -3967,6 +4401,42 @@ adw-sidebar.page .adw-sidebar-item-arrow {
3967
4401
  display: inline-block;
3968
4402
  }
3969
4403
 
4404
+ .navigation-sidebar, .navigation-sidebar.view, .navigation-sidebar.view:disabled {
4405
+ background-color: transparent;
4406
+ color: inherit;
4407
+ }
4408
+ .navigation-sidebar.background {
4409
+ background-color: var(--window-bg-color);
4410
+ color: var(--window-fg-color);
4411
+ }
4412
+ .navigation-sidebar {
4413
+ padding-top: var(--spacing-xs);
4414
+ padding-bottom: 4px;
4415
+ }
4416
+ .navigation-sidebar > * {
4417
+ margin: 0 var(--spacing-xs) 2px;
4418
+ padding: 3px 14px;
4419
+ border-radius: var(--button-radius);
4420
+ }
4421
+ .navigation-sidebar > .activatable:hover {
4422
+ background-color: color-mix(in srgb, currentColor 7%, transparent);
4423
+ }
4424
+ .navigation-sidebar > .activatable:active {
4425
+ background-color: color-mix(in srgb, currentColor 16%, transparent);
4426
+ }
4427
+ .navigation-sidebar > [aria-selected=true],
4428
+ .navigation-sidebar > .selected {
4429
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
4430
+ }
4431
+ .navigation-sidebar > [aria-selected=true]:hover,
4432
+ .navigation-sidebar > .selected:hover {
4433
+ background-color: color-mix(in srgb, currentColor 13%, transparent);
4434
+ }
4435
+ .navigation-sidebar > [aria-selected=true]:active,
4436
+ .navigation-sidebar > .selected:active {
4437
+ background-color: color-mix(in srgb, currentColor 19%, transparent);
4438
+ }
4439
+
3970
4440
  adw-about-dialog {
3971
4441
  display: none;
3972
4442
  }