@semanticus/semanticus-css 0.9.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/NOTICE +16 -16
  2. package/README.md +128 -29
  3. package/dist/semanticus-no-utilities.css +11 -0
  4. package/dist/semanticus-semantics.css +3 -4
  5. package/dist/semanticus-utilities.css +11 -0
  6. package/dist/semanticus.css +4 -12
  7. package/dist/semanticus.palette.amber.css +1 -1
  8. package/dist/semanticus.palette.azure.css +1 -0
  9. package/dist/semanticus.palette.blue.css +1 -1
  10. package/dist/semanticus.palette.cyan.css +1 -1
  11. package/dist/semanticus.palette.fuchsia.css +1 -1
  12. package/dist/semanticus.palette.green.css +1 -1
  13. package/dist/semanticus.palette.grey.css +1 -1
  14. package/dist/semanticus.palette.indigo.css +1 -1
  15. package/dist/semanticus.palette.jade.css +1 -1
  16. package/dist/semanticus.palette.lime.css +1 -1
  17. package/dist/semanticus.palette.orange.css +1 -1
  18. package/dist/semanticus.palette.pink.css +1 -1
  19. package/dist/semanticus.palette.pumpkin.css +1 -1
  20. package/dist/semanticus.palette.purple.css +1 -1
  21. package/dist/semanticus.palette.red.css +1 -1
  22. package/dist/semanticus.palette.sand.css +1 -1
  23. package/dist/semanticus.palette.slate.css +1 -1
  24. package/dist/semanticus.palette.violet.css +1 -1
  25. package/dist/semanticus.palette.yellow.css +1 -1
  26. package/dist/semanticus.palette.zinc.css +1 -1
  27. package/dist/semanticus.size.pico.css +1 -1
  28. package/package.json +24 -15
  29. package/src/components/_card.css +47 -0
  30. package/src/{variants → components}/_container.css +3 -10
  31. package/src/components/_icons.css +59 -0
  32. package/src/components/_pane.css +19 -0
  33. package/src/{variants → components}/_sidebar.css +3 -5
  34. package/src/components/modules.css +5 -0
  35. package/src/index.css +8 -10
  36. package/src/no-utilities.css +22 -0
  37. package/src/palettes/amber.css +28 -53
  38. package/src/palettes/azure.css +31 -0
  39. package/src/palettes/blue.css +28 -53
  40. package/src/palettes/cyan.css +28 -53
  41. package/src/palettes/fuchsia.css +28 -53
  42. package/src/palettes/green.css +28 -53
  43. package/src/palettes/grey.css +28 -53
  44. package/src/palettes/indigo.css +28 -53
  45. package/src/palettes/jade.css +28 -53
  46. package/src/palettes/lime.css +28 -53
  47. package/src/palettes/orange.css +28 -53
  48. package/src/palettes/pink.css +28 -53
  49. package/src/palettes/pumpkin.css +28 -53
  50. package/src/palettes/purple.css +28 -53
  51. package/src/palettes/red.css +28 -53
  52. package/src/palettes/sand.css +28 -53
  53. package/src/palettes/slate.css +28 -53
  54. package/src/palettes/violet.css +28 -53
  55. package/src/palettes/yellow.css +28 -53
  56. package/src/palettes/zinc.css +28 -53
  57. package/src/semantics/attributes/_aria-busy.css +0 -3
  58. package/src/semantics/attributes/_aria-disabled.css +25 -0
  59. package/src/semantics/attributes/_hidden.css +0 -3
  60. package/src/semantics/attributes/_role-group-search.css +11 -14
  61. package/src/semantics/attributes/_role-status-alert.css +123 -0
  62. package/src/semantics/attributes/_role-toolbar.css +2 -5
  63. package/src/semantics/attributes/_role-tooltip.css +7 -10
  64. package/src/semantics/elements/_article.css +0 -3
  65. package/src/semantics/elements/_aside.css +1 -7
  66. package/src/semantics/elements/_blockquote.css +2 -2
  67. package/src/semantics/elements/_body.css +1 -4
  68. package/src/semantics/elements/_button.css +25 -31
  69. package/src/semantics/elements/_code.css +5 -8
  70. package/src/semantics/elements/_del.css +1 -1
  71. package/src/semantics/elements/_details.css +39 -40
  72. package/src/semantics/elements/_dialog.css +19 -43
  73. package/src/semantics/elements/_document.css +10 -4
  74. package/src/semantics/elements/_embedded.css +0 -3
  75. package/src/semantics/elements/_figure.css +0 -3
  76. package/src/semantics/elements/_footer.css +0 -3
  77. package/src/semantics/elements/_header.css +0 -3
  78. package/src/semantics/elements/_headings.css +7 -17
  79. package/src/semantics/elements/_hgroup.css +1 -1
  80. package/src/semantics/elements/_hr.css +1 -4
  81. package/src/semantics/elements/_input.css +33 -36
  82. package/src/semantics/elements/_ins.css +1 -1
  83. package/src/semantics/elements/_links.css +22 -18
  84. package/src/semantics/elements/_main.css +0 -4
  85. package/src/semantics/elements/_mark.css +2 -2
  86. package/src/semantics/elements/_nav.css +5 -8
  87. package/src/semantics/elements/_progress.css +5 -8
  88. package/src/semantics/elements/_section.css +0 -3
  89. package/src/semantics/elements/_small.css +3 -0
  90. package/src/semantics/elements/_table.css +3 -5
  91. package/src/semantics/elements/_type-checkbox-radio.css +19 -22
  92. package/src/semantics/elements/_type-color.css +2 -5
  93. package/src/semantics/elements/_type-date.css +1 -4
  94. package/src/semantics/elements/_type-file.css +7 -10
  95. package/src/semantics/elements/_type-range.css +11 -14
  96. package/src/semantics/elements/_type-search.css +6 -10
  97. package/src/semantics/index.css +2 -5
  98. package/src/semantics/modules.css +3 -7
  99. package/src/sizes/pico.css +20 -33
  100. package/src/utilities/_grid.css +306 -0
  101. package/src/utilities/_variables.css +27 -42
  102. package/src/utilities/borders/_border-radius.css +54 -79
  103. package/src/utilities/borders/_border-style.css +15 -5
  104. package/src/utilities/borders/_border-width.css +0 -28
  105. package/src/utilities/colors/_bg-colors.css +75 -0
  106. package/src/utilities/colors/_border-colors.css +17 -39
  107. package/src/utilities/colors/_subtle-colors.css +145 -0
  108. package/src/utilities/colors/_text-bg-colors.css +62 -0
  109. package/src/utilities/colors/_text-colors.css +32 -409
  110. package/src/utilities/effects/_focus-ring.css +33 -0
  111. package/src/utilities/effects/_shadows.css +0 -33
  112. package/src/utilities/index.css +16 -0
  113. package/src/utilities/layout/_misc.css +2 -5
  114. package/src/utilities/layout/{_grid.css → _ratio.css} +0 -19
  115. package/src/utilities/modules.css +9 -3
  116. package/src/utilities/sizing/_width.css +8 -0
  117. package/src/utilities/spacing/_gap.css +144 -144
  118. package/src/utilities/spacing/_margin.css +324 -324
  119. package/src/utilities/spacing/_padding.css +324 -324
  120. package/src/utilities/typography/_font-sizes.css +6 -6
  121. package/src/variables/_all.css +2 -20
  122. package/src/variables/_elements.css +29 -28
  123. package/src/variables/_theme.css +336 -0
  124. package/src/variants/_variables.css +24 -0
  125. package/src/variants/intent/_contrast.css +47 -0
  126. package/src/variants/intent/_danger.css +39 -0
  127. package/src/variants/intent/_info.css +39 -0
  128. package/src/variants/intent/_primary.css +39 -0
  129. package/src/variants/intent/_secondary.css +39 -0
  130. package/src/variants/intent/_success.css +39 -0
  131. package/src/variants/intent/_warning.css +39 -0
  132. package/src/variants/modifiers/_ghost.css +164 -0
  133. package/src/variants/modifiers/_striped.css +11 -0
  134. package/src/variants/modifiers/_subtle.css +133 -0
  135. package/src/variants/modules.css +11 -14
  136. package/src/_normalize.css +0 -214
  137. package/src/semantics/_misc.css +0 -3
  138. package/src/utilities/colors/_background-colors.css +0 -248
  139. package/src/variables/_colors.css +0 -355
  140. package/src/variables/_components.css +0 -330
  141. package/src/variables/_icons.css +0 -55
  142. package/src/variables/_layout.css +0 -123
  143. package/src/variants/_contained.css +0 -43
  144. package/src/variants/_contrast.css +0 -61
  145. package/src/variants/_ghost.css +0 -68
  146. package/src/variants/_pane-panel-card.css +0 -54
  147. package/src/variants/_secondary.css +0 -48
  148. package/src/variants/_striped.css +0 -10
