@semanticus/semanticus-css 0.8.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 (166) 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 +28 -16
  29. package/src/components/_card.css +84 -0
  30. package/src/components/_sidebar.css +49 -0
  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/{_aria-busy.css → attributes/_aria-busy.css} +0 -3
  55. package/src/semantics/{_hidden.css → attributes/_hidden.css} +0 -3
  56. package/src/semantics/attributes/_popover.css +13 -0
  57. package/src/semantics/attributes/_role-group-search.css +137 -0
  58. package/src/semantics/{_role-toolbar.css → attributes/_role-toolbar.css} +2 -5
  59. package/src/semantics/{_role-tooltip.css → attributes/_role-tooltip.css} +6 -9
  60. package/src/semantics/elements/_abbr.css +5 -0
  61. package/src/semantics/elements/_address.css +7 -0
  62. package/src/semantics/elements/_article.css +3 -0
  63. package/src/semantics/elements/_aside.css +10 -0
  64. package/src/semantics/elements/_blockquote.css +18 -0
  65. package/src/semantics/elements/_body.css +5 -0
  66. package/src/semantics/{_button.css → elements/_button.css} +23 -26
  67. package/src/semantics/{_code.css → elements/_code.css} +11 -11
  68. package/src/semantics/elements/_del.css +3 -0
  69. package/src/semantics/{_details.css → elements/_details.css} +42 -43
  70. package/src/semantics/elements/_dialog.css +113 -0
  71. package/src/semantics/{_document.css → elements/_document.css} +10 -4
  72. package/src/semantics/{_embedded.css → elements/_embedded.css} +0 -3
  73. package/src/semantics/{_figure.css → elements/_figure.css} +0 -3
  74. package/src/semantics/elements/_footer.css +10 -0
  75. package/src/semantics/elements/_header.css +10 -0
  76. package/src/semantics/elements/_headings.css +24 -0
  77. package/src/semantics/elements/_hgroup.css +14 -0
  78. package/src/semantics/{_hr.css → elements/_hr.css} +1 -4
  79. package/src/semantics/{_input.css → elements/_input.css} +34 -38
  80. package/src/semantics/elements/_ins.css +4 -0
  81. package/src/semantics/elements/_links.css +61 -0
  82. package/src/semantics/elements/_lists.css +22 -0
  83. package/src/semantics/elements/_main.css +3 -0
  84. package/src/semantics/elements/_mark.css +6 -0
  85. package/src/semantics/{_nav.css → elements/_nav.css} +5 -8
  86. package/src/semantics/elements/_p.css +11 -0
  87. package/src/semantics/{_progress.css → elements/_progress.css} +5 -8
  88. package/src/semantics/elements/_section.css +4 -0
  89. package/src/semantics/elements/_small.css +3 -0
  90. package/src/semantics/elements/_strong.css +4 -0
  91. package/src/semantics/elements/_sub.css +7 -0
  92. package/src/semantics/elements/_sup.css +7 -0
  93. package/src/semantics/{_table.css → elements/_table.css} +10 -7
  94. package/src/semantics/{_type-checkbox-radio.css → elements/_type-checkbox-radio.css} +19 -22
  95. package/src/semantics/{_type-color.css → elements/_type-color.css} +2 -5
  96. package/src/semantics/{_type-date.css → elements/_type-date.css} +1 -4
  97. package/src/semantics/elements/_type-file.css +23 -0
  98. package/src/semantics/{_type-range.css → elements/_type-range.css} +11 -14
  99. package/src/semantics/elements/_type-search.css +30 -0
  100. package/src/semantics/index.css +2 -5
  101. package/src/semantics/modules.css +46 -37
  102. package/src/sizes/pico.css +21 -29
  103. package/src/utilities/_grid.css +306 -0
  104. package/src/utilities/_variables.css +27 -42
  105. package/src/utilities/borders/_border-radius.css +54 -79
  106. package/src/utilities/borders/_border-style.css +15 -5
  107. package/src/utilities/borders/_border-width.css +0 -28
  108. package/src/utilities/colors/_bg-colors.css +75 -0
  109. package/src/utilities/colors/_border-colors.css +17 -39
  110. package/src/utilities/colors/_subtle-colors.css +145 -0
  111. package/src/utilities/colors/_text-bg-colors.css +62 -0
  112. package/src/utilities/colors/_text-colors.css +32 -409
  113. package/src/utilities/effects/_focus-ring.css +33 -0
  114. package/src/utilities/effects/_shadows.css +0 -33
  115. package/src/utilities/index.css +16 -0
  116. package/src/utilities/layout/_misc.css +2 -5
  117. package/src/utilities/layout/{_grid.css → _ratio.css} +0 -19
  118. package/src/utilities/modules.css +9 -3
  119. package/src/utilities/sizing/_width.css +8 -0
  120. package/src/utilities/spacing/_gap.css +144 -144
  121. package/src/utilities/spacing/_margin.css +324 -324
  122. package/src/utilities/spacing/_padding.css +324 -324
  123. package/src/utilities/typography/_font-sizes.css +6 -6
  124. package/src/variables/_all.css +2 -20
  125. package/src/variables/_elements.css +29 -33
  126. package/src/variables/_theme.css +336 -0
  127. package/src/variants/_variables.css +24 -0
  128. package/src/variants/intent/_contrast.css +46 -0
  129. package/src/variants/intent/_danger.css +38 -0
  130. package/src/variants/intent/_info.css +38 -0
  131. package/src/variants/intent/_primary.css +38 -0
  132. package/src/variants/intent/_secondary.css +38 -0
  133. package/src/variants/intent/_success.css +38 -0
  134. package/src/variants/intent/_warning.css +38 -0
  135. package/src/variants/{_container.css → modifiers/_container.css} +3 -10
  136. package/src/variants/modifiers/_ghost.css +164 -0
  137. package/src/variants/modifiers/_striped.css +11 -0
  138. package/src/variants/modifiers/_subtle.css +133 -0
  139. package/src/variants/modules.css +12 -15
  140. package/src/_normalize.css +0 -214
  141. package/src/semantics/_article.css +0 -12
  142. package/src/semantics/_aside.css +0 -16
  143. package/src/semantics/_body.css +0 -8
  144. package/src/semantics/_dialog.css +0 -157
  145. package/src/semantics/_footer.css +0 -12
  146. package/src/semantics/_header.css +0 -12
  147. package/src/semantics/_links.css +0 -50
  148. package/src/semantics/_main.css +0 -10
  149. package/src/semantics/_role-group-search.css +0 -129
  150. package/src/semantics/_section.css +0 -9
  151. package/src/semantics/_type-file.css +0 -26
  152. package/src/semantics/_type-search.css +0 -34
  153. package/src/semantics/_typography.css +0 -146
  154. package/src/utilities/colors/_background-colors.css +0 -248
  155. package/src/variables/_colors.css +0 -366
  156. package/src/variables/_components.css +0 -318
  157. package/src/variables/_icons.css +0 -43
  158. package/src/variables/_layout.css +0 -128
  159. package/src/variants/_card.css +0 -45
  160. package/src/variants/_contained.css +0 -43
  161. package/src/variants/_contrast.css +0 -47
  162. package/src/variants/_ghost.css +0 -61
  163. package/src/variants/_panel.css +0 -18
  164. package/src/variants/_secondary.css +0 -35
  165. package/src/variants/_sidebar.css +0 -11
  166. 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;
