@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,6 +1,3 @@
1
- /**
2
- * Basics form elements
3
- */
4
1
  input,
5
2
  optgroup,
6
3
  select,
@@ -79,13 +76,12 @@ textarea {
79
76
  }
80
77
 
81
78
  input:not([type=checkbox], [type=radio], [type=range]) {
82
- height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
79
+ height: calc(1rem * var(--line-height) + var(--input-spacing-vertical) * 2 + var(--border-size) * 2);
83
80
  }
84
81
 
85
82
  fieldset {
86
83
  width: 100%;
87
- margin: 0;
88
- margin-bottom: var(--spacing);
84
+ margin: 0 ;
89
85
  padding: 0;
90
86
  border: 0;
91
87
  }
@@ -113,21 +109,21 @@ input:not([type=checkbox], [type=radio], [type=range], [type=file]),
113
109
  select,
114
110
  textarea {
115
111
  appearance: none;
116
- padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
112
+ padding: var(--input-spacing-vertical) var(--input-spacing-horizontal);
117
113
  }
118
114
 
119
115
  input,
120
116
  select,
121
117
  textarea {
122
- --color-background: var(--form-bg);
123
- --border-color: var(--form-border-color);
124
- --color-text: var(--form-text-color);
125
- --shadow-lg: none;
126
- border: var(--border-width) solid var(--border-color);
127
- border-radius: var(--border-radius);
118
+ --color-background: var(--input-fill);
119
+ --border-color: var(--input-border);
120
+ --color-text: var(--input-text);
121
+ --shadow: none;
122
+ border: var(--border-size) solid var(--border-color);
123
+ border-radius: var(--radius);
128
124
  outline: none;
129
125
  background-color: var(--color-background);
130
- box-shadow: var(--shadow-lg);
126
+ box-shadow: var(--shadow);
131
127
  color: var(--color-text);
132
128
  font-weight: var(--font-weight);
133
129
  transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
@@ -140,12 +136,12 @@ input:not([type=submit],
140
136
  [type=radio],
141
137
  [readonly]):is(:active, :focus),
142
138
  :where(select, textarea):not([readonly]):is(:active, :focus) {
143
- --color-background: var(--form-active-bg);
139
+ --color-background: var(--input-fill-active);
144
140
  }
145
141
 
146
142
  input:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus),
147
143
  :where(select, textarea):not([readonly]):is(:active, :focus) {
148
- --border-color: var(--form-active-border);
144
+ --border-color: var(--input-border-focus);
149
145
  }
150
146
 
151
147
  input:not([type=submit],
@@ -155,7 +151,7 @@ input:not([type=submit],
155
151
  [type=file],
156
152
  [readonly]):focus,
157
153
  :where(select, textarea):not([readonly]):focus {
158
- --shadow-lg: 0 0 0 var(--outline-width) var(--form-focus);
154
+ --shadow: 0 0 0 var(--outline-size) var(--input-border-focus);
159
155
  }
160
156
 
161
157
  input:not([type=submit], [type=button], [type=reset])[disabled],
@@ -163,7 +159,7 @@ select[disabled],
163
159
  textarea[disabled],
164
160
  label[aria-disabled=true],
165
161
  :where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) {
166
- opacity: var(--form-disabled-opacity);
162
+ opacity: var(--input-opacity-disabled);
167
163
  pointer-events: none;
168
164
  }
169
165
 
@@ -179,10 +175,10 @@ label[aria-disabled=true] input[disabled] {
179
175
  [type=time],
180
176
  [type=week],
181
177
  [type=range])[aria-invalid]) {
182
- padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);
183
- padding-left: var(--form-element-spacing-horizontal);
184
- padding-inline-start: var(--form-element-spacing-horizontal);
185
- padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
178
+ padding-right: calc(var(--input-spacing-horizontal) + 1.5rem);
179
+ padding-left: var(--input-spacing-horizontal);
180
+ padding-inline-start: var(--input-spacing-horizontal);
181
+ padding-inline-end: calc(var(--input-spacing-horizontal) + 1.5rem);
186
182
  background-position: center right 0.75rem;