@@ -1,6 +1,3 @@
1
- /**
2
- * Basics form elements
3
- */
4
1
  input,
5
2
  optgroup,
6
3
  select,
@@ -79,7 +76,7 @@ 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 {
@@ -112,21 +109,21 @@ input:not([type=checkbox], [type=radio], [type=range], [type=file]),
112
109
  select,
113
110
  textarea {
114
111
  appearance: none;
115
- padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);
112
+ padding: var(--input-spacing-vertical) var(--input-spacing-horizontal);
116
113
  }
117
114
 
118
115
  input,
119
116
  select,
120
117
  textarea {
121
- --color-background: var(--form-bg);
122
- --border-color: var(--form-border-color);
123
- --color-text: var(--form-text-color);
124
- --shadow-lg: none;
125
- border: var(--border-width) solid var(--border-color);
126
- 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);
127
124
  outline: none;
128
125
  background-color: var(--color-background);
129
- box-shadow: var(--shadow-lg);
126
+ box-shadow: var(--shadow);
130
127
  color: var(--color-text);
131
128
  font-weight: var(--font-weight);
132
129
  transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
@@ -139,12 +136,12 @@ input:not([type=submit],
139
136
  [type=radio],
140
137
  [readonly]):is(:active, :focus),
141
138
  :where(select, textarea):not([readonly]):is(:active, :focus) {
142
- --color-background: var(--form-active-bg);
139
+ --color-background: var(--input-fill-active);
143
140
  }
