@semanticus/semanticus-css 2.2.0 → 3.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 (150) hide show
  1. package/README.md +21 -20
  2. package/dist/semanticus-no-utilities.css +1 -1
  3. package/dist/semanticus-semantics.css +1 -1
  4. package/dist/semanticus-utilities.css +1 -1
  5. package/dist/semanticus.css +2 -2
  6. package/dist/semanticus.palette.amber.css +1 -1
  7. package/dist/semanticus.palette.azure.css +1 -1
  8. package/dist/semanticus.palette.blue.css +1 -1
  9. package/dist/semanticus.palette.cyan.css +1 -1
  10. package/dist/semanticus.palette.fuchsia.css +1 -1
  11. package/dist/semanticus.palette.green.css +1 -1
  12. package/dist/semanticus.palette.grey.css +1 -1
  13. package/dist/semanticus.palette.indigo.css +1 -1
  14. package/dist/semanticus.palette.jade.css +1 -1
  15. package/dist/semanticus.palette.lime.css +1 -1
  16. package/dist/semanticus.palette.orange.css +1 -1
  17. package/dist/semanticus.palette.pink.css +1 -1
  18. package/dist/semanticus.palette.pumpkin.css +1 -1
  19. package/dist/semanticus.palette.purple.css +1 -1
  20. package/dist/semanticus.palette.red.css +1 -1
  21. package/dist/semanticus.palette.sand.css +1 -1
  22. package/dist/semanticus.palette.slate.css +1 -1
  23. package/dist/semanticus.palette.violet.css +1 -1
  24. package/dist/semanticus.palette.yellow.css +1 -1
  25. package/dist/semanticus.palette.zinc.css +1 -1
  26. package/dist/semanticus.size.pico.css +1 -1
  27. package/package.json +1 -1
  28. package/src/components/_card.css +55 -46
  29. package/src/components/_icons.css +2 -2
  30. package/src/components/_pane.css +15 -8
  31. package/src/components/_sidebar.css +6 -6
  32. package/src/components/_variables.css +28 -0
  33. package/src/components/modules.css +2 -0
  34. package/src/index.css +1 -1
  35. package/src/palettes/amber.css +22 -26
  36. package/src/palettes/azure.css +22 -26
  37. package/src/palettes/blue.css +22 -26
  38. package/src/palettes/cyan.css +22 -26
  39. package/src/palettes/fuchsia.css +25 -26
  40. package/src/palettes/green.css +22 -26
  41. package/src/palettes/grey.css +22 -26
  42. package/src/palettes/indigo.css +22 -26
  43. package/src/palettes/jade.css +22 -26
  44. package/src/palettes/lime.css +22 -26
  45. package/src/palettes/orange.css +22 -26
  46. package/src/palettes/pink.css +22 -26
  47. package/src/palettes/pumpkin.css +25 -26
  48. package/src/palettes/purple.css +22 -26
  49. package/src/palettes/red.css +22 -26
  50. package/src/palettes/sand.css +22 -26
  51. package/src/palettes/slate.css +22 -26
  52. package/src/palettes/violet.css +22 -26
  53. package/src/palettes/yellow.css +22 -26
  54. package/src/palettes/zinc.css +22 -26
  55. package/src/semantics/attributes/_aria-busy.css +1 -10
  56. package/src/semantics/attributes/_aria-disabled.css +2 -23
  57. package/src/semantics/attributes/_disabled.css +3 -0
  58. package/src/semantics/attributes/_popover.css +4 -3
  59. package/src/semantics/attributes/_role-group-search.css +135 -0
  60. package/src/semantics/attributes/_role-list.css +23 -0
  61. package/src/semantics/attributes/_role-status-alert.css +28 -22
  62. package/src/semantics/attributes/_role-tooltip.css +11 -8
  63. package/src/semantics/elements/_address.css +2 -2
  64. package/src/semantics/elements/_aside.css +1 -2
  65. package/src/semantics/elements/_blockquote.css +6 -6
  66. package/src/semantics/elements/_body.css +0 -2
  67. package/src/semantics/elements/_buttons.css +100 -0
  68. package/src/semantics/elements/_code.css +18 -8
  69. package/src/semantics/elements/_del.css +1 -1
  70. package/src/semantics/elements/_details.css +147 -162
  71. package/src/semantics/elements/_dialog.css +24 -17
  72. package/src/semantics/elements/_fieldset.css +27 -0
  73. package/src/semantics/elements/_figure.css +1 -1
  74. package/src/semantics/elements/_footer.css +0 -1
  75. package/src/semantics/elements/_header.css +0 -1
  76. package/src/semantics/elements/_headings.css +86 -9
  77. package/src/semantics/elements/_hgroup.css +2 -2
  78. package/src/semantics/elements/_hr.css +2 -2
  79. package/src/semantics/elements/_inputs.css +14 -0
  80. package/src/semantics/elements/_ins.css +1 -1
  81. package/src/semantics/elements/_label.css +4 -0
  82. package/src/semantics/elements/_links.css +39 -27
  83. package/src/semantics/elements/_lists.css +10 -8
  84. package/src/semantics/elements/_mark.css +2 -2
  85. package/src/semantics/elements/_nav.css +31 -7
  86. package/src/semantics/elements/_p.css +2 -2
  87. package/src/semantics/elements/_progress.css +18 -11
  88. package/src/semantics/elements/{_document.css → _root.css} +12 -9
  89. package/src/semantics/elements/_section.css +0 -1
  90. package/src/semantics/elements/_small.css +27 -0
  91. package/src/semantics/elements/_table.css +20 -6
  92. package/src/semantics/elements/inputs/_checkbox-radio.css +30 -0
  93. package/src/semantics/elements/inputs/_checkbox.css +19 -0
  94. package/src/semantics/elements/{_type-color.css → inputs/_color.css} +5 -3
  95. package/src/semantics/elements/inputs/_common.css +87 -0
  96. package/src/semantics/elements/inputs/_date.css +53 -0
  97. package/src/semantics/elements/inputs/_file.css +35 -0
  98. package/src/semantics/elements/inputs/_input.css +47 -0
  99. package/src/semantics/elements/inputs/_radio.css +11 -0
  100. package/src/semantics/elements/inputs/_range.css +69 -0
  101. package/src/semantics/elements/inputs/_search.css +48 -0
  102. package/src/semantics/elements/inputs/_select.css +32 -0
  103. package/src/semantics/elements/inputs/_switch.css +46 -0
  104. package/src/semantics/elements/inputs/_textarea.css +30 -0
  105. package/src/semantics/modules.css +9 -13
  106. package/src/sizes/pico.css +24 -23
  107. package/src/utilities/_grid.css +917 -179
  108. package/src/utilities/_variables.css +21 -14
  109. package/src/utilities/borders/_border-radius.css +9 -9
  110. package/src/utilities/borders/_border-style.css +10 -10
  111. package/src/utilities/colors/_bg-colors.css +22 -38
  112. package/src/utilities/colors/_border-colors.css +20 -26
  113. package/src/utilities/colors/_subtle-colors.css +55 -61
  114. package/src/utilities/colors/_text-bg-colors.css +35 -35
  115. package/src/utilities/colors/_text-colors.css +24 -46
  116. package/src/utilities/effects/_focus-ring.css +14 -11
  117. package/src/utilities/layout/_misc.css +4 -3
  118. package/src/utilities/sizing/_width.css +48 -0
  119. package/src/utilities/spacing/_gap.css +0 -43
  120. package/src/utilities/spacing/_margin.css +0 -1
  121. package/src/utilities/spacing/_padding.css +0 -1
  122. package/src/utilities/typography/_font-sizes.css +6 -6
  123. package/src/variables/_all.css +3 -4
  124. package/src/variables/_theme.css +394 -237
  125. package/src/variants/_intent.css +8 -0
  126. package/src/variants/_variables.css +109 -9
  127. package/src/variants/intent/_common.css +33 -0
  128. package/src/variants/intent/_contrast.css +30 -31
  129. package/src/variants/intent/_danger.css +7 -30
  130. package/src/variants/intent/_info.css +7 -30
  131. package/src/variants/intent/_primary.css +7 -30
  132. package/src/variants/intent/_secondary.css +7 -30
  133. package/src/variants/intent/_success.css +7 -30
  134. package/src/variants/intent/_warning.css +7 -30
  135. package/src/variants/modifiers/_ghost.css +52 -152
  136. package/src/variants/modifiers/_striped.css +6 -5
  137. package/src/variants/modifiers/_subtle.css +55 -113
  138. package/src/variants/modules.css +1 -7
  139. package/src/semantics/attributes/_role-group.css +0 -126
  140. package/src/semantics/attributes/_role-search.css +0 -14
  141. package/src/semantics/elements/_article.css +0 -3
  142. package/src/semantics/elements/_button.css +0 -124
  143. package/src/semantics/elements/_input.css +0 -302
  144. package/src/semantics/elements/_main.css +0 -3
  145. package/src/semantics/elements/_type-checkbox-radio.css +0 -139
  146. package/src/semantics/elements/_type-date.css +0 -37
  147. package/src/semantics/elements/_type-file.css +0 -23
  148. package/src/semantics/elements/_type-range.css +0 -87
  149. package/src/semantics/elements/_type-search.css +0 -30
  150. package/src/variables/_elements.css +0 -195