187
183
  background-size: 1rem auto;
188
184
  background-repeat: no-repeat;
@@ -209,23 +205,23 @@ label[aria-disabled=true] input[disabled] {
209
205
  }
210
206
 
211
207
  :is(input, select, textarea)[aria-invalid=false] {
212
- --border-color: var(--form-valid-border);
208
+ --border-color: var(--color-success-fill);
213
209
  }
214
210
  :is(input, select, textarea)[aria-invalid=false]:is(:active, :focus) {
215
- --border-color: var(--form-valid-active-border);
211
+ --border-color: var(--color-success-fill-hover);
216
212
  }
217
213
  input:not([type=checkbox], [type=radio])[aria-invalid=false]:is(:active, :focus), select[aria-invalid=false]:is(:active, :focus), textarea[aria-invalid=false]:is(:active, :focus) {
218
- --shadow-lg: 0 0 0 var(--outline-width) var(--form-valid-focus);
214
+ --shadow: 0 0 0 var(--outline-size) var(--color-success-fill);
219
215
  }
220
216
 
221
217
  :is(input, select, textarea)[aria-invalid=true] {
222
- --border-color: var(--form-invalid-border);
218
+ --border-color: var(--color-danger-fill);
223
219
  }
224
220
  :is(input, select, textarea)[aria-invalid=true]:is(:active, :focus) {
225
- --border-color: var(--form-invalid-active-border);
221
+ --border-color: var(--color-danger-fill-hover);
226
222
  }
227
223
  input:not([type=checkbox], [type=radio])[aria-invalid=true]:is(:active, :focus), select[aria-invalid=true]:is(:active, :focus), textarea[aria-invalid=true]:is(:active, :focus) {
228
- --shadow-lg: 0 0 0 var(--outline-width) var(--form-invalid-focus);
224
+ --shadow: 0 0 0 var(--outline-size) var(--color-danger-fill);
229
225
  }
230
226
 
231
227
  :where([dir=rtl] :is(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false])) {
@@ -237,7 +233,7 @@ input::-webkit-input-placeholder,
237
233
  textarea::placeholder,
238
234
  textarea::-webkit-input-placeholder,
239
235
  select:invalid {
240
- color: var(--form-placeholder-color);
236
+ color: var(--input-placeholder-text);
241
237
  opacity: 1;
242
238
  }
243
239
 
@@ -254,10 +250,10 @@ select {
254
250
  }
255
251
 
256
252
  &:not([multiple], [size]) {
257
- padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);
258
- padding-left: var(--form-element-spacing-horizontal);
259
- padding-inline-start: var(--form-element-spacing-horizontal);
260
- padding-inline-end: calc(var(--form-element-spacing-horizontal) + 1.5rem);
253
+ padding-right: calc(var(--input-spacing-horizontal) + 1.5rem);
254
+ padding-left: var(--input-spacing-horizontal);
255
+ padding-inline-start: var(--input-spacing-horizontal);
256
+ padding-inline-end: calc(var(--input-spacing-horizontal) + 1.5rem);
261
257
  background-image: var(--icon-chevron);
262
258
  background-position: center right 0.75rem;
263
259
  background-size: 1rem auto;
@@ -265,8 +261,8 @@ select {
265
261
  }
266
262
 
267
263
  &[multiple] option:checked {
268
- background: var(--form-selected-bg);
269
- color: var(--form-text-color);
264
+ background: var(--input-fill-selected);
265
+ color: var(--input-text);
270
266
  }
271
267
  }
272
268
 
@@ -280,7 +276,7 @@ textarea {
280
276
  }
281
277
 
282
278
  :where(textarea[aria-invalid]) {
283
- --icon-height: calc(1rem * var(--line-height) + var(--form-element-spacing-vertical) * 2 + var(--border-width) * 2);
279
+ --icon-height: calc(1rem * var(--line-height) + var(--input-spacing-vertical) * 2 + var(--border-size) * 2);
284
280
  background-position: top right 0.75rem;
285
281
  background-size: 1rem var(--icon-height);
286
282
  }
@@ -294,11 +290,11 @@ textarea {
294
290
  }
295
291
 
