ogm-viewer 0.3.0 → 0.5.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 (215) hide show
  1. package/dist/cjs/{index-CVTUnaNg.js → index-mu9UK_Fb.js} +66 -3
  2. package/dist/cjs/{lerc-TQEssgMv.js → lerc-Df0hDWkS.js} +7 -7
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-settings.ogm-sidebar.ogm-viewer-ifPxRNEo.js → ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-DMEfXquS.js} +13843 -6976
  5. package/dist/cjs/ogm-alerts_11.cjs.entry.js +18 -0
  6. package/dist/cjs/ogm-viewer.cjs.js +2 -2
  7. package/dist/collection/assets/icons/exclamation-triangle-fill.svg +3 -0
  8. package/dist/collection/assets/webawesome/styles/color/palettes/base.css +44 -0
  9. package/dist/collection/assets/webawesome/styles/color/palettes/bright.css +145 -0
  10. package/dist/collection/assets/webawesome/styles/color/palettes/default.css +146 -0
  11. package/dist/collection/assets/webawesome/styles/color/palettes/shoelace.css +146 -0
  12. package/dist/collection/assets/webawesome/styles/color/variants/brand.css +162 -0
  13. package/dist/collection/assets/webawesome/styles/color/variants/danger.css +162 -0
  14. package/dist/collection/assets/webawesome/styles/color/variants/neutral.css +162 -0
  15. package/dist/collection/assets/webawesome/styles/color/variants/success.css +162 -0
  16. package/dist/collection/assets/webawesome/styles/color/variants/warning.css +162 -0
  17. package/dist/collection/assets/webawesome/styles/color/variants.css +5 -0
  18. package/dist/collection/assets/webawesome/styles/component/form-control.styles.d.ts +2 -0
  19. package/dist/collection/assets/webawesome/styles/component/form-control.styles.ts +43 -0
  20. package/dist/collection/assets/webawesome/styles/component/host.styles.d.ts +2 -0
  21. package/dist/collection/assets/webawesome/styles/component/host.styles.ts +18 -0
  22. package/dist/collection/assets/webawesome/styles/component/segmented-field.styles.d.ts +19 -0
  23. package/dist/collection/assets/webawesome/styles/component/segmented-field.styles.ts +92 -0
  24. package/dist/collection/assets/webawesome/styles/component/size.styles.d.ts +2 -0
  25. package/dist/collection/assets/webawesome/styles/component/size.styles.ts +26 -0
  26. package/dist/collection/assets/webawesome/styles/component/variants.styles.d.ts +2 -0
  27. package/dist/collection/assets/webawesome/styles/component/variants.styles.ts +69 -0
  28. package/dist/collection/assets/webawesome/styles/component/visually-hidden.styles.d.ts +2 -0
  29. package/dist/collection/assets/webawesome/styles/component/visually-hidden.styles.ts +19 -0
  30. package/dist/collection/assets/webawesome/styles/layers.css +21 -0
  31. package/dist/collection/assets/webawesome/styles/native.css +1439 -0
  32. package/dist/collection/assets/webawesome/styles/themes/awesome.css +614 -0
  33. package/dist/collection/assets/webawesome/styles/themes/default.css +373 -0
  34. package/dist/collection/assets/webawesome/styles/themes/shoelace.css +648 -0
  35. package/dist/collection/assets/webawesome/styles/utilities/align-items.css +44 -0
  36. package/dist/collection/assets/webawesome/styles/utilities/border-radius.css +20 -0
  37. package/dist/collection/assets/webawesome/styles/utilities/flex-wrap.css +16 -0
  38. package/dist/collection/assets/webawesome/styles/utilities/fouce.css +17 -0
  39. package/dist/collection/assets/webawesome/styles/utilities/gap.css +56 -0
  40. package/dist/collection/assets/webawesome/styles/utilities/justify-content.css +32 -0
  41. package/dist/collection/assets/webawesome/styles/utilities/layout.css +159 -0
  42. package/dist/collection/assets/webawesome/styles/utilities/placeholder.css +9 -0
  43. package/dist/collection/assets/webawesome/styles/utilities/prose.css +161 -0
  44. package/dist/collection/assets/webawesome/styles/utilities/scroll-lock.css +20 -0
  45. package/dist/collection/assets/webawesome/styles/utilities/size.css +21 -0
  46. package/dist/collection/assets/webawesome/styles/utilities/text.css +262 -0
  47. package/dist/collection/assets/webawesome/styles/utilities/variants.css +62 -0
  48. package/dist/collection/assets/webawesome/styles/utilities/visually-hidden.css +17 -0
  49. package/dist/collection/assets/webawesome/styles/utilities.css +17 -0
  50. package/dist/collection/assets/webawesome/styles/webawesome.css +11 -0
  51. package/dist/collection/collection-manifest.json +4 -0
  52. package/dist/collection/components/ogm-alerts/ogm-alerts.css +51 -0
  53. package/dist/collection/components/ogm-alerts/ogm-alerts.js +71 -0
  54. package/dist/collection/components/ogm-alerts/ogm-alerts.test.js +26 -0
  55. package/dist/collection/components/ogm-attributes/ogm-attributes.css +68 -0
  56. package/dist/collection/components/ogm-attributes/ogm-attributes.js +112 -0
  57. package/dist/collection/components/ogm-image/ogm-image.css +1 -1
  58. package/dist/collection/components/ogm-image/ogm-image.js +70 -20
  59. package/dist/collection/components/ogm-map/ogm-map.css +43 -44
  60. package/dist/collection/components/ogm-map/ogm-map.js +229 -91
  61. package/dist/collection/components/ogm-menubar/ogm-menubar.css +16 -14
  62. package/dist/collection/components/ogm-menubar/ogm-menubar.js +3 -5
  63. package/dist/collection/components/ogm-menubar/ogm-menubar.test.js +28 -3
  64. package/dist/collection/components/ogm-metadata/ogm-metadata.css +6 -492
  65. package/dist/collection/components/ogm-metadata/ogm-metadata.js +3 -5
  66. package/dist/collection/components/ogm-metadata/ogm-metadata.test.js +1 -1
  67. package/dist/collection/components/ogm-preview/ogm-preview.css +16 -0
  68. package/dist/collection/components/ogm-preview/ogm-preview.js +144 -0
  69. package/dist/collection/components/ogm-preview/ogm-preview.test.js +37 -0
  70. package/dist/collection/components/ogm-previews/ogm-previews.css +45 -0
  71. package/dist/collection/components/ogm-previews/ogm-previews.js +162 -0
  72. package/dist/collection/components/ogm-previews/ogm-previews.test.js +83 -0
  73. package/dist/collection/components/ogm-settings/ogm-settings.js +7 -9
  74. package/dist/collection/components/ogm-sidebar/ogm-sidebar.css +50 -503
  75. package/dist/collection/components/ogm-sidebar/ogm-sidebar.js +8 -12
  76. package/dist/collection/components/ogm-viewer/ogm-viewer.css +4 -974
  77. package/dist/collection/components/ogm-viewer/ogm-viewer.js +69 -32
  78. package/dist/collection/lib/errors.js +137 -0
  79. package/dist/collection/lib/errors.test.js +96 -0
  80. package/dist/collection/lib/previewers/cog-deck.js +14 -9
  81. package/dist/collection/lib/previewers/cog.js +3 -3
  82. package/dist/collection/lib/previewers/geojson.js +3 -2
  83. package/dist/collection/lib/previewers/maplibre.js +9 -15
  84. package/dist/collection/lib/previewers/pmtiles-raster.js +1 -1
  85. package/dist/collection/lib/previewers/pmtiles-vector.js +7 -1
  86. package/dist/collection/lib/previewers/raster.js +1 -1
  87. package/dist/collection/lib/previewers/vector.js +65 -30
  88. package/dist/collection/lib/previewers/wms.js +1 -1
  89. package/dist/collection/lib/record.js +1 -1
  90. package/dist/collection/lib/record.test.js +1 -1
  91. package/dist/collection/lib/references.js +0 -65
  92. package/dist/collection/lib/references.test.js +0 -150
  93. package/dist/collection/lib/sources/cog.js +5 -2
  94. package/dist/collection/lib/sources/geojson.js +9 -2
  95. package/dist/collection/lib/sources/iiif-manifest.js +54 -0
  96. package/dist/collection/lib/sources/iiif-manifest.test.js +110 -0
  97. package/dist/collection/lib/sources/iiif.js +11 -0
  98. package/dist/collection/lib/sources/maplibre.js +8 -0
  99. package/dist/collection/lib/sources/openindexmap.js +3 -0
  100. package/dist/collection/lib/sources/pmtiles.js +10 -4
  101. package/dist/collection/lib/sources/raster.js +3 -3
  102. package/dist/collection/lib/sources/source.js +26 -7
  103. package/dist/collection/lib/sources/tilejson.js +7 -1
  104. package/dist/collection/lib/sources/tms.js +3 -0
  105. package/dist/collection/lib/sources/vector.js +3 -3
  106. package/dist/collection/lib/sources/wms.js +6 -11
  107. package/dist/collection/lib/sources/xyz.js +3 -0
  108. package/dist/collection/lib/themes/maplibre.js +46 -0
  109. package/dist/collection/lib/themes/theme.js +23 -0
  110. package/dist/esm/{index-BdFT_kJa.js → index-DTLAlWKQ.js} +66 -3
  111. package/dist/esm/{lerc-DFDScDrO.js → lerc-CB_Jcu33.js} +2 -2
  112. package/dist/esm/loader.js +3 -3
  113. package/dist/esm/{ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-settings.ogm-sidebar.ogm-viewer-r5w_49n3.js → ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-Dlc6USWB.js} +13840 -6977
  114. package/dist/esm/ogm-alerts_11.entry.js +2 -0
  115. package/dist/esm/ogm-viewer.js +3 -3
  116. package/dist/ogm-viewer/assets/icons/exclamation-triangle-fill.svg +3 -0
  117. package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/base.css +44 -0
  118. package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/bright.css +145 -0
  119. package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/default.css +146 -0
  120. package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/shoelace.css +146 -0
  121. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/brand.css +162 -0
  122. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/danger.css +162 -0
  123. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/neutral.css +162 -0
  124. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/success.css +162 -0
  125. package/dist/ogm-viewer/assets/webawesome/styles/color/variants/warning.css +162 -0
  126. package/dist/ogm-viewer/assets/webawesome/styles/color/variants.css +5 -0
  127. package/dist/ogm-viewer/assets/webawesome/styles/component/form-control.styles.d.ts +2 -0
  128. package/dist/ogm-viewer/assets/webawesome/styles/component/form-control.styles.ts +43 -0
  129. package/dist/ogm-viewer/assets/webawesome/styles/component/host.styles.d.ts +2 -0
  130. package/dist/ogm-viewer/assets/webawesome/styles/component/host.styles.ts +18 -0
  131. package/dist/ogm-viewer/assets/webawesome/styles/component/segmented-field.styles.d.ts +19 -0
  132. package/dist/ogm-viewer/assets/webawesome/styles/component/segmented-field.styles.ts +92 -0
  133. package/dist/ogm-viewer/assets/webawesome/styles/component/size.styles.d.ts +2 -0
  134. package/dist/ogm-viewer/assets/webawesome/styles/component/size.styles.ts +26 -0
  135. package/dist/ogm-viewer/assets/webawesome/styles/component/variants.styles.d.ts +2 -0
  136. package/dist/ogm-viewer/assets/webawesome/styles/component/variants.styles.ts +69 -0
  137. package/dist/ogm-viewer/assets/webawesome/styles/component/visually-hidden.styles.d.ts +2 -0
  138. package/dist/ogm-viewer/assets/webawesome/styles/component/visually-hidden.styles.ts +19 -0
  139. package/dist/ogm-viewer/assets/webawesome/styles/layers.css +21 -0
  140. package/dist/ogm-viewer/assets/webawesome/styles/native.css +1439 -0
  141. package/dist/ogm-viewer/assets/webawesome/styles/themes/awesome.css +614 -0
  142. package/dist/ogm-viewer/assets/webawesome/styles/themes/default.css +373 -0
  143. package/dist/ogm-viewer/assets/webawesome/styles/themes/shoelace.css +648 -0
  144. package/dist/ogm-viewer/assets/webawesome/styles/utilities/align-items.css +44 -0
  145. package/dist/ogm-viewer/assets/webawesome/styles/utilities/border-radius.css +20 -0
  146. package/dist/ogm-viewer/assets/webawesome/styles/utilities/flex-wrap.css +16 -0
  147. package/dist/ogm-viewer/assets/webawesome/styles/utilities/fouce.css +17 -0
  148. package/dist/ogm-viewer/assets/webawesome/styles/utilities/gap.css +56 -0
  149. package/dist/ogm-viewer/assets/webawesome/styles/utilities/justify-content.css +32 -0
  150. package/dist/ogm-viewer/assets/webawesome/styles/utilities/layout.css +159 -0
  151. package/dist/ogm-viewer/assets/webawesome/styles/utilities/placeholder.css +9 -0
  152. package/dist/ogm-viewer/assets/webawesome/styles/utilities/prose.css +161 -0
  153. package/dist/ogm-viewer/assets/webawesome/styles/utilities/scroll-lock.css +20 -0
  154. package/dist/ogm-viewer/assets/webawesome/styles/utilities/size.css +21 -0
  155. package/dist/ogm-viewer/assets/webawesome/styles/utilities/text.css +262 -0
  156. package/dist/ogm-viewer/assets/webawesome/styles/utilities/variants.css +62 -0
  157. package/dist/ogm-viewer/assets/webawesome/styles/utilities/visually-hidden.css +17 -0
  158. package/dist/ogm-viewer/assets/webawesome/styles/utilities.css +17 -0
  159. package/dist/ogm-viewer/assets/webawesome/styles/webawesome.css +11 -0
  160. package/dist/ogm-viewer/ogm-viewer.esm.js +1 -1
  161. package/dist/ogm-viewer/p-7936ccc9.entry.js +1 -0
  162. package/dist/ogm-viewer/p-CWtUrqsM.js +2822 -0
  163. package/dist/ogm-viewer/p-DTLAlWKQ.js +2 -0
  164. package/dist/ogm-viewer/{p-BeA3REDA.js → p-DqRDI3AC.js} +1 -1
  165. package/dist/types/components/ogm-alerts/ogm-alerts.d.ts +6 -0
  166. package/dist/types/components/ogm-alerts/ogm-alerts.test.d.ts +1 -0
  167. package/dist/types/components/ogm-attributes/ogm-attributes.d.ts +10 -0
  168. package/dist/types/components/ogm-image/ogm-image.d.ts +8 -3
  169. package/dist/types/components/ogm-map/ogm-map.d.ts +38 -14
  170. package/dist/types/components/ogm-menubar/ogm-menubar.d.ts +1 -1
  171. package/dist/types/components/ogm-metadata/ogm-metadata.d.ts +1 -1
  172. package/dist/types/components/ogm-preview/ogm-preview.d.ts +13 -0
  173. package/dist/types/components/ogm-preview/ogm-preview.test.d.ts +1 -0
  174. package/dist/types/components/ogm-previews/ogm-previews.d.ts +12 -0
  175. package/dist/types/components/ogm-previews/ogm-previews.test.d.ts +1 -0
  176. package/dist/types/components/ogm-settings/ogm-settings.d.ts +2 -2
  177. package/dist/types/components/ogm-sidebar/ogm-sidebar.d.ts +1 -1
  178. package/dist/types/components/ogm-viewer/ogm-viewer.d.ts +17 -14
  179. package/dist/types/components.d.ts +122 -18
  180. package/dist/types/lib/errors.d.ts +13 -0
  181. package/dist/types/lib/errors.test.d.ts +1 -0
  182. package/dist/types/lib/previewers/cog-deck.d.ts +7 -3
  183. package/dist/types/lib/previewers/cog.d.ts +2 -2
  184. package/dist/types/lib/previewers/maplibre.d.ts +7 -9
  185. package/dist/types/lib/previewers/pmtiles-vector.d.ts +1 -0
  186. package/dist/types/lib/previewers/vector.d.ts +3 -15
  187. package/dist/types/lib/record.d.ts +1 -1
  188. package/dist/types/lib/references.d.ts +0 -8
  189. package/dist/types/lib/sources/cog.d.ts +3 -2
  190. package/dist/types/lib/sources/geojson.d.ts +3 -2
  191. package/dist/types/lib/sources/iiif-manifest.d.ts +12 -0
  192. package/dist/types/lib/sources/iiif-manifest.test.d.ts +1 -0
  193. package/dist/types/lib/sources/iiif.d.ts +5 -0
  194. package/dist/types/lib/sources/maplibre.d.ts +7 -0
  195. package/dist/types/lib/sources/openindexmap.d.ts +1 -0
  196. package/dist/types/lib/sources/pmtiles.d.ts +6 -4
  197. package/dist/types/lib/sources/raster.d.ts +3 -3
  198. package/dist/types/lib/sources/source.d.ts +7 -7
  199. package/dist/types/lib/sources/tilejson.d.ts +3 -2
  200. package/dist/types/lib/sources/tms.d.ts +1 -0
  201. package/dist/types/lib/sources/vector.d.ts +4 -5
  202. package/dist/types/lib/sources/wms.d.ts +4 -3
  203. package/dist/types/lib/sources/xyz.d.ts +1 -0
  204. package/dist/types/lib/themes/maplibre.d.ts +27 -0
  205. package/dist/types/lib/themes/theme.d.ts +7 -0
  206. package/package.json +3 -2
  207. package/dist/cjs/ogm-image_7.cjs.entry.js +0 -14
  208. package/dist/collection/lib/previewers/index.js +0 -36
  209. package/dist/collection/lib/sources/index.js +0 -29
  210. package/dist/esm/ogm-image_7.entry.js +0 -2
  211. package/dist/ogm-viewer/p-0b81e024.entry.js +0 -1
  212. package/dist/ogm-viewer/p-33R3d9fV.js +0 -1950
  213. package/dist/ogm-viewer/p-BdFT_kJa.js +0 -2
  214. package/dist/types/lib/previewers/index.d.ts +0 -3
  215. package/dist/types/lib/sources/index.d.ts +0 -3
