@semanticus/semanticus-css 2.2.0 → 3.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 (150) hide show
  1. package/README.md +23 -22
  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 +4 -3
  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 +34 -41
  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 +65 -35
  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
@@ -1,124 +0,0 @@
1
- button {
2
- margin: 0;
3
- overflow: visible;
4
- font-family: inherit;
5
- text-transform: none;
6
- }
7
-
8
- button,
9
- [type=submit],
10
- [type=reset],
11
- [type=button] {
12
- -webkit-appearance: button;
13
- }
14
-
15
- button,
16
- [type=submit],
17
- [type=reset],
18
- [type=button],
19
- [type=file]::file-selector-button,
20
- [role=button] {
21
- --color-background: var(--color-primary-fill);
22
- --border-color: var(--color-primary-fill);
23
- --color-text: var(--color-primary-on-fill);
24
- --shadow: var(--button-shadow, 0 0 0 rgba(0, 0, 0, 0));
25
- padding: var(--input-spacing-vertical) var(--input-spacing-horizontal);
26
- border: var(--border-size) solid var(--border-color);
27
- border-radius: var(--radius);
28
- outline: none;
29
- background-color: var(--color-background);
30
- box-shadow: var(--shadow);
31
- color: var(--color-text);
32
- font-weight: var(--font-weight);
33
- font-size: 1rem;
34
- line-height: var(--line-height);
35
- text-align: center;
36
- text-decoration: none;
37
- cursor: pointer;
38
- user-select: none;
39
- transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
40
- }
41
-
42
- button:is([aria-current]:not([aria-current=false])), button:is(:hover, :active, :focus),
43
- [type=submit]:is([aria-current]:not([aria-current=false])),
44
- [type=submit]:is(:hover, :active, :focus),
45
- [type=reset]:is([aria-current]:not([aria-current=false])),
46
- [type=reset]:is(:hover, :active, :focus),
47
- [type=button]:is([aria-current]:not([aria-current=false])),
48
- [type=button]:is(:hover, :active, :focus),
49
- [type=file]::file-selector-button:is(:hover, :active, :focus),
50
- [role=button]:is([aria-current]:not([aria-current=false])),
51
- [role=button]:is(:hover, :active, :focus) {
52
- --color-background: var(--color-primary-fill-hover);
53
- --border-color: var(--color-primary-fill-hover);
54
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0));
55
- --color-text: var(--color-primary-on-fill);
56
- }
57
-
58
- button:focus, button:is([aria-current]:not([aria-current=false])):focus,
59
- [type=submit]:focus,
60
- [type=submit]:is([aria-current]:not([aria-current=false])):focus,
61
- [type=reset]:focus,
62
- [type=reset]:is([aria-current]:not([aria-current=false])):focus,
63
- [type=button]:focus,
64
- [type=button]:is([aria-current]:not([aria-current=false])):focus,
65
- [type=file]::file-selector-button:focus,
66
- [role=button]:focus,
67
- [role=button]:is([aria-current]:not([aria-current=false])):focus {
68
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-primary-focus-ring);
69
- }
70
-
71
- [type=submit],
72
- [type=reset],
73
- [type=button] {
74
- margin-bottom: var(--spacing);
75
- }
76
-
77
- [type=reset],
78
- [type=file]::file-selector-button {
79
- --color-background: var(--color-secondary-fill);
80
- --border-color: var(--color-secondary-fill);
81
- --color-text: var(--color-secondary-on-fill);
82
- cursor: pointer;
83
- }
84
-
85
- [type=reset]:is([aria-current]:not([aria-current=false]), :hover, :active, :focus),
86
- [type=file]::file-selector-button:is(:hover, :active, :focus) {
87
- --color-background: var(--color-secondary-fill-hover);
88
- --border-color: var(--color-secondary-fill-hover);
89
- --color-text: var(--color-secondary-on-fill);
90
- }
91
-
92
- [type=reset]:focus,
93
- [type=reset]:is([aria-current]:not([aria-current=false])):focus,
94
- [type=file]::file-selector-button:focus {
95
- --shadow: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-size) var(--color-secondary-focus-ring);
96
- }
97
-
98
- :is(button, [type=submit], [type=reset], [type=button], [role=button])[disabled],
99
- fieldset[disabled] :is(button, [type=submit], [type=button], [type=reset], [role=button]) {
100
- opacity: 0.5;
101
- pointer-events: none;
102
- }
103
-
104
- aside {
105
- nav {
106
- :where(button, [role=button], [type=button], input:not([type=checkbox], [type=radio], [type=range], [type=file]), select) {
107
- display: block !important;
108
- width: 100%;
109
- }
110
- }
111
- }
112
-
113
- nav {
114
- :where(button, [role=button], [type=button], input:not([type=checkbox], [type=radio], [type=range], [type=file]), select) {
115
- --input-spacing-vertical: calc(var(--nav-link-gap) - var(--border-size) * 2);
116
- --input-spacing-horizontal: var(--nav-link-gap);
117
-
118
- height: auto;
119
- margin-right: inherit;
120
- margin-bottom: 0;
121
- margin-left: inherit;
122
- padding: var(--input-spacing-vertical) var(--input-spacing-horizontal);
123
- }
124
- }
@@ -1,302 +0,0 @@
1
- input,
2
- optgroup,
3
- select,
4
- textarea {
5
- margin: 0;
6
- font-size: 1rem;
7
- line-height: var(--line-height);
8
- font-family: inherit;
9
- letter-spacing: inherit;
10
- }
11
-
12
- input {
13
- overflow: visible;
14
- }
15
-
16
- select {
17
- text-transform: none;
18
- }
19
-
20
- legend {
21
- max-width: 100%;
22
- padding: 0;
23
- color: inherit;
24
- white-space: normal;
25
- }
26
-
27
- textarea {
28
- overflow: auto;
29
- }
30
-
31
- [type=checkbox],
32
- [type=radio] {
33
- padding: 0;
34
- }
35
-
36
- ::-webkit-inner-spin-button,
37
- ::-webkit-outer-spin-button {
38
- height: auto;
39
- }
40
-
41
- [type=search] {
42
- -webkit-appearance: textfield;
43
- outline-offset: -2px;
44
-
45
- &::-webkit-search-decoration {
46
- -webkit-appearance: none;
47
- }
48
- }
49
-
50
- ::-webkit-file-upload-button {
51
- -webkit-appearance: button;
52
- font: inherit;
53
- }
54
-
55
- ::-moz-focus-inner {
56
- padding: 0;
57
- border-style: none;
58
- }
59
-
60
- :-moz-focusring {
61
- outline: none;
62
- }
63
-
64
- :-moz-ui-invalid {
65
- box-shadow: none;
66
- }
67
-
68
- ::-ms-expand {
69
- display: none;
70
- }
71
-
72
- [type=file],
73
- [type=range] {
74
- padding: 0;
75
- border-width: 0;
76
- }
77
-
78
- input:not([type=checkbox], [type=radio], [type=range]) {
79
- height: calc(1rem * var(--line-height) + var(--input-spacing-vertical) * 2 + var(--border-size) * 2);
80
- }
81
-
82
- fieldset {
83
- width: 100%;
84
- margin: 0 ;
85
- padding: 0;
86
- border: 0;
87
- }
88
-
89
- label,
90
- fieldset legend {
91
- display: block;
92
- margin-bottom: calc(var(--spacing) * 0.375);
93
- color: var(--color-text);
94
- font-weight: var(--form-label-font-weight, var(--font-weight));
95
- }
96
-
97
- fieldset legend {
98
- margin-bottom: calc(var(--spacing) * 0.5);
99
- }
100
-
101
- input:not([type=checkbox], [type=radio]),
102
- button[type=submit],
103
- select,
104
- textarea {
105
- width: 100%;
106
- }
107
-
108
- input:not([type=checkbox], [type=radio], [type=range], [type=file]),
109
- select,
110
- textarea {
111
- appearance: none;
112
- padding: var(--input-spacing-vertical) var(--input-spacing-horizontal);
113
- }
114
-
115
- input,
116
- select,
117
- textarea {
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);
124
- outline: none;
125
- background-color: var(--color-background);
126
- box-shadow: var(--shadow);
127
- color: var(--color-text);
128
- font-weight: var(--font-weight);
129
- transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
130
- }
131
-
132
- input:not([type=submit],
133
- [type=button],
134
- [type=reset],
135
- [type=checkbox],
136
- [type=radio],
137
- [readonly]):is(:active, :focus),
138
- :where(select, textarea):not([readonly]):is(:active, :focus) {
139
- --color-background: var(--input-fill-active);
140
- }
141
-
142
- input:not([type=submit], [type=button], [type=reset], [role=switch], [readonly]):is(:active, :focus),
143
- :where(select, textarea):not([readonly]):is(:active, :focus) {
144
- --border-color: var(--input-border-focus);
145
- }
146
-
147
- input:not([type=submit],
148
- [type=button],
149
- [type=reset],
150
- [type=range],
151
- [type=file],
152
- [readonly]):focus,
153
- :where(select, textarea):not([readonly]):focus {
154
- --shadow: 0 0 0 var(--outline-size) var(--input-border-focus);
155
- }
156
-
157
- input:not([type=submit], [type=button], [type=reset])[disabled],
158
- select[disabled],
159
- textarea[disabled],
160
- label[aria-disabled=true],
161
- :where(fieldset[disabled]) :is(input:not([type=submit], [type=button], [type=reset]), select, textarea) {
162
- opacity: var(--input-opacity-disabled);
163
- pointer-events: none;
164
- }
165
-
166
- label[aria-disabled=true] input[disabled] {
167
- opacity: 1;
168
- }
169
-
170
- :where(:is(input, select, textarea):not([type=checkbox],
171
- [type=radio],
172
- [type=date],
173
- [type=datetime-local],
174
- [type=month],
175
- [type=time],
176
- [type=week],
177
- [type=range])[aria-invalid]) {
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);
182
- background-position: center right 0.75rem;
183
- background-size: 1rem auto;
184
- background-repeat: no-repeat;
185
- }
186
- :where(input:not([type=checkbox],
187
- [type=radio],
188
- [type=date],
189
- [type=datetime-local],
190
- [type=month],
191
- [type=time],
192
- [type=week],
193
- [type=range])[aria-invalid=false], textarea[aria-invalid=false]) {
194
- background-image: var(--icon-valid);
195
- }
196
- :where(input:not([type=checkbox],
197
- [type=radio],
198
- [type=date],
199
- [type=datetime-local],
200
- [type=month],
201
- [type=time],
202
- [type=week],
203
- [type=range])[aria-invalid=true], textarea[aria-invalid=true]) {
204
- background-image: var(--icon-invalid);
205
- }
206
-
207
- :is(input, select, textarea)[aria-invalid=false] {
208
- --border-color: var(--color-success-fill);
209
- }
210
- :is(input, select, textarea)[aria-invalid=false]:is(:active, :focus) {
211
- --border-color: var(--color-success-fill-hover);
212
- }
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) {
214
- --shadow: 0 0 0 var(--outline-size) var(--color-success-fill);
215
- }
216
-
217
- :is(input, select, textarea)[aria-invalid=true] {
218
- --border-color: var(--color-danger-fill);
219
- }
220
- :is(input, select, textarea)[aria-invalid=true]:is(:active, :focus) {
221
- --border-color: var(--color-danger-fill-hover);
222
- }
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) {
224
- --shadow: 0 0 0 var(--outline-size) var(--color-danger-fill);
225
- }
226
-
227
- :where([dir=rtl] :is(input, select, textarea):not([type=checkbox], [type=radio]):is([aria-invalid], [aria-invalid=true], [aria-invalid=false])) {
228
- background-position: center left 0.75rem;
229
- }
230
-
231
- input::placeholder,
232
- input::-webkit-input-placeholder,
233
- textarea::placeholder,
234
- textarea::-webkit-input-placeholder,
235
- select:invalid {
236
- color: var(--input-placeholder-text);
237
- opacity: 1;
238
- }
239
-
240
- input:not([type=checkbox], [type=radio]),
241
- select,
242
- textarea {
243
- margin-bottom: var(--spacing);
244
- }
245
-
246
- select {
247
- &::-ms-expand {
248
- border: 0;
249
- background-color: transparent;
250
- }
251
-
252
- &:not([multiple], [size]) {
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);
257
- background-image: var(--icon-chevron);
258
- background-position: center right 0.75rem;
259
- background-size: 1rem auto;
260
- background-repeat: no-repeat;
261
- }
262
-
263
- &[multiple] option:checked {
264
- background: var(--input-fill-selected);
265
- color: var(--input-text);
266
- }
267
- }
268
-
269
- [dir=rtl] select:not([multiple], [size]) {
270
- background-position: center left 0.75rem;
271
- }
272
-
273
- textarea {
274
- display: block;
275
- resize: vertical;
276
- }
277
-
278
- :where(textarea[aria-invalid]) {
279
- --icon-height: calc(1rem * var(--line-height) + var(--input-spacing-vertical) * 2 + var(--border-size) * 2);
280
- background-position: top right 0.75rem;
281
- background-size: 1rem var(--icon-height);
282
- }
283
-
284
- :where(input, select, textarea, fieldset) + small {
285
- display: block;
286
- width: 100%;
287
- margin-top: calc(var(--spacing) * -0.75);
288
- margin-bottom: var(--spacing);
289
- color: var(--color-text-muted);
290
- }
291
-
292
- :where(input, select, textarea, fieldset)[aria-invalid=false] + small {
293
- color: var(--color-success-text);
294
- }
295
-
296
- :where(input, select, textarea, fieldset)[aria-invalid=true] + small {
297
- color: var(--color-danger-text);
298
- }
299
-
300
- label > :where(input, select, textarea) {
301
- margin-top: calc(var(--spacing) * 0.25);
302
- }
@@ -1,3 +0,0 @@
1
- main {
2
- width: 100%;
3
- }
@@ -1,139 +0,0 @@
1
- label:has([type=checkbox], [type=radio]) {
2
- width: fit-content;
3
- cursor: pointer;
4
- }
5
-
6
- [type=checkbox],
7
- [type=radio] {
8
- -webkit-appearance: none;
9
- -moz-appearance: none;
10
- appearance: none;
11
- width: 1.25em;
12
- height: 1.25em;
13
- margin-top: -0.125em;
14
- margin-inline-end: 0.5em;
15
- border-width: var(--border-size);
16
- vertical-align: middle;
17
- cursor: pointer;
18
-
19
- &::-ms-check {
20
- display: none;
21
- }
22
-
23
- &:checked, &:checked:active, &:checked:focus {
24
- --color-background: var(--color-primary-fill);
25
- --border-color: var(--color-primary-fill);
26
- background-image: var(--icon-checkbox);
27
- background-position: center;
28
- background-size: 0.75em auto;
29
- background-repeat: no-repeat;
30
- }
31
-
32
- & ~ label {
33
- display: inline-block;
34
- margin-bottom: 0;
35
- cursor: pointer;
36
-
37
- &:not(:last-of-type) {
38
- margin-inline-end: 1em;
39
- }
40
- }
41
- }
42
-
43
- [type=checkbox] {
44
- &:indeterminate {
45
- --color-background: var(--color-primary-fill);
46
- --border-color: var(--color-primary-fill);
47
- background-image: var(--icon-minus);
48
- background-position: center;
49
- background-size: 0.75em auto;
50
- background-repeat: no-repeat;
51
- }
52
- }
53
-
54
- [type=radio] {
55
- border-radius: 50%;
56
-
57
- &:checked, &:checked:active, &:checked:focus {
58
- --color-background: var(--color-primary-on-fill);
59
- border-width: 0.35em;
60
- background-image: none;
61
- }
62
- }
63
-
64
- [type=checkbox][role=switch] {
65
- --color-background: var(--switch-fill);
66
- --color-text: var(--switch-thumb-fill);
67
- width: 2.25em;
68
- height: 1.25em;
69
- border: var(--border-size) solid var(--border-color);
70
- border-radius: 1.25em;
71
- background-color: var(--color-background);
72
- line-height: 1.25em;
73
-
74
- &:not([aria-invalid]) {
75
- --border-color: var(--switch-fill);
76
- }
77
-
78
- &:before {
79
- display: block;
80
- aspect-ratio: 1;
81
- height: 100%;
82
- border-radius: 50%;
83
- background-color: var(--color-text);
84
- box-shadow: var(--switch-thumb-glow);
85
- content: "";
86
- transition: margin 0.1s ease-in-out;
87
- }
88
-
89
- &:focus {
90
- --color-background: var(--switch-fill);
91
- --border-color: var(--switch-fill);
92
- }
93
-
94
- &:checked {
95
- --color-background: var(--switch-fill-checked);
96
- --border-color: var(--switch-fill-checked);
97
- background-image: none;
98
-
99
- &::before {
100
- margin-inline-start: calc(2.25em - 1.25em);
101
- }
102
- }
103
-
104
- &[disabled] {
105
- --color-background: var(--border-color);
106
- }
107
- }
108
-
109
- [type=checkbox][aria-invalid=false]:checked, [type=checkbox][aria-invalid=false]:checked:active, [type=checkbox][aria-invalid=false]:checked:focus,
110
- [type=checkbox][role=switch][aria-invalid=false]:checked,
111
- [type=checkbox][role=switch][aria-invalid=false]:checked:active,
112
- [type=checkbox][role=switch][aria-invalid=false]:checked:focus {
113
- --color-background: var(--color-success-fill);
114
- }
115
- [type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true],
116
- [type=checkbox][role=switch]:checked[aria-invalid=true],
117
- [type=checkbox][role=switch]:checked:active[aria-invalid=true],
118
- [type=checkbox][role=switch]:checked:focus[aria-invalid=true] {
119
- --color-background: var(--color-danger-fill);
120
- }
121
-
122
- [type=checkbox][aria-invalid=false]:checked, [type=checkbox][aria-invalid=false]:checked:active, [type=checkbox][aria-invalid=false]:checked:focus,
123
- [type=radio][aria-invalid=false]:checked,
124
- [type=radio][aria-invalid=false]:checked:active,
125
- [type=radio][aria-invalid=false]:checked:focus,
126
- [type=checkbox][role=switch][aria-invalid=false]:checked,
127
- [type=checkbox][role=switch][aria-invalid=false]:checked:active,
128
- [type=checkbox][role=switch][aria-invalid=false]:checked:focus {
129
- --border-color: var(--color-success-fill);
130
- }
131
- [type=checkbox]:checked[aria-invalid=true], [type=checkbox]:checked:active[aria-invalid=true], [type=checkbox]:checked:focus[aria-invalid=true],
132
- [type=radio]:checked[aria-invalid=true],
133
- [type=radio]:checked:active[aria-invalid=true],
134
- [type=radio]:checked:focus[aria-invalid=true],
135
- [type=checkbox][role=switch]:checked[aria-invalid=true],
136
- [type=checkbox][role=switch]:checked:active[aria-invalid=true],
137
- [type=checkbox][role=switch]:checked:focus[aria-invalid=true] {
138
- --border-color: var(--color-danger-fill);
139
- }
@@ -1,37 +0,0 @@
1
- :where(input:not([type=checkbox], [type=radio], [type=range], [type=file]):is([type=date], [type=datetime-local], [type=month], [type=time], [type=week])) {
2
- --icon-position: 0.75rem;
3
- --icon-width: 1rem;
4
- padding-right: calc(var(--icon-width) + var(--icon-position));
5
- background-image: var(--icon-date);
6
- background-position: center right var(--icon-position);
7
- background-size: var(--icon-width) auto;
8
- background-repeat: no-repeat;
9
- }
10
- :where(input:not([type=checkbox], [type=radio], [type=range], [type=file])[type=time]) {
11
- background-image: var(--icon-time);
12
- }
13
-
14
- [type=date]::-webkit-calendar-picker-indicator,
15
- [type=datetime-local]::-webkit-calendar-picker-indicator,
16
- [type=month]::-webkit-calendar-picker-indicator,
17
- [type=time]::-webkit-calendar-picker-indicator,
18
- [type=week]::-webkit-calendar-picker-indicator {
19
- width: var(--icon-width);
20
- margin-right: calc(var(--icon-width) * -1);
21
- margin-left: var(--icon-position);
22
- opacity: 0;
23
- }
24
-
25
- @-moz-document url-prefix() {
26
- [type=date],
27
- [type=datetime-local],
28
- [type=month],
29
- [type=time],
30
- [type=week] {
31
- padding-right: var(--input-spacing-horizontal);
32
- background-image: none;
33
- }
34
- }
35
- [dir=rtl] :is([type=date], [type=datetime-local], [type=month], [type=time], [type=week]) {
36
- text-align: right;
37
- }
@@ -1,23 +0,0 @@
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
- }
@@ -1,87 +0,0 @@
1
- [type=range] {
2
- -webkit-appearance: none;
3
- -moz-appearance: none;
4
- appearance: none;
5
- width: 100%;
6
- height: 1.25rem;
7
- background: none;
8
-
9
- &::-webkit-slider-runnable-track {
10
- width: 100%;
11
- height: 0.375rem;
12
- border-radius: var(--radius);
13
- background-color: var(--range-track-border);
14
- transition: background-color var(--transition), box-shadow var(--transition);
15
- }
16
-
17
- &::-moz-range-track {
18
- width: 100%;
19
- height: 0.375rem;
20
- border-radius: var(--radius);
21
- background-color: var(--range-track-border);
22
- transition: background-color var(--transition), box-shadow var(--transition);
23
- }
24
-
25
- &::-ms-track {
26
- width: 100%;
27
- height: 0.375rem;
28
- border-radius: var(--radius);
29
- background-color: var(--range-track-border);
30
- transition: background-color var(--transition), box-shadow var(--transition);
31
- }
32
-
33
- &::-webkit-slider-thumb {
34
- -webkit-appearance: none;
35
- width: 1.25rem;
36
- height: 1.25rem;
37
- margin-top: -0.4375rem;
38
- border: 2px solid var(--range-thumb-border);
39
- border-radius: 50%;
40
- background-color: var(--range-thumb-fill);
41
- cursor: pointer;
42
- transition: background-color var(--transition), transform var(--transition);
43
- }
44
-
45
- &::-moz-range-thumb {
46
- -webkit-appearance: none;
47
- width: 1.25rem;
48
- height: 1.25rem;
49
- margin-top: -0.4375rem;
50
- border: 2px solid var(--range-thumb-border);
51
- border-radius: 50%;
52
- background-color: var(--range-thumb-fill);
53
- cursor: pointer;
54
- transition: background-color var(--transition), transform var(--transition);
55
- }
56
-
57
- &::-ms-thumb {
58
- -webkit-appearance: none;
59
- width: 1.25rem;
60
- height: 1.25rem;
61
- margin-top: -0.4375rem;
62
- border: 2px solid var(--range-thumb-border);
63
- border-radius: 50%;
64
- background-color: var(--range-thumb-fill);
65
- cursor: pointer;
66
- transition: background-color var(--transition), transform var(--transition);
67
- }
68
-
69
- &:active, &:focus-within {
70
- --range-track-border: var(--range-track-border-active);
71
- --range-thumb-fill: var(--range-thumb-fill-active);
72
- }
73
-
74
- &:active {
75
- &::-webkit-slider-thumb {
76
- transform: scale(1.25);
77
- }
78
-
79
- &::-moz-range-thumb {
80
- transform: scale(1.25);
81
- }
82
-
83
- &::-ms-thumb {
84
- transform: scale(1.25);
85
- }
86
- }
87
- }