296
292
  :where(input, select, textarea, fieldset)[aria-invalid=false] + small {
297
- color: rgb(var(--color-success-rgb));
293
+ color: var(--color-success-text);
298
294
  }
299
295
 
300
296
  :where(input, select, textarea, fieldset)[aria-invalid=true] + small {
301
- color: rgb(var(--color-danger-rgb));
297
+ color: var(--color-danger-text);
302
298
  }
303
299
 
304
300
  label > :where(input, select, textarea) {
@@ -0,0 +1,4 @@
1
+ ins {
2
+ color: var(--color-success-text);
3
+ text-decoration: none;
4
+ }
@@ -0,0 +1,61 @@
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;
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);
13
+ 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);
22
+ }
23
+
24
+ &:is([aria-current]:not([aria-current=false])) {
25
+ font-weight: 500;
26
+ text-decoration-color: oklch(from var(--color-text) l c h / 0.6);
27
+ }
28
+
29
+ &:focus-visible {
30
+ box-shadow: 0 0 0 var(--outline-size) var(--color-primary-focus-ring);
31
+ }
32
+ }
33
+
34
+ [role=link] {
35
+ cursor: pointer;
36
+
37
+ &button {
38
+ display: inline-flex;
39
+ }
40
+ }
41
+
42
+ a[role=button] {
43
+ display: inline-block;
44
+ }
45
+
46
+ aside {
47
+ nav {
48
+ a:not([role=button]), [role=link] {
49
+ display: block !important;
50
+ width: 100%;
51
+ }
52
+ }
53
+ }
54
+
55
+ nav {
56
+ a:not([role=button]), [role=link] {
57
+ &:not(:hover) {
58
+ --a-decoration: none;
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,22 @@
1
+ dl,
2
+ ol,
3
+ ul {
4
+ margin-top: 0;
5
+ margin-bottom: var(--typography-spacing-vertical);
6
+ color: var(--color-text);
7
+ font-style: normal;
8
+ font-weight: var(--font-weight);
9
+ }
10
+
11
+ :where(ol, ul) li {
12
+ margin-bottom: calc(var(--typography-spacing-vertical) * 0.25);
13
+ }
14
+
15
+ :where(dl, ol, ul) :where(dl, ol, ul) {
16
+ margin: 0;
17
+ margin-top: calc(var(--typography-spacing-vertical) * 0.25);
18
+ }
19
+
20
+ ul li {
21
+ list-style: square;
22
+ }
@@ -0,0 +1,3 @@
1
+ main {
2
+ width: 100%;
3
+ }
@@ -0,0 +1,6 @@
1
+ mark {
2
+ padding: 0.125rem 0.25rem;
3
+ background-color: var(--color-warning-fill);
4
+ color: var(--color-warning-on-fill);
5
+ vertical-align: baseline;
6
+ }
@@ -1,12 +1,9 @@
1
- /**
2
- * Nav
3
- */
4
1
  nav {
5
2
  --typography-spacing-vertical: 0;
6
- --typography-headings-top: 0;
3
+ --heading-gap-top: 0;
7
4
 
8
5
  display: flex;
9
- gap: var(--spacing);
6
+ gap: calc(var(--nav-link-gap) * 1.5);
10
7
  align-items: center;
11
8
  justify-content: space-between;
12
9
  overflow: visible;
@@ -21,13 +18,13 @@ nav {
21
18
 
22
19
  & ul li {
23
20
  &:not(:first-child) {
24
- margin-inline-start: calc(var(--nav-link-spacing-horizontal) * 2);
21
+ margin-inline-start: calc(var(--nav-link-gap) * 2);
25
22
  }
26
23
 
27
24
  &:not(:last-child)::after {
28
25
  display: inline-block;
29
26
  position: absolute;
30
- width: calc(var(--nav-link-spacing-horizontal) * 4);
27
+ width: calc(var(--nav-link-gap) * 3);
31
28
  content: var(--nav-breadcrumb-divider);
32
29
  color: var(--color-text-muted);
33
30
  text-align: center;
@@ -47,7 +44,7 @@ nav {
47
44
  ul, ol {
48
45
  align-items: center;
49
46
  display: flex;
50
- gap: var(--spacing);
47
+ gap: calc(var(--nav-link-gap) * 1.5);
51
48
  list-style: none;
52
49
  margin-bottom: 0 !important;
53
50
  padding: 0;
@@ -0,0 +1,11 @@
1
+ p {
2
+ color: var(--color-text);
3
+ font-style: normal;
4
+ font-weight: var(--font-weight);
5
+ margin-bottom: var(--typography-spacing-vertical);
6
+ margin-top: 0;
7
+
8
+ &:last-of-type {
9
+ margin-bottom: 0;
10
+ }
11
+ }
@@ -1,6 +1,3 @@
1
- /**
2
- * Progress
3
- */
4
1
  progress {
5
2
  -webkit-appearance: none;
6
3
  -moz-appearance: none;
@@ -11,14 +8,14 @@ progress {
11
8
  margin-bottom: calc(var(--spacing) * 0.5);
12
9
  overflow: hidden;
13
10
  border: 0;
14
- border-radius: var(--border-radius);
15
- background-color: var(--progress-bg);
11
+ border-radius: var(--radius);
12
+ background-color: var(--progress-track-fill);
16
13
  color: var(--progress-fill);
17
14
  vertical-align: baseline;
18
- accent-color: rgb(var(--color-primary-rgb));
15
+ accent-color: var(--color-primary-fill);
19
16
 
20
17
  &::-webkit-progress-bar {
21
- border-radius: var(--border-radius);
18
+ border-radius: var(--radius);
22
19
  background: none;
23
20
  }
24
21
 
@@ -34,7 +31,7 @@ progress {
34
31
 
35
32
  @media (prefers-reduced-motion: no-preference) {
36
33
  progress:indeterminate {
37
- background: var(--progress-bg) linear-gradient(to right, var(--progress-fill) 30%, var(--progress-bg) 30%) top left/150% 150% no-repeat;
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;
38
35
  animation: progress-indeterminate 1s linear infinite;
39
36
 
40
37
  &[value]::-webkit-progress-value {
@@ -0,0 +1,4 @@
1
+ section {
2
+ width: 100%;
3
+ margin-bottom: var(--spacing);
4
+ }
@@ -0,0 +1,3 @@
1
+ small {
2
+ font-size: var(--font-size);
3
+ }
@@ -0,0 +1,4 @@
1
+ b,
2
+ strong {
3
+ font-weight: bolder;
4
+ }
@@ -0,0 +1,7 @@
1
+ sub {
2
+ position: relative;
3
+ font-size: 0.75em;
4
+ line-height: 0;
5
+ vertical-align: baseline;
6
+ bottom: -0.25em;
7
+ }
@@ -0,0 +1,7 @@
1
+ sup {
2
+ position: relative;
3
+ font-size: 0.75em;
4
+ line-height: 0;
5
+ vertical-align: baseline;
6
+ top: -0.5em;
7
+ }
@@ -1,17 +1,20 @@
1
- /**
2
- * Table
3
- */
4
- :where(table) {
5
- width: 100%;
1
+ table {
6
2
  border-collapse: collapse;
3
+ border-color: currentcolor; /* modern-normalize */
7
4
  border-spacing: 0;
5
+ color: var(--color-text);
6
+ font-style: normal;
7
+ font-weight: var(--font-weight);
8
+ margin-bottom: var(--typography-spacing-vertical);
9
+ margin-top: 0;
8
10
  text-indent: 0;
11
+ width: 100%;
9
12
  }
10
13
 
11
14
  th,
12
15
  td {
13
16
  padding: calc(var(--spacing) / 2) var(--spacing);
14
- border-bottom: var(--border-width) solid var(--table-border-color);
17
+ border-bottom: var(--border-size) solid var(--color-border);
15
18
  background-color: var(--color-background);
16
19
  color: var(--color-text);
17
20
  font-weight: var(--font-weight);
@@ -22,7 +25,7 @@ td {
22
25
  tfoot {
23
26
  & th,
24
27
  & td {
25
- border-top: var(--border-width) solid var(--table-border-color);
28
+ border-top: var(--border-size) solid var(--color-border);
26
29
  border-bottom: 0;
27
30
  }
28
31
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Checkboxes, Radios and Switches
3
- */
4
1
  label:has([type=checkbox], [type=radio]) {
5
2
  width: fit-content;
6
3
  cursor: pointer;
@@ -15,7 +12,7 @@ label:has([type=checkbox], [type=radio]) {
15
12
  height: 1.25em;
16
13
  margin-top: -0.125em;
17
14
  margin-inline-end: 0.5em;
18
- border-width: var(--border-width);
15
+ border-width: var(--border-size);
19
16
  vertical-align: middle;
20
17
  cursor: pointer;
21
18
 
@@ -24,8 +21,8 @@ label:has([type=checkbox], [type=radio]) {
24
21
  }
25
22
 
26
23
  &:checked, &:checked:active, &:checked:focus {
27
- --color-background: var(--color-primary-bg);
28
- --border-color: var(--color-primary-border);
24
+ --color-background: var(--color-primary-fill);
25
+ --border-color: var(--color-primary-fill);
29
26
  background-image: var(--icon-checkbox);
30
27
  background-position: center;
31
28
  background-size: 0.75em auto;
@@ -45,8 +42,8 @@ label:has([type=checkbox], [type=radio]) {
45
42
 
46
43
  [type=checkbox] {
47
44
  &:indeterminate {
48
- --color-background: var(--color-primary-bg);
49
- --border-color: var(--color-primary-border);
45
+ --color-background: var(--color-primary-fill);
46
+ --border-color: var(--color-primary-fill);
50
47
  background-image: var(--icon-minus);
51
48
  background-position: center;
52
49
  background-size: 0.75em auto;
@@ -58,24 +55,24 @@ label:has([type=checkbox], [type=radio]) {
58
55
  border-radius: 50%;
59
56
 
60
57
  &:checked, &:checked:active, &:checked:focus {
61
- --color-background: var(--color-primary-inverse);
58
+ --color-background: var(--color-primary-on-fill);
62
59
  border-width: 0.35em;
63
60
  background-image: none;
64
61
  }
65
62
  }
66
63
 
67
64
  [type=checkbox][role=switch] {
68
- --color-background: var(--switch-bg);
69
- --color-text: var(--switch-thumb-color);
65
+ --color-background: var(--switch-fill);
66
+ --color-text: var(--switch-thumb-fill);
70
67
  width: 2.25em;
71
68
  height: 1.25em;
72
- border: var(--border-width) solid var(--border-color);
69
+ border: var(--border-size) solid var(--border-color);
73
70
  border-radius: 1.25em;
74
71
  background-color: var(--color-background);
75
72
  line-height: 1.25em;
76
73
 
77
74
  &:not([aria-invalid]) {
78
- --border-color: var(--switch-bg);
75
+ --border-color: var(--switch-fill);
79
76
  }
80
77
 
81
78
  &:before {
@@ -84,19 +81,19 @@ label:has([type=checkbox], [type=radio]) {
84
81
  height: 100%;
85
82
  border-radius: 50%;
86
83
  background-color: var(--color-text);
87
- box-shadow: var(--switch-thumb-shadow);
84
+ box-shadow: var(--switch-thumb-glow);
88
85
  content: "";
89
86
  transition: margin 0.1s ease-in-out;
90
87
  }
91
88
 
92
89
  &:focus {
93
- --color-background: var(--switch-bg);
94
- --border-color: var(--switch-bg);
90
+ --color-background: var(--switch-fill);
91
+ --border-color: var(--switch-fill);
95
92
  }
96
93
 
97
94
  &:checked {
98
- --color-background: var(--switch-checked-bg);
99
- --border-color: var(--switch-checked-bg);
95
+ --color-background: var(--switch-fill-checked);
96
+ --border-color: var(--switch-fill-checked);
100
97
  background-image: none;
101
98
 
102
99
  &::before {
@@ -113,13 +110,13 @@ label:has([type=checkbox], [type=radio]) {
113
110
  [type=checkbox][role=switch][aria-invalid=false]:checked,
114
111
  [type=checkbox][role=switch][aria-invalid=false]:checked:active,
115
112
  [type=checkbox][role=switch][aria-invalid=false]:checked:focus {
116
- --color-background: var(--form-valid-border);
113
+ --color-background: var(--color-success-fill);
117
114
  }
118
115
  [type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true],
119
116
  [type=checkbox][role=switch]:checked[aria-invalid=true],
120
117
  [type=checkbox][role=switch]:checked:active[aria-invalid=true],
121
118
  [type=checkbox][role=switch]:checked:focus[aria-invalid=true] {
122
- --color-background: var(--form-invalid-border);
119
+ --color-background: var(--color-danger-fill);
123
120
  }
124
121
 
125
122
  [type=checkbox][aria-invalid=false]:checked, [type=checkbox][aria-invalid=false]:checked:active, [type=checkbox][aria-invalid=false]:checked:focus,
@@ -129,7 +126,7 @@ label:has([type=checkbox], [type=radio]) {
129
126
  [type=checkbox][role=switch][aria-invalid=false]:checked,
130
127
  [type=checkbox][role=switch][aria-invalid=false]:checked:active,
131
128
  [type=checkbox][role=switch][aria-invalid=false]:checked:focus {
132
- --border-color: var(--form-valid-border);
129
+ --border-color: var(--color-success-fill);
133
130
  }
134
131
  [type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true],
135
132
  [type=radio]:checked[aria-invalid=true],
@@ -138,5 +135,5 @@ label:has([type=checkbox], [type=radio]) {
138
135
  [type=checkbox][role=switch]:checked[aria-invalid=true],
139
136
  [type=checkbox][role=switch]:checked:active[aria-invalid=true],
140
137
  [type=checkbox][role=switch]:checked:focus[aria-invalid=true] {
141
- --border-color: var(--form-invalid-border);
138
+ --border-color: var(--color-danger-fill);
142
139
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Input type color
3
- */
4
1
  [type=color] {
5
2
  &::-webkit-color-swatch-wrapper {
6
3
  padding: 0;
@@ -12,11 +9,11 @@
12
9
 
13
10
  &::-webkit-color-swatch {
14
11
  border: 0;
15
- border-radius: calc(var(--border-radius) * 0.5);
12
+ border-radius: calc(var(--radius) * 0.5);
16
13
  }
17
14
 
18
15
  &::-moz-color-swatch {
19
16
  border: 0;
20
- border-radius: calc(var(--border-radius) * 0.5);
17
+ border-radius: calc(var(--radius) * 0.5);
21
18
  }
22
19
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Input type datetime
3
- */
4
1
  :where(input:not([type=checkbox], [type=radio], [type=range], [type=file]):is([type=date], [type=datetime-local], [type=month], [type=time], [type=week])) {
5
2
  --icon-position: 0.75rem;
6
3
  --icon-width: 1rem;
@@ -31,7 +28,7 @@
31
28
  [type=month],
32
29
  [type=time],
33
30
  [type=week] {
34
- padding-right: var(--form-element-spacing-horizontal);
31
+ padding-right: var(--input-spacing-horizontal);
35
32
  background-image: none;
36
33
  }
37
34
  }
@@ -0,0 +1,23 @@
1
+ [type=file] {
2
+ --color-text: var(--color-text-muted);
3
+ margin-left: calc(var(--outline-size) * -1);
4
+ padding: calc(var(--input-spacing-vertical) * 0.5) 0;
5
+ padding-left: var(--outline-size);
6
+ border: 0;
7
+ border-radius: 0;
8
+ background: none;
9
+
10
+ &::file-selector-button {
11
+ margin-right: calc(var(--spacing) / 2);
12
+ padding: calc(var(--input-spacing-vertical) * 0.5) var(--input-spacing-horizontal);
13
+ }
14
+
15
+ &:is(:hover, :active, :focus)::file-selector-button {
16
+ --color-background: var(--color-secondary-fill-hover);
17
+ --border-color: var(--color-secondary-fill-hover);
18
+ }
19
+
20
+ &:focus::file-selector-button {
21
+ --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-secondary-focus-ring);
22
+ }
23
+ }