@semanticus/semanticus-css 0.9.0 → 1.1.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 (148) hide show
  1. package/NOTICE +16 -16
  2. package/README.md +128 -29
  3. package/dist/semanticus-no-utilities.css +11 -0
  4. package/dist/semanticus-semantics.css +3 -4
  5. package/dist/semanticus-utilities.css +11 -0
  6. package/dist/semanticus.css +4 -12
  7. package/dist/semanticus.palette.amber.css +1 -1
  8. package/dist/semanticus.palette.azure.css +1 -0
  9. package/dist/semanticus.palette.blue.css +1 -1
  10. package/dist/semanticus.palette.cyan.css +1 -1
  11. package/dist/semanticus.palette.fuchsia.css +1 -1
  12. package/dist/semanticus.palette.green.css +1 -1
  13. package/dist/semanticus.palette.grey.css +1 -1
  14. package/dist/semanticus.palette.indigo.css +1 -1
  15. package/dist/semanticus.palette.jade.css +1 -1
  16. package/dist/semanticus.palette.lime.css +1 -1
  17. package/dist/semanticus.palette.orange.css +1 -1
  18. package/dist/semanticus.palette.pink.css +1 -1
  19. package/dist/semanticus.palette.pumpkin.css +1 -1
  20. package/dist/semanticus.palette.purple.css +1 -1
  21. package/dist/semanticus.palette.red.css +1 -1
  22. package/dist/semanticus.palette.sand.css +1 -1
  23. package/dist/semanticus.palette.slate.css +1 -1
  24. package/dist/semanticus.palette.violet.css +1 -1
  25. package/dist/semanticus.palette.yellow.css +1 -1
  26. package/dist/semanticus.palette.zinc.css +1 -1
  27. package/dist/semanticus.size.pico.css +1 -1
  28. package/package.json +24 -15
  29. package/src/components/_card.css +47 -0
  30. package/src/{variants → components}/_container.css +3 -10
  31. package/src/components/_icons.css +59 -0
  32. package/src/components/_pane.css +19 -0
  33. package/src/{variants → components}/_sidebar.css +3 -5
  34. package/src/components/modules.css +5 -0
  35. package/src/index.css +8 -10
  36. package/src/no-utilities.css +22 -0
  37. package/src/palettes/amber.css +28 -53
  38. package/src/palettes/azure.css +31 -0
  39. package/src/palettes/blue.css +28 -53
  40. package/src/palettes/cyan.css +28 -53
  41. package/src/palettes/fuchsia.css +28 -53
  42. package/src/palettes/green.css +28 -53
  43. package/src/palettes/grey.css +28 -53
  44. package/src/palettes/indigo.css +28 -53
  45. package/src/palettes/jade.css +28 -53
  46. package/src/palettes/lime.css +28 -53
  47. package/src/palettes/orange.css +28 -53
  48. package/src/palettes/pink.css +28 -53
  49. package/src/palettes/pumpkin.css +28 -53
  50. package/src/palettes/purple.css +28 -53
  51. package/src/palettes/red.css +28 -53
  52. package/src/palettes/sand.css +28 -53
  53. package/src/palettes/slate.css +28 -53
  54. package/src/palettes/violet.css +28 -53
  55. package/src/palettes/yellow.css +28 -53
  56. package/src/palettes/zinc.css +28 -53
  57. package/src/semantics/attributes/_aria-busy.css +0 -3
  58. package/src/semantics/attributes/_aria-disabled.css +25 -0
  59. package/src/semantics/attributes/_hidden.css +0 -3
  60. package/src/semantics/attributes/_role-group-search.css +11 -14
  61. package/src/semantics/attributes/_role-status-alert.css +123 -0
  62. package/src/semantics/attributes/_role-toolbar.css +2 -5
  63. package/src/semantics/attributes/_role-tooltip.css +7 -10
  64. package/src/semantics/elements/_article.css +0 -3
  65. package/src/semantics/elements/_aside.css +1 -7
  66. package/src/semantics/elements/_blockquote.css +2 -2
  67. package/src/semantics/elements/_body.css +1 -4
  68. package/src/semantics/elements/_button.css +25 -31
  69. package/src/semantics/elements/_code.css +5 -8
  70. package/src/semantics/elements/_del.css +1 -1
  71. package/src/semantics/elements/_details.css +39 -40
  72. package/src/semantics/elements/_dialog.css +19 -43
  73. package/src/semantics/elements/_document.css +10 -4
  74. package/src/semantics/elements/_embedded.css +0 -3
  75. package/src/semantics/elements/_figure.css +0 -3
  76. package/src/semantics/elements/_footer.css +0 -3
  77. package/src/semantics/elements/_header.css +0 -3
  78. package/src/semantics/elements/_headings.css +7 -17
  79. package/src/semantics/elements/_hgroup.css +1 -1
  80. package/src/semantics/elements/_hr.css +1 -4
  81. package/src/semantics/elements/_input.css +33 -36
  82. package/src/semantics/elements/_ins.css +1 -1
  83. package/src/semantics/elements/_links.css +22 -18
  84. package/src/semantics/elements/_main.css +0 -4
  85. package/src/semantics/elements/_mark.css +2 -2
  86. package/src/semantics/elements/_nav.css +5 -8
  87. package/src/semantics/elements/_progress.css +5 -8
  88. package/src/semantics/elements/_section.css +0 -3
  89. package/src/semantics/elements/_small.css +3 -0
  90. package/src/semantics/elements/_table.css +3 -5
  91. package/src/semantics/elements/_type-checkbox-radio.css +19 -22
  92. package/src/semantics/elements/_type-color.css +2 -5
  93. package/src/semantics/elements/_type-date.css +1 -4
  94. package/src/semantics/elements/_type-file.css +7 -10
  95. package/src/semantics/elements/_type-range.css +11 -14
  96. package/src/semantics/elements/_type-search.css +6 -10
  97. package/src/semantics/index.css +2 -5
  98. package/src/semantics/modules.css +3 -7
  99. package/src/sizes/pico.css +20 -33
  100. package/src/utilities/_grid.css +306 -0
  101. package/src/utilities/_variables.css +27 -42
  102. package/src/utilities/borders/_border-radius.css +54 -79
  103. package/src/utilities/borders/_border-style.css +15 -5
  104. package/src/utilities/borders/_border-width.css +0 -28
  105. package/src/utilities/colors/_bg-colors.css +75 -0
  106. package/src/utilities/colors/_border-colors.css +17 -39
  107. package/src/utilities/colors/_subtle-colors.css +145 -0
  108. package/src/utilities/colors/_text-bg-colors.css +62 -0
  109. package/src/utilities/colors/_text-colors.css +32 -409
  110. package/src/utilities/effects/_focus-ring.css +33 -0
  111. package/src/utilities/effects/_shadows.css +0 -33
  112. package/src/utilities/index.css +16 -0
  113. package/src/utilities/layout/_misc.css +2 -5
  114. package/src/utilities/layout/{_grid.css → _ratio.css} +0 -19
  115. package/src/utilities/modules.css +9 -3
  116. package/src/utilities/sizing/_width.css +8 -0
  117. package/src/utilities/spacing/_gap.css +144 -144
  118. package/src/utilities/spacing/_margin.css +324 -324
  119. package/src/utilities/spacing/_padding.css +324 -324
  120. package/src/utilities/typography/_font-sizes.css +6 -6
  121. package/src/variables/_all.css +2 -20
  122. package/src/variables/_elements.css +29 -28
  123. package/src/variables/_theme.css +336 -0
  124. package/src/variants/_variables.css +24 -0
  125. package/src/variants/intent/_contrast.css +47 -0
  126. package/src/variants/intent/_danger.css +39 -0
  127. package/src/variants/intent/_info.css +39 -0
  128. package/src/variants/intent/_primary.css +39 -0
  129. package/src/variants/intent/_secondary.css +39 -0
  130. package/src/variants/intent/_success.css +39 -0
  131. package/src/variants/intent/_warning.css +39 -0
  132. package/src/variants/modifiers/_ghost.css +164 -0
  133. package/src/variants/modifiers/_striped.css +11 -0
  134. package/src/variants/modifiers/_subtle.css +133 -0
  135. package/src/variants/modules.css +11 -14
  136. package/src/_normalize.css +0 -214
  137. package/src/semantics/_misc.css +0 -3
  138. package/src/utilities/colors/_background-colors.css +0 -248
  139. package/src/variables/_colors.css +0 -355
  140. package/src/variables/_components.css +0 -330
  141. package/src/variables/_icons.css +0 -55
  142. package/src/variables/_layout.css +0 -123
  143. package/src/variants/_contained.css +0 -43
  144. package/src/variants/_contrast.css +0 -61
  145. package/src/variants/_ghost.css +0 -68
  146. package/src/variants/_pane-panel-card.css +0 -54
  147. package/src/variants/_secondary.css +0 -48
  148. package/src/variants/_striped.css +0 -10
