@semanticus/semanticus-css 0.9.0 → 1.0.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 (144) 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 +84 -0
  30. package/src/{variants → components}/_sidebar.css +3 -5
  31. package/src/components/modules.css +2 -0
  32. package/src/index.css +8 -10
  33. package/src/no-utilities.css +22 -0
  34. package/src/palettes/amber.css +28 -53
  35. package/src/palettes/azure.css +31 -0
  36. package/src/palettes/blue.css +28 -53
  37. package/src/palettes/cyan.css +28 -53
  38. package/src/palettes/fuchsia.css +28 -53
  39. package/src/palettes/green.css +28 -53
  40. package/src/palettes/grey.css +28 -53
  41. package/src/palettes/indigo.css +28 -53
  42. package/src/palettes/jade.css +28 -53
  43. package/src/palettes/lime.css +28 -53
  44. package/src/palettes/orange.css +28 -53
  45. package/src/palettes/pink.css +28 -53
  46. package/src/palettes/pumpkin.css +28 -53
  47. package/src/palettes/purple.css +28 -53
  48. package/src/palettes/red.css +28 -53
  49. package/src/palettes/sand.css +28 -53
  50. package/src/palettes/slate.css +28 -53
  51. package/src/palettes/violet.css +28 -53
  52. package/src/palettes/yellow.css +28 -53
  53. package/src/palettes/zinc.css +28 -53
  54. package/src/semantics/attributes/_aria-busy.css +0 -3
  55. package/src/semantics/attributes/_hidden.css +0 -3
  56. package/src/semantics/attributes/_role-group-search.css +11 -14
  57. package/src/semantics/attributes/_role-toolbar.css +2 -5
  58. package/src/semantics/attributes/_role-tooltip.css +6 -9
  59. package/src/semantics/elements/_article.css +0 -3
  60. package/src/semantics/elements/_aside.css +1 -7
  61. package/src/semantics/elements/_blockquote.css +2 -2
  62. package/src/semantics/elements/_body.css +1 -4
  63. package/src/semantics/elements/_button.css +23 -26
  64. package/src/semantics/elements/_code.css +5 -8
  65. package/src/semantics/elements/_del.css +1 -1
  66. package/src/semantics/elements/_details.css +39 -40
  67. package/src/semantics/elements/_dialog.css +13 -17
  68. package/src/semantics/elements/_document.css +10 -4
  69. package/src/semantics/elements/_embedded.css +0 -3
  70. package/src/semantics/elements/_figure.css +0 -3
  71. package/src/semantics/elements/_footer.css +0 -3
  72. package/src/semantics/elements/_header.css +0 -3
  73. package/src/semantics/elements/_headings.css +7 -17
  74. package/src/semantics/elements/_hgroup.css +1 -1
  75. package/src/semantics/elements/_hr.css +1 -4
  76. package/src/semantics/elements/_input.css +33 -36
  77. package/src/semantics/elements/_ins.css +1 -1
  78. package/src/semantics/elements/_links.css +22 -18
  79. package/src/semantics/elements/_main.css +0 -4
  80. package/src/semantics/elements/_mark.css +2 -2
  81. package/src/semantics/elements/_nav.css +5 -8
  82. package/src/semantics/elements/_progress.css +5 -8
  83. package/src/semantics/elements/_section.css +0 -3
  84. package/src/semantics/elements/_small.css +3 -0
  85. package/src/semantics/elements/_table.css +3 -5
  86. package/src/semantics/elements/_type-checkbox-radio.css +19 -22
  87. package/src/semantics/elements/_type-color.css +2 -5
  88. package/src/semantics/elements/_type-date.css +1 -4
  89. package/src/semantics/elements/_type-file.css +7 -10
  90. package/src/semantics/elements/_type-range.css +11 -14
  91. package/src/semantics/elements/_type-search.css +6 -10
  92. package/src/semantics/index.css +2 -5
  93. package/src/semantics/modules.css +1 -7
  94. package/src/sizes/pico.css +20 -33
  95. package/src/utilities/_grid.css +306 -0
  96. package/src/utilities/_variables.css +27 -42
  97. package/src/utilities/borders/_border-radius.css +54 -79
  98. package/src/utilities/borders/_border-style.css +15 -5
  99. package/src/utilities/borders/_border-width.css +0 -28
  100. package/src/utilities/colors/_bg-colors.css +75 -0
  101. package/src/utilities/colors/_border-colors.css +17 -39
  102. package/src/utilities/colors/_subtle-colors.css +145 -0
  103. package/src/utilities/colors/_text-bg-colors.css +62 -0
  104. package/src/utilities/colors/_text-colors.css +32 -409
  105. package/src/utilities/effects/_focus-ring.css +33 -0
  106. package/src/utilities/effects/_shadows.css +0 -33
  107. package/src/utilities/index.css +16 -0
  108. package/src/utilities/layout/_misc.css +2 -5
  109. package/src/utilities/layout/{_grid.css → _ratio.css} +0 -19
  110. package/src/utilities/modules.css +9 -3
  111. package/src/utilities/sizing/_width.css +8 -0
  112. package/src/utilities/spacing/_gap.css +144 -144
  113. package/src/utilities/spacing/_margin.css +324 -324
  114. package/src/utilities/spacing/_padding.css +324 -324
  115. package/src/utilities/typography/_font-sizes.css +6 -6
  116. package/src/variables/_all.css +2 -20
  117. package/src/variables/_elements.css +29 -28
  118. package/src/variables/_theme.css +336 -0
  119. package/src/variants/_variables.css +24 -0
  120. package/src/variants/intent/_contrast.css +46 -0
  121. package/src/variants/intent/_danger.css +38 -0
  122. package/src/variants/intent/_info.css +38 -0
  123. package/src/variants/intent/_primary.css +38 -0
  124. package/src/variants/intent/_secondary.css +38 -0
  125. package/src/variants/intent/_success.css +38 -0
  126. package/src/variants/intent/_warning.css +38 -0
  127. package/src/variants/{_container.css → modifiers/_container.css} +3 -10
  128. package/src/variants/modifiers/_ghost.css +164 -0
  129. package/src/variants/modifiers/_striped.css +11 -0
  130. package/src/variants/modifiers/_subtle.css +133 -0
  131. package/src/variants/modules.css +12 -14
  132. package/src/_normalize.css +0 -214
  133. package/src/semantics/_misc.css +0 -3
  134. package/src/utilities/colors/_background-colors.css +0 -248
  135. package/src/variables/_colors.css +0 -355
  136. package/src/variables/_components.css +0 -330
  137. package/src/variables/_icons.css +0 -55
  138. package/src/variables/_layout.css +0 -123
  139. package/src/variants/_contained.css +0 -43
  140. package/src/variants/_contrast.css +0 -61
  141. package/src/variants/_ghost.css +0 -68
  142. package/src/variants/_pane-panel-card.css +0 -54
  143. package/src/variants/_secondary.css +0 -48
  144. 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
 