@@ -0,0 +1,13 @@
1
+ [popover] {
2
+ overflow: auto;
3
+ border: 0;
4
+ padding: 0;
5
+ color: var(--color-text);
6
+ background-color: var(--color-background);
7
+ height: unset;
8
+ margin: unset;
9
+
10
+ &:popover-open {
11
+ display: block !important;
12
+ }
13
+ }
@@ -0,0 +1,137 @@
1
+ [role="search"],
2
+ [role="group"] {
3
+ border-radius: var(--radius);
4
+ box-shadow: var(--group-shadow, 0 0 0 rgba(0, 0, 0, 0));
5
+ display: inline-flex;
6
+ gap: 0;
7
+ margin-bottom: var(--spacing);
8
+ position: relative;
9
+ transition: box-shadow var(--transition);
10
+ vertical-align: middle;
11
+ width: 100%;
12
+
13
+ & > *:not(details),
14
+ & input:not([type="checkbox"], [type="radio"]),
15
+ & select {
16
+ position: relative;
17
+ flex: 1 1 auto;
18
+ margin-bottom: 0;
19
+
20
+ &:not(:first-child) {
21
+ margin-left: calc(var(--border-size) * -1);
22
+ border-top-left-radius: 0;
23
+ border-bottom-left-radius: 0;
24
+ }
25
+
26
+ &:not(:last-child) {
27
+ border-top-right-radius: 0;
28
+ border-bottom-right-radius: 0;
29
+ }
30
+
31
+ &:focus {
32
+ z-index: 2;
33
+ }
34
+ }
35
+
36
+ & button,
37
+ & [type="submit"],
38
+ & [type="reset"],
39
+ & [type="button"],
40
+ & [role="button"] {
41
+ width: auto;
42
+ }
43
+
44
+ /* Details dropdown inside group */
45
+ & > details {
46
+ position: relative;
47
+ margin-bottom: 0;
48
+ /* Constrain details height to just the button, not the dropdown menu */
49
+ height: calc(
50
+ 1rem * var(--line-height) + var(--input-spacing-vertical) *
51
+ 2 + var(--border-size) * 2
52
+ );
53
+ overflow: visible;
54
+
55
+ &:not(:first-child) {
56
+ margin-left: calc(var(--border-size) * -1);
57
+
58
+ & > summary {
59
+ border-top-left-radius: 0;
60
+ border-bottom-left-radius: 0;
61
+ }
62
+ }
63
+
64
+ &:not(:last-child) > summary {
65
+ border-top-right-radius: 0;
66
+ border-bottom-right-radius: 0;
67
+ }
68
+
69
+ & > summary:focus {
70
+ z-index: 2;
71
+ }
72
+
73
+ /* Ensure consistent height with other form elements in the group */
74
+ & > summary[role="button"] {
75
+ display: flex;
76
+ align-items: center;
77
+ height: 100%;
78
+
79
+ &::after {
80
+ height: calc(1rem * var(--line-height, 1.5));
81
+ }
82
+ }
83
+ }
84
+ }
85
+
86
+ @supports selector(:has(*)) {
87
+ [role="search"],
88
+ [role="group"] {
89
+ &:has(
90
+ button:focus,
91
+ [type="submit"]:focus,
92
+ [type="button"]:focus,
93
+ [role="button"]:focus
94
+ ) {
95
+ --group-shadow: var(--group-shadow-focus-button);
96
+
97
+ & input:not([type="checkbox"], [type="radio"]),
98
+ & select {
99
+ border-color: transparent;
100
+ }
101
+ }
102
+
103
+ &:has(input:not([type="submit"], [type="button"]):focus, select:focus) {
104
+ --group-shadow: var(--group-shadow-focus-input);
105
+
106
+ & button,
107
+ & [type="submit"],
108
+ & [type="button"],
109
+ & [role="button"] {
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);
114
+ }
115
+ }
116
+
117
+ & button:focus,
118
+ & [type="submit"]:focus,
119
+ & [type="reset"]:focus,
120
+ & [type="button"]:focus,
121
+ & [role="button"]:focus {
122
+ box-shadow: none;
123
+ }
124
+ }
125
+ }
126
+
127
+ [role="search"] {
128
+ & > :first-child {
129
+ border-top-left-radius: 5rem;
130
+ border-bottom-left-radius: 5rem;
131
+ }
132
+
133
+ & > :last-child {
134
+ border-top-right-radius: 5rem;
135
+ border-bottom-right-radius: 5rem;
136
+ }
137
+ }
@@ -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
  }