144
141
 
145
142
  input:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus),
146
143
  :where(select, textarea):not([readonly]):is(:active, :focus) {
147
- --border-color: var(--form-active-border);
144
+ --border-color: var(--input-border-focus);
148
145
  }
149
146
 
150
147
  input:not([type=submit],
@@ -154,7 +151,7 @@ input:not([type=submit],
154
151
  [type=file],
155
152
  [readonly]):focus,
156
153
  :where(select, textarea):not([readonly]):focus {
157
- --shadow-lg: 0 0 0 var(--outline-width) var(--form-focus);
154
+ --shadow: 0 0 0 var(--outline-size) var(--input-border-focus);
158
155
  }
159
156
 
160
157
  input:not([type=submit], [type=button], [type=reset])[disabled],
@@ -162,7 +159,7 @@ select[disabled],
162
159
  textarea[disabled],
163
160
  label[aria-disabled=true],
164
161
  :where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) {
165
- opacity: var(--form-disabled-opacity);
162
+ opacity: var(--input-opacity-disabled);
166
163
  pointer-events: none;
167
164
  }
168
165
 
@@ -178,10 +175,10 @@ label[aria-disabled=true] input[disabled] {
178
175
  [type=time],
179
176
  [type=week],
180
177
  [type=range])[aria-invalid]) {
181
- padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);
182
- padding-left: var(--form-element-spacing-horizontal);
183
- padding-inline-start: var(--form-element-spacing-horizontal);
184
- 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);
185
182
  background-position: center right 0.75rem;
186
183
  background-size: 1rem auto;
187
184
  background-repeat: no-repeat;
@@ -208,23 +205,23 @@ label[aria-disabled=true] input[disabled] {
208
205
  }
209
206
 
210
207
  :is(input, select, textarea)[aria-invalid=false] {
211
- --border-color: var(--form-valid-border);
208
+ --border-color: var(--color-success-fill);
212
209
  }