@@ -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
 
@@ -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,6 +1,3 @@
1
- /**
2
- * Tooltip ([role="tooltip"])
3
- */
4
1
  :has(> [role="tooltip"]) {
5
2
  position: relative;
6
3
  display: inline-block;
@@ -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;
@@ -1,8 +1,5 @@
1
- /**
2
- * Body fills up the available width, and has the same height as the viewport.
3
- * Stacks its children vertically.
4
- */
5
1
  body {
6
2
  width: 100%;
7
3
  min-height: 100svh;
4
+ margin: 0; /* modern-normalize */
8
5
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Button
3
- */
4
1
  button {
5
2
  margin: 0;
6
3
  overflow: visible;
@@ -21,16 +18,16 @@ button,
21
18
  [type=button],
22
19
  [type=file]::file-selector-button,
23
20
  [role=button] {
24
- --color-background: var(--color-primary-bg);
25
- --border-color: var(--color-primary-border);
26
- --color-text: var(--color-primary-inverse);
27
- --shadow-lg: var(--button-shadow, 0 0 0 rgba(0, 0, 0, 0));
28
- padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
29
- border: var(--border-width) solid var(--border-color);
30
- border-radius: var(--border-radius);
21
+ --color-background: var(--color-primary-fill);
22
+ --border-color: var(--color-primary-fill);
23
+ --color-text: var(--color-primary-on-fill);
24
+ --shadow: var(--button-shadow, 0 0 0 rgba(0, 0, 0, 0));
25
+ padding: var(--input-spacing-vertical) var(--input-spacing-horizontal);
26
+ border: var(--border-size) solid var(--border-color);
27
+ border-radius: var(--radius);
31
28
  outline: none;
32
29
  background-color: var(--color-background);
33
- box-shadow: var(--shadow-lg);
30
+ box-shadow: var(--shadow);
34
31
  color: var(--color-text);
35
32
  font-weight: var(--font-weight);
36
33
  font-size: 1rem;
@@ -52,10 +49,10 @@ button:is([aria-current]:not([aria-current=false])), button:is(:hover, :active,
52
49
  [type=file]::file-selector-button:is(:hover, :active, :focus),
53
50
  [role=button]:is([aria-current]:not([aria-current=false])),
54
51
  [role=button]:is(:hover, :active, :focus) {
55
- --color-background: var(--color-primary-hover-bg);
56
- --border-color: var(--color-primary-hover-border);
57
- --shadow-lg: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0));
58
- --color-text: var(--color-primary-inverse);
52
+ --color-background: var(--color-primary-fill-hover);
53
+ --border-color: var(--color-primary-fill-hover);
54
+ --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0));
55
+ --color-text: var(--color-primary-on-fill);
59
56
  }
60
57
 
61
58
  button:focus, button:is([aria-current]:not([aria-current=false])):focus,
@@ -68,7 +65,7 @@ button:focus, button:is([aria-current]:not([aria-current=false])):focus,
68
65
  [type=file]::file-selector-button:focus,
69
66
  [role=button]:focus,
70
67
  [role=button]:is([aria-current]:not([aria-current=false])):focus {
71
- --shadow-lg: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--color-primary-focus);
68
+ --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-primary-focus-ring);
72
69
  }