@@ -0,0 +1,5 @@
1
+ abbr[title] {
2
+ border-bottom: 1px dotted;
3
+ text-decoration: none;
4
+ cursor: help;
5
+ }
@@ -0,0 +1,7 @@
1
+ address {
2
+ margin-top: 0;
3
+ margin-bottom: var(--typography-spacing-vertical);
4
+ color: var(--color-text);
5
+ font-style: normal;
6
+ font-weight: var(--font-weight);
7
+ }
@@ -0,0 +1,3 @@
1
+ article {
2
+ width: 100%;
3
+ }
@@ -0,0 +1,10 @@
1
+ aside {
2
+ width: var(--sidebar-size) !important;
3
+ padding: var(--spacing) !important;
4
+
5
+ :where(ol, ul, li) {
6
+ align-items: stretch !important;
7
+ display: flex;
8
+ flex-direction: column;
9
+ }
10
+ }
@@ -0,0 +1,18 @@
1
+ blockquote {
2
+ border-inline-end: none;
3
+ border-inline-start: 0.25rem solid var(--color-border);
4
+ border-left: 0.25rem solid var(--color-border);
5
+ border-right: none;
6
+ color: var(--color-text);
7
+ display: block;
8
+ font-style: normal;
9
+ font-weight: var(--font-weight);
10
+ margin-bottom: var(--typography-spacing-vertical);
11
+ margin-top: 0;
12
+ padding: var(--spacing);
13
+
14
+ & footer {
15
+ margin-top: calc(var(--typography-spacing-vertical) * 0.5);
16
+ color: var(--color-text-muted);
17
+ }
18
+ }
@@ -0,0 +1,5 @@
1
+ body {
2
+ width: 100%;
3
+ min-height: 100svh;
4
+ margin: 0; /* modern-normalize */
5
+ }