213
210
  :is(input, select, textarea)[aria-invalid=false]:is(:active, :focus) {
214
- --border-color: var(--form-valid-active-border);
211
+ --border-color: var(--color-success-fill-hover);
215
212
  }
216
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) {
217
- --shadow-lg: 0 0 0 var(--outline-width) var(--form-valid-focus);
214
+ --shadow: 0 0 0 var(--outline-size) var(--color-success-fill);
218
215
  }
219
216
 
220
217
  :is(input, select, textarea)[aria-invalid=true] {
221
- --border-color: var(--form-invalid-border);
218
+ --border-color: var(--color-danger-fill);
222
219
  }
223
220
  :is(input, select, textarea)[aria-invalid=true]:is(:active, :focus) {
224
- --border-color: var(--form-invalid-active-border);
221
+ --border-color: var(--color-danger-fill-hover);
225
222
  }
226
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) {
227
- --shadow-lg: 0 0 0 var(--outline-width) var(--form-invalid-focus);
224
+ --shadow: 0 0 0 var(--outline-size) var(--color-danger-fill);
228
225
  }
229
226
 
230
227
  :where([dir=rtl] :is(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false])) {
@@ -236,7 +233,7 @@ input::-webkit-input-placeholder,
236
233
  textarea::placeholder,
237
234
  textarea::-webkit-input-placeholder,
238
235
  select:invalid {
239
- color: var(--form-placeholder-color);
236
+ color: var(--input-placeholder-text);
240
237
  opacity: 1;
241
238
  }
242
239
 
@@ -253,10 +250,10 @@ select {
253
250
  }
254
251
 
255
252
  &:not([multiple], [size]) {
256
- padding-right: calc(var(--form-element-spacing-horizontal) + 1.5rem);
257
- padding-left: var(--form-element-spacing-horizontal);
258
- padding-inline-start: var(--form-element-spacing-horizontal);
259
- 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);
260
257
  background-image: var(--icon-chevron);
261
258
  background-position: center right 0.75rem;
262
259
  background-size: 1rem auto;
@@ -264,8 +261,8 @@ select {
264
261
  }
265
262
 
266
263
  &[multiple] option:checked {
267
- background: var(--form-selected-bg);
268
- color: var(--form-text-color);
264
+ background: var(--input-fill-selected);
265
+ color: var(--input-text);
269
266
  }
270
267
  }
271
268
 
@@ -279,7 +276,7 @@ textarea {
279
276
  }
280
277
 
281
278
  :where(textarea[aria-invalid]) {
282
- --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);
283
280
  background-position: top right 0.75rem;
284
281
  background-size: 1rem var(--icon-height);
285
282
  }
@@ -293,11 +290,11 @@ textarea {
293
290
  }
294
291
 
295
292
  :where(input, select, textarea, fieldset)[aria-invalid=false] + small {
296
- color: rgb(var(--color-success-rgb));
293
+ color: var(--color-success-text);
297
294
  }
298
295
 
299
296
  :where(input, select, textarea, fieldset)[aria-invalid=true] + small {
300
- color: rgb(var(--color-danger-rgb));
297
+ color: var(--color-danger-text);
301
298
  }
302
299
 