@@ -1,56 +1,31 @@
1
- /*
2
- Semanticus CSS Palette: Slate
3
- Overrides primary color variables for the slate palette
4
- */
1
+ :root,
2
+ :host {
3
+ /* --color-slate-950: #0e1118; */
4
+ /* --color-slate-900: #181c25; */
5
+ /* --color-slate-850: #202632; */
6
+ /* --color-slate-800: #2a3140; */
7
+ /* --color-slate-750: #333c4e; */
8
+ /* --color-slate-700: #3d475c; */
9
+ /* --color-slate-650: #48536b; */
10
+ --color-slate-600: #525f7a;
11
+ --color-slate-550: #5d6b89;
12
+ /* --color-slate-500: #687899; */
13
+ /* --color-slate-450: #7385a9; */
14
+ /* --color-slate-400: #8191b5; */
15
+ --color-slate-350: #909ebe;
16
+ /* --color-slate-300: #a0acc7; */
17
+ /* --color-slate-250: #b0b9d0; */
18
+ /* --color-slate-200: #bfc7d9; */
19
+ /* --color-slate-150: #cfd5e2; */
20
+ /* --color-slate-100: #dfe3eb; */
21
+ /* --color-slate-50: #eff1f4; */
22
+ /* --color-slate: var(--color-slate-550); */
5
23
 
6
- /* Light theme - Slate */
7
- [data-theme="light"],
8
- :root:not([data-theme="dark"]),
9
- :host(:not([data-theme="dark"])) {
10
- --color-text-selection: rgba(130, 146, 170, 0.25);
11
- --color-primary-rgb: 72, 83, 107;
12
- --color-primary-bg: #48536b;
13
- --color-primary-border: var(--color-primary-bg);
14
- --color-primary-underline: rgba(72, 83, 107, 0.5);
15
- --color-primary-hover: #383f54;
16
- --color-primary-hover-bg: #383f54;
17
- --color-primary-hover-border: var(--color-primary-hover-bg);
18
- --color-primary-hover-underline: var(--color-primary-hover);
19
- --color-primary-focus: rgba(130, 146, 170, 0.5);
20
- --color-primary-inverse: #fff;
21
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
22
- }
23
-
24
- /* Dark theme - Slate */
25
- @media only screen and (prefers-color-scheme: dark) {
26
- :root:not([data-theme]),
27
- :host(:not([data-theme])) {
28
- --color-text-selection: rgba(159, 176, 200, 0.1875);
29
- --color-primary-rgb: 159, 176, 200;
30
- --color-primary-bg: #48536b;
31
- --color-primary-border: var(--color-primary-bg);
32
- --color-primary-underline: rgba(159, 176, 200, 0.5);
33
- --color-primary-hover: #bdcce0;
34
- --color-primary-hover-bg: #525f7a;
35
- --color-primary-hover-border: var(--color-primary-hover-bg);
36
- --color-primary-hover-underline: var(--color-primary-hover);
37
- --color-primary-focus: rgba(159, 176, 200, 0.375);
38
- --color-primary-inverse: #fff;
39
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
40
- }
41
- }
24
+ /* System tokens */
25
+ --color-primary-text: light-dark(var(--color-slate-550), var(--color-slate-350));
26
+ --color-primary-fill: var(--color-slate-600);
27
+ --color-primary-on-fill: white;
42
28
 
43
- [data-theme="dark"] {
44
- --color-text-selection: rgba(159, 176, 200, 0.1875);
45
- --color-primary-rgb: 159, 176, 200;
46
- --color-primary-bg: #48536b;
47
- --color-primary-border: var(--color-primary-bg);
48
- --color-primary-underline: rgba(159, 176, 200, 0.5);
49
- --color-primary-hover: #bdcce0;
50
- --color-primary-hover-bg: #525f7a;
51
- --color-primary-hover-border: var(--color-primary-hover-bg);
52
- --color-primary-hover-underline: var(--color-primary-hover);
53
- --color-primary-focus: rgba(159, 176, 200, 0.375);
54
- --color-primary-inverse: #fff;
55
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
29
+ /* Component tokens */
30
+ --switch-thumb-glow: light-dark(0 0 0 oklch(0% 0 0deg / 0), 0 0 0 oklch(0% 0 0deg / 0));
56
31
  }
@@ -1,56 +1,31 @@
1
- /*
2
- Semanticus CSS Palette: Violet
3
- Overrides primary color variables for the violet palette
4
- */
1
+ :root,
2
+ :host {
3
+ /* --color-violet-950: #190928; */
4
+ /* --color-violet-900: #251140; */
5
+ /* --color-violet-850: #321856; */
6
+ /* --color-violet-800: #3f1e6d; */
7
+ /* --color-violet-750: #4d2585; */
8
+ /* --color-violet-700: #5b2d9c; */
9
+ /* --color-violet-650: #6935b3; */
10
+ --color-violet-600: #7540bf;
11
+ --color-violet-550: #8352c5;
12
+ /* --color-violet-500: #9062ca; */
13
+ /* --color-violet-450: #9b71cf; */
14
+ /* --color-violet-400: #a780d4; */
15
+ --color-violet-350: #b290d9;
16
+ /* --color-violet-300: #bd9fdf; */
17
+ /* --color-violet-250: #c9afe4; */
18
+ /* --color-violet-200: #d3bfe8; */
19
+ /* --color-violet-150: #decfed; */
20
+ /* --color-violet-100: #e8dff2; */
21
+ /* --color-violet-50: #f3eff7; */
22
+ /* --color-violet: var(--color-violet-550); */
5
23
 
6
- /* Light theme - Violet */
7
- [data-theme="light"],
8
- :root:not([data-theme="dark"]),
9
- :host(:not([data-theme="dark"])) {
10
- --color-text-selection: rgba(167, 128, 212, 0.25);
11
- --color-primary-rgb: 117, 64, 191;
12
- --color-primary-bg: #7540bf;
13
- --color-primary-border: var(--color-primary-bg);
14
- --color-primary-underline: rgba(117, 64, 191, 0.5);
15
- --color-primary-hover: #6935b3;
16
- --color-primary-hover-bg: #6935b3;
17
- --color-primary-hover-border: var(--color-primary-hover-bg);
18
- --color-primary-hover-underline: var(--color-primary-hover);
19
- --color-primary-focus: rgba(167, 128, 212, 0.5);
20
- --color-primary-inverse: #fff;
21
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
22
- }
23
-
24
- /* Dark theme - Violet */
25
- @media only screen and (prefers-color-scheme: dark) {
26
- :root:not([data-theme]),
27
- :host(:not([data-theme])) {
28
- --color-text-selection: rgba(189, 159, 223, 0.1875);
29
- --color-primary-rgb: 189, 159, 223;
30
- --color-primary-bg: #7540bf;
31
- --color-primary-border: var(--color-primary-bg);
32
- --color-primary-underline: rgba(189, 159, 223, 0.5);
33
- --color-primary-hover: #d3bfe8;
34
- --color-primary-hover-bg: #8352c5;
35
- --color-primary-hover-border: var(--color-primary-hover-bg);
36
- --color-primary-hover-underline: var(--color-primary-hover);
37
- --color-primary-focus: rgba(189, 159, 223, 0.375);
38
- --color-primary-inverse: #fff;
39
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
40
- }
41
- }
24
+ /* System tokens */
25
+ --color-primary-text: light-dark(var(--color-violet-550), var(--color-violet-350));
26
+ --color-primary-fill: var(--color-violet-600);
27
+ --color-primary-on-fill: white;
42
28
 
43
- [data-theme="dark"] {
44
- --color-text-selection: rgba(189, 159, 223, 0.1875);
45
- --color-primary-rgb: 189, 159, 223;
46
- --color-primary-bg: #7540bf;
47
- --color-primary-border: var(--color-primary-bg);
48
- --color-primary-underline: rgba(189, 159, 223, 0.5);
49
- --color-primary-hover: #d3bfe8;
50
- --color-primary-hover-bg: #8352c5;
51
- --color-primary-hover-border: var(--color-primary-hover-bg);
52
- --color-primary-hover-underline: var(--color-primary-hover);
53
- --color-primary-focus: rgba(189, 159, 223, 0.375);
54
- --color-primary-inverse: #fff;
55
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
29
+ /* Component tokens */
30
+ --switch-thumb-glow: light-dark(0 0 0 oklch(0% 0 0deg / 0), 0 0 0 oklch(0% 0 0deg / 0));
56
31
  }
@@ -1,56 +1,31 @@
1
- /*
2
- Semanticus CSS Palette: Yellow
3
- Overrides primary color variables for the yellow palette
4
- */
1
+ :root,
2
+ :host {
3
+ /* --color-yellow-950: #141103; */
4
+ /* --color-yellow-900: #1f1c02; */
5
+ /* --color-yellow-850: #2b2600; */
6
+ /* --color-yellow-800: #363100; */
7
+ /* --color-yellow-750: #423c00; */
8
+ /* --color-yellow-700: #4e4700; */
9
+ /* --color-yellow-650: #5b5300; */
10
+ /* --color-yellow-600: #685f00; */
11
+ --color-yellow-550: #756b00;
12
+ /* --color-yellow-500: #827800; */
13
+ /* --color-yellow-450: #908501; */
14
+ /* --color-yellow-400: #9e9200; */
15
+ --color-yellow-350: #ad9f00;
16
+ /* --color-yellow-300: #bbac00; */
17
+ /* --color-yellow-250: #caba01; */
18
+ /* --color-yellow-200: #d9c800; */
19
+ /* --color-yellow-150: #e8d600; */
20
+ --color-yellow-100: #f2df0d;
21
+ /* --color-yellow-50: #fdf1b4; */
22
+ /* --color-yellow: var(--color-yellow-550); */
5
23
 
6
- /* Light theme - Yellow */
7
- [data-theme="light"],
8
- :root:not([data-theme="dark"]),
9
- :host(:not([data-theme="dark"])) {
10
- --color-text-selection: rgba(209, 188, 0, 0.25);
11
- --color-primary-rgb: 138, 122, 0;
12
- --color-primary-bg: #fcf19c;
13
- --color-primary-border: var(--color-primary-bg);
14
- --color-primary-underline: rgba(138, 122, 0, 0.5);
15
- --color-primary-hover: #6b5f00;
16
- --color-primary-hover-bg: #fdf2b4;
17
- --color-primary-hover-border: var(--color-primary-hover-bg);
18
- --color-primary-hover-underline: var(--color-primary-hover);
19
- --color-primary-focus: rgba(209, 188, 0, 0.5);
20
- --color-primary-inverse: #000;
21
- --switch-thumb-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.25);
22
- }
23
-
24
- /* Dark theme - Yellow */
25
- @media only screen and (prefers-color-scheme: dark) {
26
- :root:not([data-theme]),
27
- :host(:not([data-theme])) {
28
- --color-text-selection: rgba(233, 212, 0, 0.1875);
29
- --color-primary-rgb: 233, 212, 0;
30
- --color-primary-bg: #fcf19c;
31
- --color-primary-border: var(--color-primary-bg);
32
- --color-primary-underline: rgba(233, 212, 0, 0.5);
33
- --color-primary-hover: #f7ec58;
34
- --color-primary-hover-bg: #fcf4b6;
35
- --color-primary-hover-border: var(--color-primary-hover-bg);
36
- --color-primary-hover-underline: var(--color-primary-hover);
37
- --color-primary-focus: rgba(233, 212, 0, 0.375);
38
- --color-primary-inverse: #000;
39
- --switch-thumb-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.25);
40
- }
41
- }
24
+ /* System tokens */
25
+ --color-primary-text: light-dark(var(--color-yellow-550), var(--color-yellow-350));
26
+ --color-primary-fill: var(--color-yellow-100);
27
+ --color-primary-on-fill: black;
42
28
 
43
- [data-theme="dark"] {
44
- --color-text-selection: rgba(233, 212, 0, 0.1875);
45
- --color-primary-rgb: 233, 212, 0;
46
- --color-primary-bg: #fcf19c;
47
- --color-primary-border: var(--color-primary-bg);
48
- --color-primary-underline: rgba(233, 212, 0, 0.5);
49
- --color-primary-hover: #f7ec58;
50
- --color-primary-hover-bg: #fcf4b6;
51
- --color-primary-hover-border: var(--color-primary-hover-bg);
52
- --color-primary-hover-underline: var(--color-primary-hover);
53
- --color-primary-focus: rgba(233, 212, 0, 0.375);
54
- --color-primary-inverse: #000;
55
- --switch-thumb-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.25);
29
+ /* Component tokens */
30
+ --switch-thumb-glow: light-dark(0 0 0.5rem oklch(0% 0 0deg / 0.25), 0 0 0.5rem oklch(0% 0 0deg / 0.25));
56
31
  }