73
70
 
74
71
  [type=submit],
@@ -80,25 +77,25 @@ button:focus, button:is([aria-current]:not([aria-current=false])):focus,
80
77
  [type=reset],
81
78
  [type=file]::file-selector-button,
82
79
  [aria-label="Close"] {
83
- --color-background: var(--color-secondary-bg);
84
- --border-color: var(--color-secondary-border);
85
- --color-text: var(--color-secondary-inverse);
80
+ --color-background: var(--color-secondary-fill);
81
+ --border-color: var(--color-secondary-fill);
82
+ --color-text: var(--color-secondary-on-fill);
86
83
  cursor: pointer;
87
84
  }
88
85
 
89
86
  [type=reset]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
90
87
  [type=file]::file-selector-button:is(:hover, :active, :focus),
91
88
  [aria-label="Close"]:is(:hover, :active, :focus) {
92
- --color-background: var(--color-secondary-hover-bg);
93
- --border-color: var(--color-secondary-hover-border);
94
- --color-text: var(--color-secondary-inverse);
89
+ --color-background: var(--color-secondary-fill-hover);
90
+ --border-color: var(--color-secondary-fill-hover);
91
+ --color-text: var(--color-secondary-on-fill);
95
92
  }
96
93
 
97
94
  [type=reset]:focus,
98
95
  [aria-label="Close"]:focus,
99
96
  [type=reset]:is([aria-current]:not([aria-current=false])):focus,
100
97
  [type=file]::file-selector-button:focus {
101
- --shadow-lg: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--color-secondary-focus);
98
+ --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-secondary-focus-ring);
102
99
  }
103
100
 
104
101
  :is(button, [type=submit], [type=reset], [type=button], [role=button])[disabled],
@@ -118,13 +115,13 @@ aside {
118
115
 
119
116
  nav {
120
117
  :where(button, [role=button], [type=button], input:not([type=checkbox], [type=radio], [type=range], [type=file]), select) {
121
- --form-element-spacing-vertical: calc(var(--nav-link-spacing) - var(--border-width) * 2);
122
- --form-element-spacing-horizontal: var(--nav-link-spacing);
118
+ --input-spacing-vertical: calc(var(--nav-link-gap) - var(--border-size) * 2);
119
+ --input-spacing-horizontal: var(--nav-link-gap);
123
120
 
124
121
  height: auto;
125
122
  margin-right: inherit;
126
123
  margin-bottom: 0;
127
124
  margin-left: inherit;
128
- padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
125
+ padding: var(--input-spacing-vertical) var(--input-spacing-horizontal);
129
126
  }
130
127
  }
@@ -1,15 +1,12 @@
1
- /**
2
- * Code
3
- */
4
1
  pre,
5
2
  code,
6
3
  kbd,
7
4
  samp {
8
5
  font-size: 0.875em;
9
6
  font-family: var(--font-family);
10
- border-radius: var(--border-radius);
11
- background: var(--code-bg);
12
- color: var(--code-color);
7
+ border-radius: var(--radius);
8
+ background: var(--code-fill);
9
+ color: var(--code-text);
13
10
  font-weight: var(--font-weight);
14
11
  line-height: initial;
15
12
  }
@@ -47,7 +44,7 @@ pre {
47
44
  }
48
45
 
49
46
  kbd {
50
- background-color: var(--kbd-bg);
51
- color: var(--kbd-color);
47
+ background-color: var(--kbd-fill);
48
+ color: var(--kbd-text);
52
49
  vertical-align: baseline;
53
50
  }