303
300
  label > :where(input, select, textarea) {
@@ -1,4 +1,4 @@
1
1
  ins {
2
- color: rgb(var(--color-success-rgb));
2
+ color: var(--color-success-text);
3
3
  text-decoration: none;
4
4
  }
@@ -1,37 +1,41 @@
1
- /**
2
- * Link
3
- */
4
1
  :where(a:not([role=button])),
5
2
  [role=link] {
6
3
  --color-background: transparent;
7
4
  --border-color: transparent;
8
- --color-text: rgb(var(--color-primary-rgb));
9
- --shadow-lg: transparent;
10
- --underline: var(--color-primary-underline);
5
+ --color-text: var(--color-primary-text);
6
+ --shadow: transparent;
11
7
  outline: none;
12
8
  padding: 0;
13
9
  background-color: var(--color-background);
14
10
  color: var(--color-text);
15
- text-decoration: var(--text-decoration);
16
- text-decoration-color: var(--underline);
11
+ text-decoration: var(--a-decoration);
12
+ text-decoration-color: oklch(from var(--color-text) l c h / 0.3);
17
13
  text-underline-offset: 0.125em;
18
- transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
14
+ transition: background-color var(--transition), color var(--transition), text-decoration-color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
19
15
 
20
- &:is(:hover, :active, :focus) {
16
+ &:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
21
17
  --color-background: transparent;
22
18
  --border-color: transparent;
23
- --color-text: rgb(var(--color-primary-rgb));
24
- --shadow-lg: 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);
25
22
  }
26
23
 
27
- &:is([aria-current]:not([aria-current=false]), :hover, :active, :focus) {
28
- --color-text: var(--color-primary-hover);
29
- --underline: var(--color-primary-hover-underline);
30
- --text-decoration: underline;
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);
31
27
  }
32
28
 
33
29
  &:focus-visible {
34
- box-shadow: 0 0 0 var(--outline-width) var(--color-primary-focus);
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;
35
39
  }
36
40
  }
37
41
 
@@ -51,7 +55,7 @@ aside {
51
55
  nav {
52
56
  a:not([role=button]), [role=link] {
53
57
  &:not(:hover) {
54
- text-decoration: none;
58
+ --a-decoration: none;
55
59
  }
56
60
  }
57
61
  }
@@ -1,7 +1,3 @@
1
- /**
2
- * Main fills up the available width, and has a height defined by its content.
3
- * Stacks its children vertically.
4
- */
5
1
  main {
6
2
  width: 100%;
7
3
  }
@@ -1,6 +1,6 @@
1
1
  mark {
2
2
  padding: 0.125rem 0.25rem;
3
- background-color: var(--color-mark-bg);
4
- color: var(--color-mark-text);
3
+ background-color: var(--color-warning-fill);
4
+ color: var(--color-warning-on-fill);
5
5
  vertical-align: baseline;
6
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: calc(var(--nav-link-spacing) * 1.5);
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) * 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) * 3);
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: calc(var(--nav-link-spacing) * 1.5);
47
+ gap: calc(var(--nav-link-gap) * 1.5);
51
48
  list-style: none;
52
49
  margin-bottom: 0 !important;
53
50
  padding: 0;