@@ -1,56 +1,31 @@
1
- /*
2
- Semanticus CSS Palette: Zinc
3
- Overrides primary color variables for the zinc palette
4
- */
1
+ :root,
2
+ :host {
3
+ /* --color-zinc-950: #0f1114; */
4
+ /* --color-zinc-900: #191c20; */
5
+ /* --color-zinc-850: #23262c; */
6
+ /* --color-zinc-800: #2d3138; */
7
+ /* --color-zinc-750: #373c44; */
8
+ /* --color-zinc-700: #424751; */
9
+ /* --color-zinc-650: #4d535e; */
10
+ /* --color-zinc-600: #5c6370; */
11
+ --color-zinc-550: #646b79;
12
+ /* --color-zinc-500: #6f7887; */
13
+ /* --color-zinc-450: #7b8495; */
14
+ /* --color-zinc-400: #8891a4; */
15
+ --color-zinc-350: #969eaf;
16
+ /* --color-zinc-300: #a4acba; */
17
+ /* --color-zinc-250: #b3b9c5; */
18
+ /* --color-zinc-200: #c2c7d0; */
19
+ /* --color-zinc-150: #d1d5db; */
20
+ /* --color-zinc-100: #e0e3e7; */
21
+ /* --color-zinc-50: #f0f1f3; */
22
+ /* --color-zinc: var(--color-zinc-550); */
5
23
 
6
- /* Light theme - Zinc */
7
- [data-theme="light"],
8
- :root:not([data-theme="dark"]),
9
- :host(:not([data-theme="dark"])) {
10
- --color-text-selection: rgba(127, 139, 158, 0.25);
11
- --color-primary-rgb: 82, 95, 122;
12
- --color-primary-bg: #525f7a;
13
- --color-primary-border: var(--color-primary-bg);
14
- --color-primary-underline: rgba(82, 95, 122, 0.5);
15
- --color-primary-hover: #424b61;
16
- --color-primary-hover-bg: #424b61;
17
- --color-primary-hover-border: var(--color-primary-hover-bg);
18
- --color-primary-hover-underline: var(--color-primary-hover);
19
- --color-primary-focus: rgba(127, 139, 158, 0.5);
20
- --color-primary-inverse: #fff;
21
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
22
- }
23
-
24
- /* Dark theme - Zinc */
25
- @media only screen and (prefers-color-scheme: dark) {
26
- :root:not([data-theme]),
27
- :host(:not([data-theme])) {
28
- --color-text-selection: rgba(155, 168, 189, 0.1875);
29
- --color-primary-rgb: 155, 168, 189;
30
- --color-primary-bg: #525f7a;
31
- --color-primary-border: var(--color-primary-bg);
32
- --color-primary-underline: rgba(155, 168, 189, 0.5);
33
- --color-primary-hover: #bac5d4;
34
- --color-primary-hover-bg: #5d6b89;
35
- --color-primary-hover-border: var(--color-primary-hover-bg);
36
- --color-primary-hover-underline: var(--color-primary-hover);
37
- --color-primary-focus: rgba(155, 168, 189, 0.375);
38
- --color-primary-inverse: #fff;
39
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
40
- }
41
- }
24
+ /* System tokens */
25
+ --color-primary-text: light-dark(var(--color-zinc-550), var(--color-zinc-350));
26
+ --color-primary-fill: var(--color-zinc-550);
27
+ --color-primary-on-fill: white;
42
28
 
43
- [data-theme="dark"] {
44
- --color-text-selection: rgba(155, 168, 189, 0.1875);
45
- --color-primary-rgb: 155, 168, 189;
46
- --color-primary-bg: #525f7a;
47
- --color-primary-border: var(--color-primary-bg);
48
- --color-primary-underline: rgba(155, 168, 189, 0.5);
49
- --color-primary-hover: #bac5d4;
50
- --color-primary-hover-bg: #5d6b89;
51
- --color-primary-hover-border: var(--color-primary-hover-bg);
52
- --color-primary-hover-underline: var(--color-primary-hover);
53
- --color-primary-focus: rgba(155, 168, 189, 0.375);
54
- --color-primary-inverse: #fff;
55
- --switch-thumb-shadow: 0 0 0 rgba(0, 0, 0, 0);
29
+ /* Component tokens */
30
+ --switch-thumb-glow: light-dark(0 0 0 oklch(0% 0 0deg / 0), 0 0 0 oklch(0% 0 0deg / 0));
56
31
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Loading ([aria-busy=true])
3
- */
4
1
  [aria-busy=true]:not(input, select, textarea, html, form) {
5
2
  white-space: nowrap;
6
3
 
@@ -0,0 +1,25 @@
1
+ /* Buttons and button-like elements */
2
+ :is(button, [type=submit], [type=button], [type=reset], [role=button])[aria-disabled=true],
3
+ fieldset[aria-disabled=true] :is(button, [type=submit], [type=button], [type=reset], [role=button]) {
4
+ opacity: 0.5;
5
+ pointer-events: none;
6
+ }
7
+
8
+ /* Links */
9
+ a[aria-disabled=true],
10
+ [role=link][aria-disabled=true] {
11
+ opacity: 0.5;
12
+ pointer-events: none;
13
+ }
14
+
15
+ /* Form controls */
16
+ :is(input:not([type=submit], [type=button], [type=reset]), select, textarea)[aria-disabled=true],
17
+ fieldset[aria-disabled=true] :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) {
18
+ opacity: var(--input-opacity-disabled);
19
+ pointer-events: none;
20
+ }
21
+
22
+ /* Switch color adjustment */
23
+ [type=checkbox][role=switch][aria-disabled=true] {
24
+ --color-background: var(--border-color);
25
+ }
@@ -1,6 +1,3 @@
1
- /**
2
- * Hidden elements
3
- */
4
1
  [hidden],
5
2
  template {
6
3
  display: none !important;
@@ -1,9 +1,6 @@
1
- /**
2
- * Group ([role="group"], [role="search"])
3
- */
4
1
  [role="search"],
5
2
  [role="group"] {
6
- border-radius: var(--border-radius);
3
+ border-radius: var(--radius);
7
4
  box-shadow: var(--group-shadow, 0 0 0 rgba(0, 0, 0, 0));
8
5
  display: inline-flex;
9
6
  gap: 0;
@@ -21,7 +18,7 @@
21
18
  margin-bottom: 0;
22
19
 
23
20
  &:not(:first-child) {
24
- margin-left: calc(var(--border-width) * -1);
21
+ margin-left: calc(var(--border-size) * -1);
25
22
  border-top-left-radius: 0;
26
23
  border-bottom-left-radius: 0;
27
24
  }
@@ -50,13 +47,13 @@
50
47
  margin-bottom: 0;
51
48
  /* Constrain details height to just the button, not the dropdown menu */
52
49
  height: calc(
53
- 1rem * var(--line-height) + var(--form-element-spacing-vertical) *
54
- 2 + var(--border-width) * 2
50
+ 1rem * var(--line-height) + var(--input-spacing-vertical) *
51
+ 2 + var(--border-size) * 2
55
52
  );
56
53
  overflow: visible;
57
54
 
58
55
  &:not(:first-child) {
59
- margin-left: calc(var(--border-width) * -1);
56
+ margin-left: calc(var(--border-size) * -1);
60
57
 
61
58
  & > summary {
62
59
  border-top-left-radius: 0;
@@ -95,7 +92,7 @@
95
92
  [type="button"]:focus,
96
93
  [role="button"]:focus
97
94
  ) {
98
- --group-shadow: var(--group-shadow-focus-with-button);
95
+ --group-shadow: var(--group-shadow-focus-button);
99
96
 
100
97
  & input:not([type="checkbox"], [type="radio"]),
101
98
  & select {
@@ -104,16 +101,16 @@
104
101
  }
105
102
 
106
103
  &:has(input:not([type="submit"], [type="button"]):focus, select:focus) {
107
- --group-shadow: var(--group-shadow-focus-with-input);
104
+ --group-shadow: var(--group-shadow-focus-input);
108
105
 
109
106
  & button,
110
107
  & [type="submit"],
111
108
  & [type="button"],
112
109
  & [role="button"] {
113
- --button-shadow: 0 0 0 var(--border-width)
114
- var(--color-primary-border);
115
- --button-shadow-hover: 0 0 0 var(--border-width)
116
- var(--color-primary-hover-border);
110
+ --button-shadow: 0 0 0 var(--border-size)
111
+ var(--color-primary-fill);
112
+ --button-shadow-hover: 0 0 0 var(--border-size)
113
+ var(--color-primary-fill-hover);
117
114
  }
118
115
  }
119
116
 
@@ -0,0 +1,123 @@
1
+ [role="status"],
2
+ [role="alert"] {
3
+ --color-background: light-dark(
4
+ color-mix(in srgb, var(--color-slate-50) 25%, white),
5
+ color-mix(in srgb, var(--color-slate-50), transparent 95%)
6
+ );
7
+ --border-color: var(--dialog-border);
8
+ --alert-size: var(--border-size);
9
+
10
+ color: var(--color-text);
11
+ padding: var(--spacing);
12
+ margin-bottom: var(--spacing);
13
+ border-radius: var(--radius);
14
+ border: var(--border-size) solid var(--border-color);
15
+ border-inline-start-width: var(--alert-size);
16
+ border-inline-start-color: var(--dialog-border);
17
+ background: var(--color-background);
18
+ position: relative;
19
+
20
+ &:is(.ghost, .subtle) {
21
+ --alert-size: calc(var(--border-size) * 4);
22
+ }
23
+
24
+ /* Opening animation using @starting-style (Chrome 117+, Firefox 129+, Safari 17.4+) */
25
+ /* Gracefully degrades to instant appearance in unsupported browsers */
26
+ transition: opacity 0.2s ease-in-out, top 0.2s ease-in-out, right 0.2s ease-in-out, left 0.2s ease-in-out, bottom 0.2s ease-in-out;
27
+
28
+ &[popover] {
29
+ display: none;
30
+ box-shadow: var(--shadow);
31
+ left: unset;
32
+ right: 0;
33
+ bottom: 0;
34
+ top: unset;
35
+ margin: var(--spacing);
36
+
37
+ &:popover-open {
38
+ display: flex;
39
+ }
40
+
41
+ &[data-placement="top-start"] {
42
+ left: 0;
43
+ right: unset;
44
+ top: 0;
45
+ bottom: unset;
46
+ }
47
+
48
+ &[data-placement="top-center"] {
49
+ right: 50%;
50
+ transform: translateX(50%);
51
+ top: 0;
52
+ bottom: unset;
53
+ }
54
+
55
+ &[data-placement="top-end"] {
56
+ right: 0;
57
+ top: 0;
58
+ bottom: unset;
59
+ }
60
+
61
+ &[data-placement="middle-start"] {
62
+ left: 0;
63
+ right: unset;
64
+ bottom: 50%;
65
+ transform: translateY(50%);
66
+ }
67
+
68
+ &[data-placement="middle-center"] {
69
+ right: 50%;
70
+ transform: translate(50%, 50%);
71
+ bottom: 50%;
72
+ }
73
+
74
+ &[data-placement="middle-end"] {
75
+ right: 0;
76
+ bottom: 50%;
77
+ transform: translateY(50%);
78
+ }
79
+
80
+ &[data-placement="bottom-start"] {
81
+ left: 0;
82
+ right: unset;
83
+ bottom: 0;
84
+ }
85
+
86
+ &[data-placement="bottom-center"] {
87
+ right: 50%;
88
+ transform: translateX(50%);
89
+ bottom: 0;
90
+ }
91
+
92
+ &[data-placement="bottom-end"] {
93
+ right: 0;
94
+ bottom: 0;
95
+ }
96
+ }
97
+ }
98
+
99
+ @starting-style {
100
+ :is([role="status"], [role="alert"]):popover-open {
101
+ opacity: 0;
102
+
103
+ &:not([data-placement]) {
104
+ right: -20px;
105
+ }
106
+
107
+ &[data-placement$="start"] {
108
+ left: -20px;
109
+ }
110
+
111
+ &[data-placement="top-center"] {
112
+ top: -20px;
113
+ }
114
+
115
+ &[data-placement="bottom-center"] {
116
+ bottom: -20px;
117
+ }
118
+
119
+ &[data-placement$="end"] {
120
+ right: -20px;
121
+ }
122
+ }
123
+ }
@@ -1,9 +1,6 @@
1
- /**
2
- * Minimal grid system with auto-layout columns
3
- */
4
1
  [role="toolbar"] {
5
- grid-column-gap: var(--grid-column-gap);
6
- grid-row-gap: var(--grid-row-gap);
2
+ grid-column-gap: var(--spacing);
3
+ grid-row-gap: var(--spacing);
7
4
  display: grid;
8
5
  grid-template-columns: 1fr;
9
6
 
@@ -1,13 +1,10 @@
1
- /**
2
- * Tooltip ([role="tooltip"])
3
- */
4
1
  :has(> [role="tooltip"]) {
5
2
  position: relative;
6
3
  display: inline-block;
7
4
  width: fit-content;
8
5
  }
9
6
 
10
- :not(a, button, input, [role=button])[aria-describedby] {
7
+ :not(a, button, dialog, input, [role=button])[aria-describedby] {
11
8
  border-bottom: 1px dotted;
12
9
  text-decoration: none;
13
10
  cursor: help;
@@ -21,8 +18,8 @@
21
18
  left: 50%;
22
19
  padding: 0.25rem 0.5rem;
23
20
  transform: translate(-50%, -0.25rem);
24
- border-radius: var(--border-radius);
25
- background: var(--tooltip-bg);
21
+ border-radius: var(--radius);
22
+ background: var(--tooltip-fill);
26
23
  color: var(--tooltip-text);
27
24
  font-style: normal;
28
25
  font-weight: var(--font-weight);
@@ -40,7 +37,7 @@
40
37
  top: 100%;
41
38
  left: 50%;
42
39
  transform: translate(-50%, 0);
43
- border-top: 0.3rem solid var(--tooltip-bg);
40
+ border-top: 0.3rem solid var(--tooltip-fill);
44
41
  border-right: 0.3rem solid transparent;
45
42
  border-left: 0.3rem solid transparent;
46
43
  }
@@ -55,7 +52,7 @@
55
52
  bottom: 100%;
56
53
  transform: translate(-50%, 0);
57
54
  border-top: none;
58
- border-bottom: 0.3rem solid var(--tooltip-bg);
55
+ border-bottom: 0.3rem solid var(--tooltip-fill);
59
56
  }
60
57
  }
61
58
 
@@ -72,7 +69,7 @@
72
69
  transform: translate(0, -50%);
73
70
  border-top: 0.3rem solid transparent;
74
71
  border-bottom: 0.3rem solid transparent;
75
- border-left: 0.3rem solid var(--tooltip-bg);
72
+ border-left: 0.3rem solid var(--tooltip-fill);
76
73
  border-right: none;
77
74
  }
78
75
  }
@@ -90,7 +87,7 @@
90
87
  transform: translate(0, -50%);
91
88
  border-top: 0.3rem solid transparent;
92
89
  border-bottom: 0.3rem solid transparent;
93
- border-right: 0.3rem solid var(--tooltip-bg);
90
+ border-right: 0.3rem solid var(--tooltip-fill);
94
91
  border-left: none;
95
92
  }
96
93
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Article
3
- */
4
1
  article {
5
2
  width: 100%;
6
3
  }
@@ -1,11 +1,5 @@
1
- /**
2
- * Aside its width changes according to certain breakpoints,
3
- * and its height grows to fill the available space,
4
- * and stacks its children in a column with space between them (like a <nav> would).
5
- * In case of a single child, this child will fill the entire height.
6
- */
7
1
  aside {
8
- width: var(--sidebar-width) !important;
2
+ width: var(--sidebar-size) !important;
9
3
  padding: var(--spacing) !important;
10
4
 
11
5
  :where(ol, ul, li) {
@@ -1,7 +1,7 @@
1
1
  blockquote {
2
2
  border-inline-end: none;
3
- border-inline-start: 0.25rem solid var(--color-border-muted);
4
- border-left: 0.25rem solid var(--color-border-muted);
3
+ border-inline-start: 0.25rem solid var(--color-border);
4
+ border-left: 0.25rem solid var(--color-border);
5
5
  border-right: none;
6
6
  color: var(--color-text);
7
7
  display: block;