@@ -4,26 +4,30 @@ body:has(dialog[open]) {
4
4
  pointer-events: none;
5
5
  touch-action: none;
6
6
 
7
- & dialog[open],
8
- & dialog:target {
7
+ dialog:is([open], :target) {
9
8
  pointer-events: auto;
10
9
  touch-action: auto;
11
10
  }
12
11
  }
13
12
 
14
13
  dialog {
14
+ --_dialog-border-color: var(--dialog-border-color);
15
+ --_dialog-background-color: var(--dialog-background-color);
16
+
15
17
  max-height: calc(100vh - var(--spacing) * 2);
16
18
  margin: auto;
17
19
  overflow: auto;
18
20
  padding: var(--spacing);
19
- border-radius: var(--radius);
20
- background: var(--dialog-fill);
21
- box-shadow: var(--dialog-shadow);
22
- border: var(--border-size) solid var(--border-color);
21
+ border-radius: var(--border-radius);
22
+ border: var(--border-width) solid var(--_dialog-border-color);
23
+ background: var(--_dialog-background-color);
24
+ box-shadow: var(--menu-box-shadow);
23
25
 
24
26
  /* Opening animation using @starting-style (Chrome 117+, Firefox 129+, Safari 17.4+) */
25
27
  /* Gracefully degrades to instant appearance in unsupported browsers */
26
- transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
28
+ transition:
29
+ opacity 0.2s ease-in-out,
30
+ transform 0.2s ease-in-out;
27
31
 
28
32
  @media (--breakpoint-sm) {
29
33
  max-width: 510px;
@@ -35,15 +39,17 @@ dialog {
35
39
 
36
40
  /* Hidden state */
37
41
  &:not([open]),
38
- &[open=false] {
42
+ &[open="false"] {
39
43
  display: none;
40
44
  }
41
45
 
42
46
  /* Backdrop overlay */
43
47
  &::backdrop {
44
48
  backdrop-filter: blur(0.375rem);
45
- background-color: var(--dialog-overlay);
46
- transition: backdrop-filter 0.2s ease-in-out, background-color 0.2s ease-in-out;
49
+ background-color: var(--backdrop-background-color);
50
+ transition:
51
+ backdrop-filter 0.2s ease-in-out,
52
+ background-color 0.2s ease-in-out;
47
53
  }
48
54
 
49
55
  > header,
@@ -51,7 +57,7 @@ dialog {
51
57
  width: auto;
52
58
  margin-inline: calc(var(--spacing) * -1);
53
59
  padding-inline: var(--spacing);
54
- background-color: var(--dialog-section-fill);
60
+ background-color: var(--dialog-marginals-background-color);
55
61
  display: flex;
56
62
  gap: calc(var(--nav-link-gap) * 1.5);
57
63
  align-items: center;
@@ -60,18 +66,19 @@ dialog {
60
66
  /* Header styling */
61
67
  > header {
62
68
  margin-top: calc(var(--spacing) * -1);
63
- border-bottom: var(--border-size) solid var(--dialog-section-border);
64
- border-top-right-radius: var(--radius);
65
- border-top-left-radius: var(--radius);
69
+ border-bottom: var(--border-width) solid
70
+ var(--dialog-marginals-border-color);
71
+ border-top-right-radius: var(--border-radius);
72
+ border-top-left-radius: var(--border-radius);
66
73
  justify-content: space-between;
67
74
  }
68
75
 
69
76
  /* Footer styling */
70
77
  > footer {
71
78
  margin-bottom: calc(var(--spacing) * -1);
72
- border-top: var(--border-size) solid var(--dialog-section-border);
73
- border-bottom-right-radius: var(--radius);
74
- border-bottom-left-radius: var(--radius);
79
+ border-top: var(--border-width) solid var(--dialog-marginals-border-color);
80
+ border-bottom-right-radius: var(--border-radius);
81
+ border-bottom-left-radius: var(--border-radius);
75
82
  justify-content: end;
76
83
  }
77
84
 
@@ -0,0 +1,27 @@
1
+ /* See _input.css for shared styles */
2
+
3
+ fieldset {
4
+ width: 100%;
5
+ margin: 0;
6
+ padding: 0;
7
+ border: 0;
8
+ }
9
+
10
+ legend {
11
+ max-width: 100%;
12
+ padding: 0;
13
+ color: inherit;
14
+ white-space: normal;
15
+ }
16
+
17
+ fieldset legend {
18
+ margin-bottom: calc(var(--spacing) * 0.5);
19
+ }
20
+
21
+ label,
22
+ fieldset legend {
23
+ display: block;
24
+ margin-bottom: calc(var(--spacing) * 0.375);
25
+ color: var(--typography-color);
26
+ font-weight: var(--form-label-font-weight, var(--font-weight));
27
+ }
@@ -5,6 +5,6 @@ figure {
5
5
 
6
6
  & figcaption {
7
7
  padding: calc(var(--spacing) * 0.5) 0;
8
- color: var(--color-text-muted);
8
+ color: var(--color-muted);
9
9
  }
10
10
  }
@@ -1,5 +1,4 @@
1
1
  footer {
2
- width: 100%;
3
2
  padding-block: var(--spacing);
4
3
  margin-top: var(--spacing);
5
4
 
@@ -1,5 +1,4 @@
1
1
  header {
2
- width: 100%;
3
2
  padding-block: var(--spacing);
4
3
  margin-bottom: var(--spacing);
5
4
 
@@ -4,21 +4,98 @@ h3,
4
4
  h4,
5
5
  h5,
6
6
  h6 {
7
+ --font-weight: var(--heading-font-weight);
8
+
7
9
  margin-top: 0;
8
- margin-bottom: var(--typography-spacing-vertical);
10
+ margin-bottom: var(--typography-margin-block);
9
11
  font-weight: var(--font-weight);
10
12
  font-size: var(--font-size);
11
13
  line-height: var(--line-height);
12
14
  font-family: var(--font-family);
13
15
  }
14
16
 
15
- h1 { color: var(--color-text); }
16
- h2 { color: color-mix(in srgb, var(--color-text) 90%, light-dark(white, black)); }
17
- h3 { color: color-mix(in srgb, var(--color-text) 80%, light-dark(white, black)); }
18
- h4 { color: color-mix(in srgb, var(--color-text) 70%, light-dark(white, black)); }
19
- h5 { color: color-mix(in srgb, var(--color-text) 60%, light-dark(white, black)); }
20
- h6 { color: color-mix(in srgb, var(--color-text) 65%, light-dark(white, black)); }
17
+ h1 {
18
+ --font-size: var(--h1-font-size);
19
+ --line-height: var(--h1-line-height);
20
+ --heading-margin-top: var(--h1-margin-top);
21
+
22
+ color: var(--typography-color);
23
+ }
24
+
25
+ h2 {
26
+ --font-size: var(--h2-font-size);
27
+ --line-height: var(--h2-line-height);
28
+ --heading-margin-top: var(--h2-margin-top);
29
+
30
+ color: color-mix(
31
+ in srgb,
32
+ var(--typography-color) 90%,
33
+ light-dark(white, black)
34
+ );
35
+ }
36
+
37
+ h3 {
38
+ --font-size: var(--h3-font-size);
39
+ --line-height: var(--h3-line-height);
40
+ --heading-margin-top: var(--h3-margin-top);
41
+
42
+ color: color-mix(
43
+ in srgb,
44
+ var(--typography-color) 80%,
45
+ light-dark(white, black)
46
+ );
47
+ }
48
+
49
+ h4 {
50
+ --font-size: var(--h4-font-size);
51
+ --line-height: var(--h4-line-height);
52
+ --heading-margin-top: var(--h4-margin-top);
53
+
54
+ color: color-mix(
55
+ in srgb,
56
+ var(--typography-color) 70%,
57
+ light-dark(white, black)
58
+ );
59
+ }
60
+
61
+ h5 {
62
+ --font-size: var(--h5-font-size);
63
+ --line-height: var(--h5-line-height);
64
+ --heading-margin-top: var(--h5-margin-top);
65
+
66
+ color: color-mix(
67
+ in srgb,
68
+ var(--typography-color) 60%,
69
+ light-dark(white, black)
70
+ );
71
+ }
72
+
73
+ h6 {
74
+ --font-size: var(--h6-font-size);
75
+ --line-height: var(--h6-line-height);
76
+ --heading-margin-top: var(--h6-margin-top);
77
+
78
+ color: color-mix(
79
+ in srgb,
80
+ var(--typography-color) 65%,
81
+ light-dark(white, black)
82
+ );
83
+ }
21
84
 
22
- :where(article, address, blockquote, dl, figure, form, ol, p, pre, table, ul, hr) ~ :is(h1, h2, h3, h4, h5, h6) {
23
- margin-top: var(--heading-gap-top);
85
+ :where(
86
+ article,
87
+ address,
88
+ blockquote,
89
+ dl,
90
+ figure,
91
+ form,
92
+ ol,
93
+ p,
94
+ pre,
95
+ table,
96
+ ul,
97
+ hr
98
+ )
99
+ ~ :is(h1, h2, h3, h4, h5, h6) {
100
+ margin-top: var(--heading-margin-top);
24
101
  }
@@ -1,11 +1,11 @@
1
1
  hgroup {
2
- margin-bottom: var(--typography-spacing-vertical);
2
+ margin-bottom: var(--typography-margin-block);
3
3
 
4
4
  & > * {
5
5
  margin-block: 0 !important;
6
6
 
7
7
  &:not(:first-child):last-child {
8
- color: var(--color-text-muted);
8
+ color: var(--color-muted);
9
9
  --font-weight: unset;
10
10
  font-size: 1rem;
11
11
  }
@@ -1,7 +1,7 @@
1
1
  hr {
2
2
  height: 0;
3
- margin: var(--typography-spacing-vertical) 0;
3
+ margin: var(--typography-margin-block) 0;
4
4
  border: 0;
5
- border-top: 1px solid var(--color-border);
5
+ border-top: 1px solid var(--border-color);
6
6
  color: inherit;
7
7
  }
@@ -0,0 +1,14 @@
1
+ @import "./inputs/_common.css";
2
+
3
+ @import "./inputs/_checkbox-radio.css";
4
+ @import "./inputs/_checkbox.css";
5
+ @import "./inputs/_color.css";
6
+ @import "./inputs/_date.css";
7
+ @import "./inputs/_file.css";
8
+ @import "./inputs/_input.css";
9
+ @import "./inputs/_radio.css";
10
+ @import "./inputs/_range.css";
11
+ @import "./inputs/_search.css";
12
+ @import "./inputs/_select.css";
13
+ @import "./inputs/_switch.css";
14
+ @import "./inputs/_textarea.css";
@@ -1,4 +1,4 @@
1
1
  ins {
2
- color: var(--color-success-text);
2
+ color: var(--success-color);
3
3
  text-decoration: none;
4
4
  }
@@ -0,0 +1,4 @@
1
+ label:has([type="checkbox"], [type="radio"]) {
2
+ width: fit-content;
3
+ cursor: pointer;
4
+ }
@@ -1,37 +1,47 @@
1
- :where(a:not([role=button])),
2
- [role=link] {
3
- --color-background: transparent;
4
- --border-color: transparent;
5
- --color-text: var(--color-primary-text);
6
- --shadow: transparent;
7
- outline: none;
1
+ :where(a:not([role="button"])),
2
+ [role="link"] {
3
+ --_links-color: var(--links-color);
4
+ --_links-color-hover: var(--links-color-hover);
5
+ --_links-text-decoration: var(--links-text-decoration);
6
+ --_links-outline-color: var(--primary-outline-color);
7
+
8
8
  padding: 0;
9
- background-color: var(--color-background);
10
- color: var(--color-text);
11
- text-decoration: var(--a-decoration);
12
- text-decoration-color: oklch(from var(--color-text) l c h / 0.3);
9
+ background-color: transparent;
10
+ border-color: transparent;
11
+ color: var(--_links-color);
12
+ text-decoration: var(--_links-text-decoration);
13
+ text-decoration-color: oklch(from var(--_links-color) l c h / 0.3);
13
14
  text-underline-offset: 0.125em;
14
- transition: background-color var(--transition), color var(--transition), text-decoration-color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
15
-
16
- &:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
17
- --color-background: transparent;
18
- --border-color: transparent;
19
- --color-text: var(--color-primary-text-hover);
20
- --shadow: transparent;
21
- text-decoration-color: oklch(from var(--color-text) l c h / 0.85);
15
+ transition:
16
+ background-color var(--transition),
17
+ color var(--transition),
18
+ text-decoration-color var(--transition),
19
+ text-decoration var(--transition);
20
+
21
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
22
+ background-color: transparent;
23
+ border-color: transparent;
24
+
25
+ color: var(--_links-color-hover);
26
+ text-decoration-color: var(--_links-color-hover);
22
27
  }
23
28
 
24
- &:is([aria-current]:not([aria-current=false])) {
29
+ &:is([aria-current]:not([aria-current="false"])) {
25
30
  font-weight: 500;
26
- text-decoration-color: oklch(from var(--color-text) l c h / 0.6);
27
31
  }
28
32
 
29
33
  &:focus-visible {
30
- box-shadow: 0 0 0 var(--outline-size) var(--color-primary-focus-ring);
34
+ border-radius: var(--border-radius);
35
+ outline: var(--outline-width) solid var(--_links-outline-color);
36
+ box-shadow: 0 0 0 var(--focus-ring-width) var(--_links-outline-color);
37
+ }
38
+
39
+ &[aria-busy="true"] {
40
+ pointer-events: none;
31
41
  }
32
42
  }
33
43
 
34
- [role=link] {
44
+ [role="link"] {
35
45
  cursor: pointer;
36
46
 
37
47
  &button {
@@ -39,13 +49,14 @@
39
49
  }
40
50
  }
41
51
 
42
- a[role=button] {
52
+ a[role="button"] {
43
53
  display: inline-block;
44
54
  }
45
55
 
46
56
  aside {
47
57
  nav {
48
- a:not([role=button]), [role=link] {
58
+ a:not([role="button"]),
59
+ [role="link"] {
49
60
  display: block !important;
50
61
  width: 100%;
51
62
  }
@@ -53,9 +64,10 @@ aside {
53
64
  }
54
65
 
55
66
  nav {
56
- a:not([role=button]), [role=link] {
67
+ a:not([role="button"]),
68
+ [role="link"] {
57
69
  &:not(:hover) {
58
- --a-decoration: none;
70
+ --_links-text-decoration: none;
59
71
  }
60
72
  }
61
73
  }
@@ -1,22 +1,24 @@
1
1
  dl,
2
2
  ol,
3
3
  ul {
4
+ --_lists-marker-color: var(--lists-marker-color);
5
+
4
6
  margin-top: 0;
5
- margin-bottom: var(--typography-spacing-vertical);
6
- color: var(--color-text);
7
+ margin-bottom: var(--typography-margin-block);
8
+ color: var(--typography-color);
7
9
  font-style: normal;
8
10
  font-weight: var(--font-weight);
9
11
  }
10
12
 
11
13
  :where(ol, ul) li {
12
- margin-bottom: calc(var(--typography-spacing-vertical) * 0.25);
14
+ margin-bottom: calc(var(--typography-margin-block) * 0.25);
15
+
16
+ &::marker {
17
+ color: var(--_lists-marker-color);
18
+ }
13
19
  }
14
20
 
15
21
  :where(dl, ol, ul) :where(dl, ol, ul) {
16
22
  margin: 0;
17
- margin-top: calc(var(--typography-spacing-vertical) * 0.25);
18
- }
19
-
20
- ul li {
21
- list-style: square;
23
+ margin-top: calc(var(--typography-margin-block) * 0.25);
22
24
  }
@@ -1,6 +1,6 @@
1
1
  mark {
2
2
  padding: 0.125rem 0.25rem;
3
- background-color: var(--color-warning-fill);
4
- color: var(--color-warning-on-fill);
3
+ background-color: var(--mark-background-color);
4
+ color: #fff;
5
5
  vertical-align: baseline;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  nav {
2
- --typography-spacing-vertical: 0;
3
- --heading-gap-top: 0;
2
+ --typography-margin-block: 0;
3
+ --heading-margin-top: 0;
4
4
 
5
5
  display: flex;
6
6
  gap: calc(var(--nav-link-gap) * 1.5);
@@ -16,7 +16,26 @@ nav {
16
16
  }
17
17
  }
18
18
 
19
- &[aria-label=breadcrumb] {
19
+ :is(
20
+ button,
21
+ [role="button"],
22
+ [type="button"],
23
+ select,
24
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])
25
+ ) {
26
+ --inputs-padding-block: calc(var(--nav-link-gap) - var(--border-width) * 2);
27
+ --inputs-padding-inline: var(--nav-link-gap);
28
+ --_buttons-padding-block: var(--inputs-padding-block);
29
+ --_buttons-padding-inline: var(--inputs-padding-inline);
30
+
31
+ width: auto;
32
+ height: auto;
33
+ margin-right: inherit;
34
+ margin-bottom: 0;
35
+ margin-left: inherit;
36
+ }
37
+
38
+ &[aria-label="breadcrumb"] {
20
39
  align-items: center;
21
40
  justify-content: start;
22
41
 
@@ -30,14 +49,18 @@ nav {
30
49
  position: absolute;
31
50
  width: calc(var(--nav-link-gap) * 3);
32
51
  content: var(--nav-breadcrumb-divider);
33
- color: var(--color-text-muted);
52
+ color: var(--color-muted);
34
53
  text-align: center;
35
54
  text-decoration: none;
36
55
  white-space: nowrap;
37
56
  }
38
57
  }
39
58
 
40
- & :where(a[aria-current]:not([aria-current=false]), [role=link][aria-current]:not([aria-current=false])) {
59
+ &
60
+ :where(
61
+ a[aria-current]:not([aria-current="false"]),
62
+ [role="link"][aria-current]:not([aria-current="false"])
63
+ ) {
41
64
  background-color: transparent;
42
65
  color: inherit;
43
66
  text-decoration: none;
@@ -45,7 +68,8 @@ nav {
45
68
  }
46
69
  }
47
70
 
48
- ul, ol {
71
+ ul,
72
+ ol {
49
73
  align-items: center;
50
74
  display: flex;
51
75
  gap: calc(var(--nav-link-gap) * 1.5);
@@ -68,7 +92,7 @@ nav {
68
92
  }
69
93
  }
70
94
 
71
- [dir=rtl] :where(nav[aria-label=breadcrumb]) ul li:not(:last-child)::after {
95
+ [dir="rtl"] :where(nav[aria-label="breadcrumb"]) ul li:not(:last-child)::after {
72
96
  content: "\\";
73
97
  }
74
98
 
@@ -1,7 +1,7 @@
1
1
  p {
2
- color: var(--color-text);
2
+ color: var(--typography-color);
3
3
  font-style: normal;
4
4
  font-weight: var(--font-weight);
5
- margin-bottom: var(--typography-spacing-vertical);
5
+ margin-bottom: var(--typography-margin-block);
6
6
  margin-top: 0;
7
7
  }
@@ -1,6 +1,7 @@
1
1
  progress {
2
- -webkit-appearance: none;
3
- -moz-appearance: none;
2
+ --_progress-accent-color: var(--progress-accent-color);
3
+ --_progress-track-background-color: var(--progress-track-background-color);
4
+
4
5
  display: inline-block;
5
6
  appearance: none;
6
7
  width: 100%;
@@ -8,30 +9,36 @@ progress {
8
9
  margin-bottom: calc(var(--spacing) * 0.5);
9
10
  overflow: hidden;
10
11
  border: 0;
11
- border-radius: var(--radius);
12
- background-color: var(--progress-track-fill);
13
- color: var(--progress-fill);
12
+ border-radius: var(--border-radius);
13
+ background-color: var(--_progress-track-background-color);
14
+ color: var(--_progress-accent-color);
14
15
  vertical-align: baseline;
15
- accent-color: var(--color-primary-fill);
16
+ accent-color: var(--_progress-accent-color);
16
17
 
17
18
  &::-webkit-progress-bar {
18
- border-radius: var(--radius);
19
+ border-radius: var(--border-radius);
19
20
  background: none;
20
21
  }
21
22
 
22
23
  &[value]::-webkit-progress-value {
23
- background-color: var(--progress-fill);
24
+ background-color: var(--_progress-accent-color);
24
25
  transition: inline-size var(--transition);
25
26
  }
26
27
 
27
28
  &::-moz-progress-bar {
28
- background-color: var(--progress-fill);
29
+ background-color: var(--_progress-accent-color);
29
30
  }
30
31
  }
31
32
 
32
33
  @media (prefers-reduced-motion: no-preference) {
33
34
  progress:indeterminate {
34
- background: var(--progress-track-fill) linear-gradient(to right, var(--progress-fill) 30%, var(--progress-track-fill) 30%) top left/150% 150% no-repeat;
35
+ background: var(--_progress-track-background-color)
36
+ linear-gradient(
37
+ to right,
38
+ var(--_progress-accent-color) 30%,
39
+ var(--_progress-track-background-color) 30%
40
+ )
41
+ top left/150% 150% no-repeat;
35
42
  animation: progress-indeterminate 1s linear infinite;
36
43
 
37
44
  &[value]::-webkit-progress-value {
@@ -43,7 +50,7 @@ progress {
43
50
  }
44
51
  }
45
52
 
46
- [dir=rtl] progress:indeterminate {
53
+ [dir="rtl"] progress:indeterminate {
47
54
  animation-direction: reverse;
48
55
  }
49
56
  }
@@ -1,9 +1,13 @@
1
+ /* modern-normalize */
2
+ *,
3
+ ::before,
4
+ ::after {
5
+ box-sizing: border-box;
6
+ }
1
7
 
2
-
3
- :where(:root),
4
- :where(:host) {
5
- background-color: var(--color-background);
6
- color: var(--color-text);
8
+ :where(:root, :host) {
9
+ background-color: var(--background-color);
10
+ color: var(--typography-color);
7
11
  font-weight: var(--font-weight);
8
12
  font-size: var(--font-size);
9
13
  line-height: var(--line-height);
@@ -14,11 +18,10 @@
14
18
  tab-size: 4;
15
19
  }
16
20
 
17
- /* modern-normalize */
18
- *, ::before, ::after {
19
- box-sizing: border-box;
21
+ ::selection {
22
+ background-color: var(--selection-background-color);
20
23
  }
21
24
 
22
25
  html {
23
- -webkit-text-size-adjust: 100%
26
+ -webkit-text-size-adjust: 100%;
24
27
  }
@@ -1,4 +1,3 @@
1
1
  section {
2
- width: 100%;
3
2
  margin-bottom: var(--spacing);
4
3
  }
@@ -1,3 +1,30 @@
1
1
  small {
2
+ --font-size: var(--small-font-size);
3
+
2
4
  font-size: var(--font-size);
5
+
6
+ :where(input, select, textarea, fieldset) + & {
7
+ display: block;
8
+ width: 100%;
9
+ margin-bottom: var(--spacing);
10
+ color: var(--color-muted);
11
+ }
12
+
13
+ :where(
14
+ input:not([type="checkbox"], [type="radio"], [role="switch"]),
15
+ select,
16
+ textarea,
17
+ fieldset
18
+ )
19
+ + & {
20
+ margin-top: calc(var(--spacing) * -0.75);
21
+ }
22
+
23
+ :where(input, select, textarea, fieldset)[aria-invalid="false"] + & {
24
+ color: var(--success-color);
25
+ }
26
+
27
+ :where(input, select, textarea, fieldset)[aria-invalid="true"] + & {
28
+ color: var(--danger-color);
29
+ }
3
30
  }