@@ -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 {
@@ -1,6 +1,3 @@
1
- /**
2
- * Section
3
- */
4
1
  section {
5
2
  width: 100%;
6
3
  margin-bottom: var(--spacing);
@@ -0,0 +1,3 @@
1
+ small {
2
+ font-size: var(--font-size);
3
+ }
@@ -1,8 +1,6 @@
1
- /**
2
- * Table
3
- */
4
1
  table {
5
2
  border-collapse: collapse;
3
+ border-color: currentcolor; /* modern-normalize */
6
4
  border-spacing: 0;
7
5
  color: var(--color-text);
8
6
  font-style: normal;
@@ -16,7 +14,7 @@ table {
16
14
  th,
17
15
  td {
18
16
  padding: calc(var(--spacing) / 2) var(--spacing);
19
- border-bottom: var(--border-width) solid var(--table-border-color);
17
+ border-bottom: var(--border-size) solid var(--color-border);
20
18
  background-color: var(--color-background);
21
19
  color: var(--color-text);
22
20
  font-weight: var(--font-weight);
@@ -27,7 +25,7 @@ td {
27
25
  tfoot {
28
26
  & th,
29
27
  & td {
30
- border-top: var(--border-width) solid var(--table-border-color);
28
+ border-top: var(--border-size) solid var(--color-border);
31
29
  border-bottom: 0;
32
30
  }
33
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
  }
@@ -1,26 +1,23 @@
1
- /**
2
- * Input type file
3
- */
4
1
  [type=file] {
5
2
  --color-text: var(--color-text-muted);
6
- margin-left: calc(var(--outline-width) * -1);
7
- padding: calc(var(--form-element-spacing-vertical) * 0.5) 0;
8
- padding-left: var(--outline-width);
3
+ margin-left: calc(var(--outline-size) * -1);
4
+ padding: calc(var(--input-spacing-vertical) * 0.5) 0;
5
+ padding-left: var(--outline-size);
9
6
  border: 0;
10
7
  border-radius: 0;
11
8
  background: none;
12
9
 
13
10
  &::file-selector-button {
14
11
  margin-right: calc(var(--spacing) / 2);
15
- padding: calc(var(--form-element-spacing-vertical) * 0.5) var(--form-element-spacing-horizontal);
12
+ padding: calc(var(--input-spacing-vertical) * 0.5) var(--input-spacing-horizontal);
16
13
  }
17
14
 
18
15
  &:is(:hover, :active, :focus)::file-selector-button {
19
- --color-background: var(--color-secondary-hover-bg);
20
- --border-color: var(--color-secondary-hover-border);
16
+ --color-background: var(--color-secondary-fill-hover);
17
+ --border-color: var(--color-secondary-fill-hover);
21
18
  }
22
19
 
23
20
  &:focus::file-selector-button {
24
- --shadow-lg: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--color-secondary-focus);
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);
25
22
  }
26
23
  }
@@ -1,6 +1,3 @@
1
- /**
2
- * Input type range
3
- */
4
1
  [type=range] {
5
2
  -webkit-appearance: none;
6
3
  -moz-appearance: none;
@@ -12,24 +9,24 @@
12
9
  &::-webkit-slider-runnable-track {
13
10
  width: 100%;
14
11
  height: 0.375rem;
15
- border-radius: var(--border-radius);
16
- background-color: var(--range-border-color);
12
+ border-radius: var(--radius);
13
+ background-color: var(--range-track-border);
17
14
  transition: background-color var(--transition), box-shadow var(--transition);
18
15
  }
19
16
 
20
17
  &::-moz-range-track {
21
18
  width: 100%;
22
19
  height: 0.375rem;
23
- border-radius: var(--border-radius);
24
- background-color: var(--range-border-color);
20
+ border-radius: var(--radius);
21
+ background-color: var(--range-track-border);
25
22
  transition: background-color var(--transition), box-shadow var(--transition);
26
23
  }
27
24
 
28
25
  &::-ms-track {
29
26
  width: 100%;
30
27
  height: 0.375rem;
31
- border-radius: var(--border-radius);
32
- background-color: var(--range-border-color);
28
+ border-radius: var(--radius);
29
+ background-color: var(--range-track-border);
33
30
  transition: background-color var(--transition), box-shadow var(--transition);
34
31
  }
35
32
 
@@ -40,7 +37,7 @@
40
37
  margin-top: -0.4375rem;
41
38
  border: 2px solid var(--range-thumb-border);
42
39
  border-radius: 50%;
43
- background-color: var(--range-thumb-color);
40
+ background-color: var(--range-thumb-fill);
44
41
  cursor: pointer;
45
42
  transition: background-color var(--transition), transform var(--transition);
46
43
  }
@@ -52,7 +49,7 @@
52
49
  margin-top: -0.4375rem;
53
50
  border: 2px solid var(--range-thumb-border);
54
51
  border-radius: 50%;
55
- background-color: var(--range-thumb-color);
52
+ background-color: var(--range-thumb-fill);
56
53
  cursor: pointer;
57
54
  transition: background-color var(--transition), transform var(--transition);
58
55
  }
@@ -64,14 +61,14 @@
64
61
  margin-top: -0.4375rem;
65
62
  border: 2px solid var(--range-thumb-border);
66
63
  border-radius: 50%;
67
- background-color: var(--range-thumb-color);
64
+ background-color: var(--range-thumb-fill);
68
65
  cursor: pointer;
69
66
  transition: background-color var(--transition), transform var(--transition);
70
67
  }
71
68
 
72
69
  &:active, &:focus-within {
73
- --range-border-color: var(--range-active-border);
74
- --range-thumb-color: var(--range-thumb-active);
70
+ --range-track-border: var(--range-track-border-active);
71
+ --range-thumb-fill: var(--range-thumb-fill-active);
75
72
  }
76
73
 
77
74
  &:active {