@@ -0,0 +1,614 @@
1
+ @import url('../layers.css');
2
+ @import url('../color/palettes/bright.css'); /* To use this palette, add class="wa-palette-bright" to the <html> element */
3
+ @import url('https://fonts.bunny.net/css2?family=Crimson+Pro:ital,wght@0,200..900;1,200..900&family=Quicksand:wght@300..700&display=swap');
4
+
5
+ @layer wa-theme {
6
+ .wa-theme-awesome,
7
+ .wa-theme-awesome.wa-light,
8
+ .wa-theme-awesome .wa-light,
9
+ .wa-theme-awesome.wa-dark .wa-invert,
10
+ .wa-theme-awesome .wa-dark .wa-invert,
11
+ .wa-light .wa-theme-awesome,
12
+ .wa-dark .wa-theme-awesome.wa-invert,
13
+ .wa-dark .wa-theme-awesome .wa-invert {
14
+ /* #region Colors (Light) ~~~~~~~~~~~~~~~~~~~~~ */
15
+ color-scheme: light;
16
+ color: var(--wa-color-text-normal);
17
+
18
+ --wa-color-surface-raised: white;
19
+ --wa-color-surface-default: white;
20
+ --wa-color-surface-lowered: var(--wa-color-neutral-95);
21
+ --wa-color-surface-border: var(--wa-color-neutral-90);
22
+
23
+ --wa-color-text-normal: var(--wa-color-neutral-20);
24
+ --wa-color-text-quiet: var(--wa-color-neutral-40);
25
+ --wa-color-text-link: var(--wa-color-brand-40);
26
+
27
+ --wa-color-overlay-modal: color-mix(in oklab, var(--wa-color-neutral-05) 50%, transparent);
28
+ --wa-color-overlay-inline: color-mix(in oklab, var(--wa-color-neutral-80) 25%, transparent);
29
+
30
+ --wa-color-shadow: color-mix(
31
+ in oklab,
32
+ var(--wa-color-neutral-05) calc(var(--wa-shadow-blur-scale) * 4% + 8%),
33
+ transparent
34
+ );
35
+
36
+ --wa-color-focus: var(--wa-color-brand-60);
37
+
38
+ --wa-color-mix-hover: oklch(from currentColor calc(1 - l) c h) 15%;
39
+ --wa-color-mix-active: var(--wa-color-surface-default) 10%;
40
+
41
+ --wa-color-brand-fill-quiet: var(--wa-color-brand-95);
42
+ --wa-color-brand-fill-normal: var(--wa-color-brand-90);
43
+ --wa-color-brand-fill-loud: var(--wa-color-brand-70);
44
+ --wa-color-brand-border-quiet: var(--wa-color-brand-70);
45
+ --wa-color-brand-border-normal: var(--wa-color-brand-50);
46
+ --wa-color-brand-border-loud: var(--wa-color-brand-30);
47
+ --wa-color-brand-on-quiet: var(--wa-color-brand-40);
48
+ --wa-color-brand-on-normal: var(--wa-color-brand-40);
49
+ --wa-color-brand-on-loud: var(--wa-color-text-normal);
50
+
51
+ --wa-color-success-fill-quiet: var(--wa-color-success-95);
52
+ --wa-color-success-fill-normal: var(--wa-color-success-90);
53
+ --wa-color-success-fill-loud: var(--wa-color-success-80);
54
+ --wa-color-success-border-quiet: var(--wa-color-success-70);
55
+ --wa-color-success-border-normal: var(--wa-color-success-50);
56
+ --wa-color-success-border-loud: var(--wa-color-success-30);
57
+ --wa-color-success-on-quiet: var(--wa-color-success-40);
58
+ --wa-color-success-on-normal: var(--wa-color-success-40);
59
+ --wa-color-success-on-loud: var(--wa-color-text-normal);
60
+
61
+ --wa-color-warning-fill-quiet: var(--wa-color-warning-95);
62
+ --wa-color-warning-fill-normal: var(--wa-color-warning-90);
63
+ --wa-color-warning-fill-loud: var(--wa-color-warning-80);
64
+ --wa-color-warning-border-quiet: var(--wa-color-warning-70);
65
+ --wa-color-warning-border-normal: var(--wa-color-warning-50);
66
+ --wa-color-warning-border-loud: var(--wa-color-warning-30);
67
+ --wa-color-warning-on-quiet: var(--wa-color-warning-40);
68
+ --wa-color-warning-on-normal: var(--wa-color-warning-40);
69
+ --wa-color-warning-on-loud: var(--wa-color-text-normal);
70
+
71
+ --wa-color-danger-fill-quiet: var(--wa-color-danger-95);
72
+ --wa-color-danger-fill-normal: var(--wa-color-danger-90);
73
+ --wa-color-danger-fill-loud: var(--wa-color-danger-70);
74
+ --wa-color-danger-border-quiet: var(--wa-color-danger-70);
75
+ --wa-color-danger-border-normal: var(--wa-color-danger-50);
76
+ --wa-color-danger-border-loud: var(--wa-color-danger-30);
77
+ --wa-color-danger-on-quiet: var(--wa-color-danger-40);
78
+ --wa-color-danger-on-normal: var(--wa-color-danger-40);
79
+ --wa-color-danger-on-loud: var(--wa-color-text-normal);
80
+
81
+ --wa-color-neutral-fill-quiet: var(--wa-color-neutral-95);
82
+ --wa-color-neutral-fill-normal: var(--wa-color-neutral-90);
83
+ --wa-color-neutral-fill-loud: var(--wa-color-neutral-80);
84
+ --wa-color-neutral-border-quiet: var(--wa-color-neutral-70);
85
+ --wa-color-neutral-border-normal: var(--wa-color-neutral-50);
86
+ --wa-color-neutral-border-loud: var(--wa-color-neutral-30);
87
+ --wa-color-neutral-on-quiet: var(--wa-color-neutral-40);
88
+ --wa-color-neutral-on-normal: var(--wa-color-neutral-40);
89
+ --wa-color-neutral-on-loud: var(--wa-color-text-normal);
90
+ /* #endregion */
91
+ }
92
+
93
+ .wa-theme-awesome.wa-dark,
94
+ .wa-theme-awesome .wa-dark,
95
+ .wa-theme-awesome.wa-invert,
96
+ .wa-theme-awesome .wa-invert,
97
+ .wa-dark .wa-theme-awesome,
98
+ .wa-light .wa-theme-awesome.wa-invert,
99
+ .wa-light .wa-theme-awesome .wa-invert {
100
+ /* #region Colors (Dark) ~~~~~~~~~~~~~~~~~~~~~~ */
101
+ color-scheme: dark;
102
+ color: var(--wa-color-text-normal);
103
+
104
+ --wa-color-surface-raised: var(--wa-color-neutral-10);
105
+ --wa-color-surface-default: var(--wa-color-neutral-05);
106
+ --wa-color-surface-lowered: color-mix(in oklab, var(--wa-color-surface-default), black 20%);
107
+ --wa-color-surface-border: var(--wa-color-neutral-20);
108
+
109
+ --wa-color-text-normal: var(--wa-color-neutral-95);
110
+ --wa-color-text-quiet: var(--wa-color-neutral-60);
111
+ --wa-color-text-link: var(--wa-color-brand-70);
112
+
113
+ --wa-color-overlay-modal: color-mix(in oklab, black 60%, transparent);
114
+ --wa-color-overlay-inline: color-mix(in oklab, var(--wa-color-neutral-50) 10%, transparent);
115
+
116
+ --wa-color-shadow: color-mix(
117
+ in oklab,
118
+ var(--wa-color-surface-lowered) calc(var(--wa-shadow-blur-scale) * 32% + 40%),
119
+ transparent
120
+ );
121
+
122
+ --wa-color-focus: var(--wa-color-brand-60);
123
+
124
+ --wa-color-mix-hover: oklch(from currentColor calc(1 - l) c h) 20%;
125
+ --wa-color-mix-active: var(--wa-color-surface-default) 20%;
126
+
127
+ --wa-color-brand-fill-quiet: var(--wa-color-brand-10);
128
+ --wa-color-brand-fill-normal: var(--wa-color-brand-20);
129
+ --wa-color-brand-fill-loud: var(--wa-color-brand-50);
130
+ --wa-color-brand-border-quiet: var(--wa-color-brand-30);
131
+ --wa-color-brand-border-normal: var(--wa-color-brand-50);
132
+ --wa-color-brand-border-loud: var(--wa-color-brand-80);
133
+ --wa-color-brand-on-quiet: var(--wa-color-brand-70);
134
+ --wa-color-brand-on-normal: var(--wa-color-brand-80);
135
+ --wa-color-brand-on-loud: white;
136
+
137
+ --wa-color-success-fill-quiet: var(--wa-color-success-10);
138
+ --wa-color-success-fill-normal: var(--wa-color-success-20);
139
+ --wa-color-success-fill-loud: var(--wa-color-success-50);
140
+ --wa-color-success-border-quiet: var(--wa-color-success-30);
141
+ --wa-color-success-border-normal: var(--wa-color-success-50);
142
+ --wa-color-success-border-loud: var(--wa-color-success-80);
143
+ --wa-color-success-on-quiet: var(--wa-color-success-70);
144
+ --wa-color-success-on-normal: var(--wa-color-success-80);
145
+ --wa-color-success-on-loud: white;
146
+
147
+ --wa-color-warning-fill-quiet: var(--wa-color-warning-10);
148
+ --wa-color-warning-fill-normal: var(--wa-color-warning-20);
149
+ --wa-color-warning-fill-loud: var(--wa-color-warning-70);
150
+ --wa-color-warning-border-quiet: var(--wa-color-warning-30);
151
+ --wa-color-warning-border-normal: var(--wa-color-warning-50);
152
+ --wa-color-warning-border-loud: var(--wa-color-warning-80);
153
+ --wa-color-warning-on-quiet: var(--wa-color-warning-70);
154
+ --wa-color-warning-on-normal: var(--wa-color-warning-80);
155
+ --wa-color-warning-on-loud: var(--wa-color-warning-05);
156
+
157
+ --wa-color-danger-fill-quiet: var(--wa-color-danger-10);
158
+ --wa-color-danger-fill-normal: var(--wa-color-danger-20);
159
+ --wa-color-danger-fill-loud: var(--wa-color-danger-50);
160
+ --wa-color-danger-border-quiet: var(--wa-color-danger-30);
161
+ --wa-color-danger-border-normal: var(--wa-color-danger-50);
162
+ --wa-color-danger-border-loud: var(--wa-color-danger-80);
163
+ --wa-color-danger-on-quiet: var(--wa-color-danger-70);
164
+ --wa-color-danger-on-normal: var(--wa-color-danger-80);
165
+ --wa-color-danger-on-loud: white;
166
+
167
+ --wa-color-neutral-fill-quiet: var(--wa-color-neutral-10);
168
+ --wa-color-neutral-fill-normal: var(--wa-color-neutral-20);
169
+ --wa-color-neutral-fill-loud: var(--wa-color-neutral-50);
170
+ --wa-color-neutral-border-quiet: var(--wa-color-neutral-30);
171
+ --wa-color-neutral-border-normal: var(--wa-color-neutral-50);
172
+ --wa-color-neutral-border-loud: var(--wa-color-neutral-80);
173
+ --wa-color-neutral-on-quiet: var(--wa-color-neutral-70);
174
+ --wa-color-neutral-on-normal: var(--wa-color-neutral-80);
175
+ --wa-color-neutral-on-loud: white;
176
+ /* #endregion */
177
+ }
178
+
179
+ .wa-theme-awesome,
180
+ .wa-theme-awesome.wa-light,
181
+ .wa-theme-awesome .wa-light,
182
+ .wa-theme-awesome.wa-dark,
183
+ .wa-theme-awesome .wa-dark,
184
+ .wa-theme-awesome.wa-invert,
185
+ .wa-theme-awesome .wa-invert {
186
+ font-family: var(--wa-font-family-body);
187
+
188
+ /* #region Fonts ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
189
+ --wa-font-family-body: 'Quicksand', sans-serif;
190
+ --wa-font-family-heading: var(--wa-font-family-body);
191
+ --wa-font-family-code: ui-monospace, monospace;
192
+ --wa-font-family-longform: 'Crimson Pro', serif;
193
+
194
+ /* Font sizes use a ratio of 1.125 to scale sizes proportionally.
195
+ * For larger font sizes, each size is twice 1.125x larger to maximize impact.
196
+ * Each value uses `rem` units and is rounded to the nearest whole pixel when rendered. */
197
+ --wa-font-size-scale: 1;
198
+ --wa-font-size-3xs: round(calc(var(--wa-font-size-2xs) / 1.125), 1px); /* 10px */
199
+ --wa-font-size-2xs: round(calc(var(--wa-font-size-xs) / 1.125), 1px); /* 11px */
200
+ --wa-font-size-xs: round(calc(var(--wa-font-size-s) / 1.125), 1px); /* 12px */
201
+ --wa-font-size-s: round(calc(var(--wa-font-size-m) / 1.125), 1px); /* 14px */
202
+ --wa-font-size-m: calc(1rem * var(--wa-font-size-scale)); /* 16px */
203
+ --wa-font-size-l: round(calc(var(--wa-font-size-m) * 1.125 * 1.125), 1px); /* 20px */
204
+ --wa-font-size-xl: round(calc(var(--wa-font-size-l) * 1.125 * 1.125), 1px); /* 25px */
205
+ --wa-font-size-2xl: round(calc(var(--wa-font-size-xl) * 1.125 * 1.125), 1px); /* 32px */
206
+ --wa-font-size-3xl: round(calc(var(--wa-font-size-2xl) * 1.125 * 1.125), 1px); /* 41px */
207
+ --wa-font-size-4xl: round(calc(var(--wa-font-size-3xl) * 1.125 * 1.125), 1px); /* 52px */
208
+ --wa-font-size-5xl: round(calc(var(--wa-font-size-4xl) * 1.125 * 1.125), 1px); /* 66px */
209
+
210
+ --wa-font-size-smaller: round(calc(1em / 1.125), 1px);
211
+ --wa-font-size-larger: round(calc(1em * 1.125 * 1.125), 1px);
212
+
213
+ --wa-font-weight-light: 400;
214
+ --wa-font-weight-normal: 500;
215
+ --wa-font-weight-semibold: 600;
216
+ --wa-font-weight-bold: 700;
217
+
218
+ --wa-font-weight-body: var(--wa-font-weight-normal);
219
+ --wa-font-weight-heading: var(--wa-font-weight-bold);
220
+ --wa-font-weight-code: var(--wa-font-weight-normal);
221
+ --wa-font-weight-longform: var(--wa-font-weight-normal);
222
+ --wa-font-weight-action: var(--wa-font-weight-bold);
223
+
224
+ --wa-line-height-condensed: 1.2;
225
+ --wa-line-height-normal: 1.6;
226
+ --wa-line-height-expanded: 2;
227
+
228
+ --wa-link-decoration-default: underline color-mix(in oklab, currentColor 70%, transparent) dotted;
229
+ --wa-link-decoration-hover: underline;
230
+ /* #endregion */
231
+
232
+ /* #region Space ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
233
+ --wa-space-scale: 1;
234
+ --wa-space-3xs: calc(var(--wa-space-scale) * 0.125rem); /* 2px */
235
+ --wa-space-2xs: calc(var(--wa-space-scale) * 0.25rem); /* 4px */
236
+ --wa-space-xs: calc(var(--wa-space-scale) * 0.5rem); /* 8px */
237
+ --wa-space-s: calc(var(--wa-space-scale) * 0.75rem); /* 12px */
238
+ --wa-space-m: calc(var(--wa-space-scale) * 1rem); /* 16px */
239
+ --wa-space-l: calc(var(--wa-space-scale) * 1.5rem); /* 24px */
240
+ --wa-space-xl: calc(var(--wa-space-scale) * 2rem); /* 32px */
241
+ --wa-space-2xl: calc(var(--wa-space-scale) * 2.5rem); /* 40px */
242
+ --wa-space-3xl: calc(var(--wa-space-scale) * 3rem); /* 48px */
243
+ --wa-space-4xl: calc(var(--wa-space-scale) * 4rem); /* 64px */
244
+ --wa-space-5xl: calc(var(--wa-space-scale) * 5rem); /* 80px */
245
+
246
+ --wa-content-spacing: var(--wa-space-l);
247
+ /* #endregion */
248
+
249
+ /* #region Borders ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
250
+ --wa-border-style: solid;
251
+
252
+ --wa-border-width-scale: 2;
253
+ --wa-border-width-s: calc(var(--wa-border-width-scale) * 0.0625rem);
254
+ --wa-border-width-m: calc(var(--wa-border-width-scale) * 0.125rem);
255
+ --wa-border-width-l: calc(var(--wa-border-width-scale) * 0.1875rem);
256
+ /* #endregion */
257
+
258
+ /* #region Rounding ~~~~~~~~~~~~~~~~~~~~~~~~~ */
259
+ --wa-border-radius-scale: 1.5;
260
+ --wa-border-radius-s: calc(var(--wa-border-radius-scale) * 0.1875rem);
261
+ --wa-border-radius-m: calc(var(--wa-border-radius-scale) * 0.375rem);
262
+ --wa-border-radius-l: calc(var(--wa-border-radius-scale) * 0.75rem);
263
+
264
+ --wa-border-radius-pill: 9999px;
265
+ --wa-border-radius-circle: 50%;
266
+ --wa-border-radius-square: 0px;
267
+ /* #endregion */
268
+
269
+ /* #region Focus ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
270
+ --wa-focus-ring-style: solid;
271
+ --wa-focus-ring-width: 0.1875rem; /* 3px */
272
+ --wa-focus-ring: var(--wa-focus-ring-style) var(--wa-focus-ring-width) var(--wa-color-focus);
273
+ --wa-focus-ring-offset: 0.0625rem; /* 1px */
274
+ /* #endregion */
275
+
276
+ /* #region Shadows ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
277
+ --wa-shadow-offset-x-scale: 0;
278
+ --wa-shadow-offset-x-s: calc(var(--wa-shadow-offset-x-scale) * 0.125rem);
279
+ --wa-shadow-offset-x-m: calc(var(--wa-shadow-offset-x-scale) * 0.25rem);
280
+ --wa-shadow-offset-x-l: calc(var(--wa-shadow-offset-x-scale) * 0.5rem);
281
+
282
+ --wa-shadow-offset-y-scale: 2;
283
+ --wa-shadow-offset-y-s: calc(var(--wa-shadow-offset-y-scale) * 0.125rem);
284
+ --wa-shadow-offset-y-m: calc(var(--wa-shadow-offset-y-scale) * 0.25rem);
285
+ --wa-shadow-offset-y-l: calc(var(--wa-shadow-offset-y-scale) * 0.5rem);
286
+
287
+ --wa-shadow-blur-scale: 0;
288
+ --wa-shadow-blur-s: calc(var(--wa-shadow-blur-scale) * 0.125rem);
289
+ --wa-shadow-blur-m: calc(var(--wa-shadow-blur-scale) * 0.25rem);
290
+ --wa-shadow-blur-l: calc(var(--wa-shadow-blur-scale) * 0.5rem);
291
+
292
+ --wa-shadow-spread-scale: 0;
293
+ --wa-shadow-spread-s: calc(var(--wa-shadow-spread-scale) * 0.125rem);
294
+ --wa-shadow-spread-m: calc(var(--wa-shadow-spread-scale) * 0.25rem);
295
+ --wa-shadow-spread-l: calc(var(--wa-shadow-spread-scale) * 0.5rem);
296
+
297
+ --wa-shadow-s: var(--wa-shadow-offset-x-s) var(--wa-shadow-offset-y-s) var(--wa-shadow-blur-s)
298
+ var(--wa-shadow-spread-s) var(--wa-color-shadow);
299
+ --wa-shadow-m: var(--wa-shadow-offset-x-m) var(--wa-shadow-offset-y-m) var(--wa-shadow-blur-m)
300
+ var(--wa-shadow-spread-m) var(--wa-color-shadow);
301
+ --wa-shadow-l: var(--wa-shadow-offset-x-l) var(--wa-shadow-offset-y-l) var(--wa-shadow-blur-l)
302
+ var(--wa-shadow-spread-l) var(--wa-color-shadow);
303
+ /* #endregion */
304
+
305
+ /* #region Transitions ~~~~~~~~~~~~~~~~~~~~~~ */
306
+ --wa-transition-easing: ease-in;
307
+ --wa-transition-slow: 300ms;
308
+ --wa-transition-normal: 150ms;
309
+ --wa-transition-fast: 75ms;
310
+ /* #endregion */
311
+
312
+ /* #region Components ~~~~~~~~~~~~~~~~~~~~~~~ */
313
+ /* Form Controls */
314
+ --wa-form-control-background-color: var(--wa-color-surface-default);
315
+
316
+ --wa-form-control-border-color: var(--wa-color-neutral-border-normal);
317
+ --wa-form-control-border-style: var(--wa-border-style);
318
+ --wa-form-control-border-width: var(--wa-border-width-s);
319
+ --wa-form-control-border-radius: var(--wa-border-radius-m);
320
+
321
+ --wa-form-control-activated-color: var(--wa-color-neutral-border-loud);
322
+
323
+ --wa-form-control-label-color: var(--wa-color-text-normal);
324
+ --wa-form-control-label-font-weight: var(--wa-font-weight-bold);
325
+ --wa-form-control-label-line-height: var(--wa-line-height-normal);
326
+
327
+ --wa-form-control-value-color: var(--wa-color-text-normal);
328
+ --wa-form-control-value-font-weight: var(--wa-font-weight-body);
329
+ --wa-form-control-value-line-height: var(--wa-line-height-condensed);
330
+
331
+ --wa-form-control-hint-color: var(--wa-color-text-quiet);
332
+ --wa-form-control-hint-font-weight: var(--wa-font-weight-body);
333
+ --wa-form-control-hint-line-height: var(--wa-line-height-normal);
334
+
335
+ --wa-form-control-placeholder-color: var(--wa-color-gray-50);
336
+
337
+ --wa-form-control-required-content: '*';
338
+ --wa-form-control-required-content-color: inherit;
339
+ --wa-form-control-required-content-offset: 0.1em;
340
+
341
+ --wa-form-control-padding-block: 1.375em;
342
+ --wa-form-control-padding-inline: 1.5em;
343
+ --wa-form-control-height: round(
344
+ calc(2 * var(--wa-form-control-padding-block) + 1em * var(--wa-form-control-value-line-height)),
345
+ 1px
346
+ );
347
+ --wa-form-control-toggle-size: round(1.25em, 1px);
348
+
349
+ /* Buttons */
350
+ --wa-button-transform-hover: none;
351
+ --wa-button-transform-active: translate(var(--wa-shadow-offset-x-s), var(--wa-shadow-offset-y-s));
352
+
353
+ /* Panels */
354
+ --wa-panel-border-style: var(--wa-border-style);
355
+ --wa-panel-border-width: var(--wa-border-width-s);
356
+ --wa-panel-border-radius: var(--wa-border-radius-l);
357
+
358
+ /* Tooltips */
359
+ --wa-tooltip-arrow-size: 0.375rem;
360
+
361
+ --wa-tooltip-background-color: var(--wa-color-text-normal);
362
+
363
+ --wa-tooltip-border-color: var(--wa-tooltip-background-color);
364
+ --wa-tooltip-border-style: var(--wa-border-style);
365
+ --wa-tooltip-border-width: var(--wa-border-width-s);
366
+ --wa-tooltip-border-radius: var(--wa-border-radius-s);
367
+
368
+ --wa-tooltip-content-color: var(--wa-color-surface-default);
369
+ --wa-tooltip-font-size: var(--wa-font-size-s);
370
+ --wa-tooltip-line-height: var(--wa-line-height-normal);
371
+ /* #endregion */
372
+ }
373
+ }
374
+
375
+ @layer wa-theme-dimension {
376
+ .wa-theme-awesome {
377
+ wa-button,
378
+ button,
379
+ input:is([type='button'], [type='reset'], [type='submit']),
380
+ a.wa-button {
381
+ /* Match the shadow color to the button's variant */
382
+ --wa-color-shadow: var(--wa-color-border-normal);
383
+
384
+ &[appearance='outlined'],
385
+ &.wa-outlined:not(.wa-filled) {
386
+ --wa-color-shadow: var(--wa-color-border-loud);
387
+ }
388
+
389
+ /* Disable transitions for a snappy, tactile feel */
390
+ --wa-transition-slow: 0;
391
+ --wa-transition-normal: 0;
392
+ --wa-transition-fast: 0;
393
+
394
+ &:not([appearance='plain'], .wa-plain) {
395
+ /* Give buttons a raised effect via solid box-shadow
396
+ * and adjust height to visually match other inputs */
397
+ &:where(:not(wa-button)),
398
+ &::part(base) {
399
+ height: calc(var(--wa-form-control-height) - var(--wa-shadow-offset-y-s));
400
+ box-shadow: var(--wa-shadow-offset-x-s) var(--wa-shadow-offset-y-s) 0 0 var(--wa-color-shadow);
401
+
402
+ /* Because shadow offsets don't change with writing mode,
403
+ * use physical margin properties to accommodate shadows
404
+ * instead of their logical equivalents */
405
+ margin-bottom: var(--wa-shadow-offset-y-s);
406
+ margin-right: var(--wa-shadow-offset-x-s);
407
+ }
408
+ /* Give active buttons a "punch in" effect */
409
+ &:not([disabled], :disabled):active {
410
+ &:where(:not(wa-button)),
411
+ &::part(base) {
412
+ color: var(--wa-color-fill-quiet);
413
+ background-color: var(--wa-color-shadow);
414
+ border-color: var(--wa-color-shadow);
415
+ box-shadow: none;
416
+ }
417
+ }
418
+ }
419
+ }
420
+
421
+ /* Give active buttons in vertical button groups a "punch in" effect
422
+ * without leaving a visible gap between buttons */
423
+ wa-button-group[orientation='vertical'] {
424
+ & > *:not(:last-child) {
425
+ &:is(wa-button:not([appearance='plain'], .wa-plain)),
426
+ & wa-button:not([appearance='plain'], .wa-plain) {
427
+ &::part(base) {
428
+ height: var(--wa-form-control-height);
429
+ margin-bottom: 0;
430
+ margin-right: 0;
431
+ box-shadow: none;
432
+ }
433
+ &:not([disabled], :disabled):active {
434
+ &::part(base) {
435
+ height: calc(var(--wa-form-control-height) - var(--wa-shadow-offset-y-s));
436
+ margin-top: var(--wa-shadow-offset-y-s);
437
+ transform: none;
438
+ }
439
+ }
440
+ }
441
+ }
442
+ & > *:not(:first-child) {
443
+ &:is(wa-button:not([appearance='plain'], .wa-plain)),
444
+ & wa-button:not([appearance='plain'], .wa-plain) {
445
+ &:not([disabled], :disabled):active {
446
+ &::part(base) {
447
+ box-shadow: var(--wa-shadow-offset-x-s) calc(var(--wa-shadow-offset-y-s) * -1) 0 0 var(--wa-color-shadow);
448
+ }
449
+ }
450
+ }
451
+ }
452
+ }
453
+
454
+ wa-radio[appearance='button'] {
455
+ &:state(checked) {
456
+ background-color: var(--wa-form-control-activated-color);
457
+ border-color: var(--wa-form-control-activated-color);
458
+ color: var(--wa-color-surface-default);
459
+ }
460
+ }
461
+
462
+ /* Add inset shadow to text-based form controls */
463
+ :is(
464
+ wa-input,
465
+ wa-textarea,
466
+ wa-select,
467
+ wa-combobox,
468
+ input:not(
469
+ [type='button'],
470
+ [type='checkbox'],
471
+ [type='color'],
472
+ [type='file'],
473
+ [type='hidden'],
474
+ [type='image'],
475
+ [type='radio'],
476
+ [type='range'],
477
+ [type='reset'],
478
+ [type='submit']
479
+ ),
480
+ textarea,
481
+ select
482
+ ):not(:focus, [appearance='filled']) {
483
+ &:where(:not(wa-input, wa-textarea, wa-select, wa-combobox)),
484
+ &:where(wa-input)::part(base),
485
+ &:where(wa-textarea)::part(base),
486
+ &:where(wa-select)::part(combobox),
487
+ &:where(wa-combobox)::part(combobox) {
488
+ box-shadow: inset var(--wa-shadow-offset-x-s)
489
+ max(var(--wa-shadow-offset-y-s), var(--wa-form-control-border-width)) 0 0 var(--wa-color-shadow);
490
+ }
491
+ }
492
+ }
493
+
494
+ /* Dark mode only */
495
+ .wa-theme-awesome.wa-dark,
496
+ .wa-theme-awesome .wa-dark,
497
+ .wa-theme-awesome.wa-invert,
498
+ .wa-theme-awesome .wa-invert,
499
+ .wa-dark .wa-theme-awesome,
500
+ .wa-light .wa-theme-awesome.wa-invert,
501
+ .wa-light .wa-theme-awesome .wa-invert {
502
+ wa-button,
503
+ button,
504
+ input:is([type='button'], [type='reset'], [type='submit']),
505
+ a.wa-button {
506
+ &:where(:not([appearance], .wa-filled, .wa-outlined, .wa-plain)),
507
+ &[appearance='accent'],
508
+ &.wa-accent {
509
+ --wa-color-shadow: var(--wa-color-border-quiet);
510
+
511
+ &:not([disabled], :disabled):active {
512
+ &:where(:not(wa-button)),
513
+ &::part(base) {
514
+ color: var(--wa-color-on-quiet);
515
+ }
516
+ }
517
+ }
518
+ }
519
+ }
520
+ }
521
+
522
+ @layer wa-theme-overrides {
523
+ .wa-theme-awesome {
524
+ /* Give opinionated borders to accent buttons */
525
+ wa-button,
526
+ button,
527
+ input:is([type='button'], [type='reset'], [type='submit']),
528
+ a.wa-button {
529
+ &:where(:not([appearance], .wa-filled, .wa-outlined, .wa-plain)),
530
+ &[appearance='accent'],
531
+ &.wa-accent {
532
+ --wa-color-shadow: var(--wa-color-on-loud);
533
+
534
+ &:where(:not(wa-button)),
535
+ &::part(base) {
536
+ border-color: var(--wa-color-shadow);
537
+ }
538
+ }
539
+ }
540
+
541
+ /* Treat accent buttons as outlined in button groups */
542
+ wa-button-group {
543
+ &[orientation='horizontal'] wa-button[appearance='accent'] {
544
+ margin-inline-start: var(--_button-horizontal-indent-outlined);
545
+ }
546
+
547
+ &[orientation='vertical'] wa-button[appearance='accent'] {
548
+ margin-block-start: var(--_button-vertical-indent-outlined);
549
+ }
550
+ }
551
+
552
+ wa-badge {
553
+ border-radius: var(--wa-border-radius-m);
554
+ font-weight: var(--wa-font-weight-bold);
555
+ text-transform: uppercase;
556
+ }
557
+
558
+ wa-callout {
559
+ &:is(:not([appearance]), [appearance='outlined'], [appearance='filled-outlined']) {
560
+ border-color: var(--wa-color-border-normal);
561
+ }
562
+ }
563
+
564
+ wa-card {
565
+ &::part(header) {
566
+ border-bottom-style: dotted;
567
+ }
568
+
569
+ &::part(footer) {
570
+ border-top-style: dotted;
571
+ }
572
+ }
573
+
574
+ wa-checkbox,
575
+ wa-tree-item::part(checkbox),
576
+ input[type='checkbox'] {
577
+ --checked-icon-color: var(--wa-color-surface-default);
578
+ }
579
+
580
+ wa-option {
581
+ --current-text-color: var(--wa-color-surface-default);
582
+ }
583
+
584
+ wa-switch {
585
+ --height: 1.5em;
586
+ }
587
+
588
+ wa-tag {
589
+ font-weight: var(--wa-font-weight-bold);
590
+ }
591
+ }
592
+
593
+ /* Dark mode only */
594
+ .wa-theme-awesome.wa-dark,
595
+ .wa-theme-awesome .wa-dark,
596
+ .wa-theme-awesome.wa-invert,
597
+ .wa-theme-awesome .wa-invert,
598
+ .wa-dark .wa-theme-awesome,
599
+ .wa-light .wa-theme-awesome.wa-invert,
600
+ .wa-light .wa-theme-awesome .wa-invert {
601
+ wa-button,
602
+ button,
603
+ input:is([type='button'], [type='reset'], [type='submit']),
604
+ a.wa-button {
605
+ /* Accent button shadows only match the text color in light mode
606
+ * Revert to the wa-theme-dimension layer for shadow color in dark mode */
607
+ &:where(:not([appearance], .wa-filled, .wa-outlined, .wa-plain)),
608
+ &[appearance='accent'],
609
+ &.wa-accent {
610
+ --wa-color-shadow: revert-layer;
611
+ }
612
+ }
613
+ }
614
+ }