beercss 3.13.2 → 4.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 (159) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +331 -328
  3. package/custom-element/index.d.ts +18 -18
  4. package/custom-element/index.js +7 -7
  5. package/dist/cdn/arch.svg +3 -3
  6. package/dist/cdn/arrow.svg +3 -3
  7. package/dist/cdn/beer.css +5904 -4792
  8. package/dist/cdn/beer.custom-element.js +37 -38
  9. package/dist/cdn/beer.custom-element.min.js +1 -1
  10. package/dist/cdn/beer.js +636 -635
  11. package/dist/cdn/beer.min.css +1 -1
  12. package/dist/cdn/beer.min.js +1 -1
  13. package/dist/cdn/beer.scoped.css +5909 -4793
  14. package/dist/cdn/beer.scoped.min.css +2 -1
  15. package/dist/cdn/boom.svg +3 -3
  16. package/dist/cdn/bun.svg +3 -3
  17. package/dist/cdn/burst.svg +3 -3
  18. package/dist/cdn/circle.svg +3 -3
  19. package/dist/cdn/clamshell.svg +3 -3
  20. package/dist/cdn/diamond.svg +3 -3
  21. package/dist/cdn/fan.svg +3 -3
  22. package/dist/cdn/flower.svg +3 -3
  23. package/dist/cdn/gem.svg +3 -3
  24. package/dist/cdn/ghost-ish.svg +3 -3
  25. package/dist/cdn/heart.svg +3 -3
  26. package/dist/cdn/leaf-clover4.svg +3 -3
  27. package/dist/cdn/leaf-clover8.svg +3 -3
  28. package/dist/cdn/loading-indicator.svg +18 -18
  29. package/dist/cdn/oval.svg +3 -3
  30. package/dist/cdn/pentagon.svg +3 -3
  31. package/dist/cdn/pill.svg +3 -3
  32. package/dist/cdn/pixel-circle.svg +3 -3
  33. package/dist/cdn/pixel-triangle.svg +3 -3
  34. package/dist/cdn/puffy-diamond.svg +3 -3
  35. package/dist/cdn/puffy.svg +3 -3
  36. package/dist/cdn/semicircle.svg +3 -3
  37. package/dist/cdn/sided-cookie12.svg +3 -3
  38. package/dist/cdn/sided-cookie4.svg +3 -3
  39. package/dist/cdn/sided-cookie6.svg +3 -3
  40. package/dist/cdn/sided-cookie7.svg +3 -3
  41. package/dist/cdn/sided-cookie9.svg +3 -3
  42. package/dist/cdn/slanted.svg +3 -3
  43. package/dist/cdn/soft-boom.svg +3 -3
  44. package/dist/cdn/soft-burst.svg +3 -3
  45. package/dist/cdn/square.svg +3 -3
  46. package/dist/cdn/sunny.svg +3 -3
  47. package/dist/cdn/triangle.svg +3 -3
  48. package/dist/cdn/very-sunny.svg +3 -3
  49. package/dist/cdn/wavy-circle.svg +3 -3
  50. package/dist/cdn/wavy.svg +4 -4
  51. package/index.d.ts +18 -18
  52. package/index.js +6 -6
  53. package/package.json +76 -76
  54. package/scoped/index.d.ts +18 -18
  55. package/scoped/index.js +6 -6
  56. package/src/cdn/beer.css +54 -52
  57. package/src/cdn/beer.ts +120 -120
  58. package/src/cdn/customElement.js +37 -38
  59. package/src/cdn/elements/badges.css +74 -74
  60. package/src/cdn/elements/bars.css +91 -91
  61. package/src/cdn/elements/buttons.css +105 -106
  62. package/src/cdn/elements/cards.css +26 -26
  63. package/src/cdn/elements/chips.css +37 -38
  64. package/src/cdn/elements/dialogs.css +145 -151
  65. package/src/cdn/elements/dialogs.ts +69 -69
  66. package/src/cdn/elements/dividers.css +48 -48
  67. package/src/cdn/elements/expansions.css +17 -10
  68. package/src/cdn/elements/fields.css +438 -439
  69. package/src/cdn/elements/fields.ts +165 -165
  70. package/src/cdn/elements/grids.css +171 -171
  71. package/src/cdn/elements/icons.css +77 -77
  72. package/src/cdn/elements/layouts.css +35 -35
  73. package/src/cdn/elements/lists.css +75 -71
  74. package/src/cdn/elements/mainLayouts.css +57 -57
  75. package/src/cdn/elements/media.css +112 -112
  76. package/src/cdn/elements/menus.css +294 -294
  77. package/src/cdn/elements/menus.ts +40 -40
  78. package/src/cdn/elements/navigations.css +461 -462
  79. package/src/cdn/elements/overlays.css +31 -31
  80. package/src/cdn/elements/pages.css +41 -41
  81. package/src/cdn/elements/pages.ts +6 -6
  82. package/src/cdn/elements/progress.css +207 -207
  83. package/src/cdn/elements/progress.ts +36 -34
  84. package/src/cdn/elements/selections.css +256 -256
  85. package/src/cdn/elements/shapes.css +258 -258
  86. package/src/cdn/elements/sliders.css +353 -357
  87. package/src/cdn/elements/sliders.ts +74 -74
  88. package/src/cdn/elements/snackbars.css +47 -47
  89. package/src/cdn/elements/snackbars.ts +26 -26
  90. package/src/cdn/elements/tables.css +65 -65
  91. package/src/cdn/elements/tabs.css +52 -52
  92. package/src/cdn/elements/tooltips.css +131 -131
  93. package/src/cdn/helpers/alignments.css +29 -29
  94. package/src/cdn/helpers/blurs.css +21 -21
  95. package/src/cdn/helpers/colors.css +930 -930
  96. package/src/cdn/helpers/directions.css +28 -28
  97. package/src/cdn/helpers/elevates.css +16 -16
  98. package/src/cdn/helpers/forms.css +75 -75
  99. package/src/cdn/helpers/margins.css +49 -49
  100. package/src/cdn/helpers/opacities.css +19 -19
  101. package/src/cdn/helpers/paddings.css +45 -45
  102. package/src/cdn/helpers/positions.css +45 -45
  103. package/src/cdn/helpers/responsive.css +22 -22
  104. package/src/cdn/helpers/ripples.css +33 -33
  105. package/src/cdn/helpers/ripples.ts +30 -30
  106. package/src/cdn/helpers/scrolls.css +7 -8
  107. package/src/cdn/helpers/shadows.css +23 -23
  108. package/src/cdn/helpers/sizes.css +45 -45
  109. package/src/cdn/helpers/spaces.css +19 -19
  110. package/src/cdn/helpers/typography.css +226 -225
  111. package/src/cdn/helpers/waves.css +43 -43
  112. package/src/cdn/helpers/zoom.css +19 -19
  113. package/src/cdn/interfaces.ts +3 -3
  114. package/src/cdn/settings/dark.css +38 -38
  115. package/src/cdn/settings/fonts.css +35 -35
  116. package/src/cdn/settings/globals.css +55 -18
  117. package/src/cdn/settings/light.css +39 -39
  118. package/src/cdn/{helpers → settings}/reset.css +76 -94
  119. package/src/cdn/{helpers → settings}/theme.css +186 -186
  120. package/src/cdn/{helpers → settings}/theme.ts +83 -83
  121. package/src/cdn/shapes/arch.svg +3 -3
  122. package/src/cdn/shapes/arrow.svg +3 -3
  123. package/src/cdn/shapes/boom.svg +3 -3
  124. package/src/cdn/shapes/bun.svg +3 -3
  125. package/src/cdn/shapes/burst.svg +3 -3
  126. package/src/cdn/shapes/circle.svg +3 -3
  127. package/src/cdn/shapes/clamshell.svg +3 -3
  128. package/src/cdn/shapes/diamond.svg +3 -3
  129. package/src/cdn/shapes/fan.svg +3 -3
  130. package/src/cdn/shapes/flower.svg +3 -3
  131. package/src/cdn/shapes/gem.svg +3 -3
  132. package/src/cdn/shapes/ghost-ish.svg +3 -3
  133. package/src/cdn/shapes/heart.svg +3 -3
  134. package/src/cdn/shapes/leaf-clover4.svg +3 -3
  135. package/src/cdn/shapes/leaf-clover8.svg +3 -3
  136. package/src/cdn/shapes/loading-indicator.svg +18 -18
  137. package/src/cdn/shapes/oval.svg +3 -3
  138. package/src/cdn/shapes/pentagon.svg +3 -3
  139. package/src/cdn/shapes/pill.svg +3 -3
  140. package/src/cdn/shapes/pixel-circle.svg +3 -3
  141. package/src/cdn/shapes/pixel-triangle.svg +3 -3
  142. package/src/cdn/shapes/puffy-diamond.svg +3 -3
  143. package/src/cdn/shapes/puffy.svg +3 -3
  144. package/src/cdn/shapes/semicircle.svg +3 -3
  145. package/src/cdn/shapes/sided-cookie12.svg +3 -3
  146. package/src/cdn/shapes/sided-cookie4.svg +3 -3
  147. package/src/cdn/shapes/sided-cookie6.svg +3 -3
  148. package/src/cdn/shapes/sided-cookie7.svg +3 -3
  149. package/src/cdn/shapes/sided-cookie9.svg +3 -3
  150. package/src/cdn/shapes/slanted.svg +3 -3
  151. package/src/cdn/shapes/soft-boom.svg +3 -3
  152. package/src/cdn/shapes/soft-burst.svg +3 -3
  153. package/src/cdn/shapes/square.svg +3 -3
  154. package/src/cdn/shapes/sunny.svg +3 -3
  155. package/src/cdn/shapes/triangle.svg +3 -3
  156. package/src/cdn/shapes/very-sunny.svg +3 -3
  157. package/src/cdn/shapes/wavy-circle.svg +3 -3
  158. package/src/cdn/shapes/wavy.svg +4 -4
  159. package/src/cdn/utils.ts +154 -154
@@ -1,439 +1,438 @@
1
- .field {
2
- --_input: 3rem;
3
- --_start: 1.2rem;
4
- --_middle: calc(var(--_input) / 2);
5
- border-radius: 0.25rem 0.25rem 0 0;
6
- min-block-size: var(--_input);
7
- display: flex;
8
- flex-direction: column;
9
- }
10
-
11
- .field.fill {
12
- --_background: var(--surface-variant);
13
- background-color: unset !important;
14
- color: unset !important;
15
- }
16
-
17
- .field.fill > :is(input, select, textarea) {
18
- background-color: var(--_background);
19
- z-index: 0;
20
- }
21
-
22
- .field.small {
23
- --_input: 2.5rem;
24
- --_start: 1rem;
25
- }
26
-
27
- .field.large {
28
- --_input: 3.5rem;
29
- --_start: 1.4rem;
30
- }
31
-
32
- .field.extra {
33
- --_input: 4rem;
34
- --_start: 1.6rem;
35
- }
36
-
37
- .field.border {
38
- border-radius: 0.25rem;
39
- }
40
-
41
- .field.round.small {
42
- border-radius: 1.25rem;
43
- }
44
-
45
- .field.round {
46
- border-radius: 1.5rem;
47
- }
48
-
49
- .field.round.large {
50
- border-radius: 1.75rem;
51
- }
52
-
53
- .field.round.extra {
54
- border-radius: 2rem;
55
- }
56
-
57
- /* icon */
58
- .field > :is(i, img, svg, progress.circle, a) {
59
- position: absolute;
60
- inset: calc((var(--_input) / 2) - 0.75rem) auto auto auto;
61
- cursor: pointer;
62
- z-index: 10;
63
- inline-size: 1.5rem;
64
- block-size: 1.5rem;
65
- margin: auto 0;
66
- pointer-events: none;
67
- }
68
-
69
- .field > :is(a, .front) {
70
- pointer-events: all !important;
71
- }
72
-
73
- .field > a > :is(i, img, svg, progress.circle, a) {
74
- inline-size: 1.5rem;
75
- block-size: 1.5rem;
76
- }
77
-
78
- .field > :is(i, img, svg, progress.circle, a),
79
- [dir=rtl] .field > :is(i, img, svg, progress.circle, a):first-child {
80
- inset: calc(var(--_middle) - 0.75rem) 1rem auto auto;
81
- }
82
-
83
- .field > :is(i, img, svg, progress.circle, a):first-child,
84
- [dir=rtl] .field > :is(i, img, svg, progress.circle, a) {
85
- inset: calc(var(--_middle) - 0.75rem) auto auto 1rem;
86
- }
87
-
88
- .field.invalid > i {
89
- color: var(--error);
90
- }
91
-
92
- .field > progress.circle {
93
- border-width: 0.1875rem;
94
- }
95
-
96
- /* input, textarea and select */
97
- .field > :is(input, textarea, select) {
98
- all: unset;
99
- position: relative;
100
- display: flex;
101
- align-items: center;
102
- box-sizing: border-box;
103
- border-radius: inherit;
104
- border: 0.0625rem solid transparent;
105
- padding: 0 0.9375rem;
106
- font-family: inherit;
107
- font-size: 1rem;
108
- inline-size: 100%;
109
- min-block-size: var(--_input);
110
- outline: none;
111
- z-index: 1;
112
- background: none;
113
- resize: none;
114
- text-align: start;
115
- cursor: text;
116
- }
117
-
118
- input::-webkit-date-and-time-value {
119
- text-align: start;
120
- }
121
-
122
- :is(input, select, textarea):is(:-webkit-autofill, :autofill) {
123
- -webkit-background-clip: text;
124
- -webkit-text-fill-color: var(--on-surface);
125
- }
126
-
127
- .field > :is(input, textarea, select):focus {
128
- border: 0.125rem solid transparent;
129
- padding: 0 0.875rem;
130
- }
131
-
132
- .field > textarea:not([rows]) {
133
- field-sizing: content;
134
- max-block-size: 12rem;
135
- }
136
-
137
- input[type=file],
138
- input[type=color],
139
- :not(.field) > input[type^=date],
140
- :not(.field) > input[type^=time],
141
- input::-webkit-calendar-picker-indicator {
142
- opacity: 0;
143
- position: absolute;
144
- inset: 0;
145
- inline-size: 100%;
146
- block-size: 100%;
147
- margin: 0;
148
- padding: 0;
149
- border: 0;
150
- outline: 0;
151
- z-index: 2 !important;
152
- }
153
-
154
- input::-webkit-search-decoration,
155
- input::-webkit-search-cancel-button,
156
- input::-webkit-search-results-button,
157
- input::-webkit-search-results-decoration,
158
- input::-webkit-inner-spin-button,
159
- input::-webkit-outer-spin-button {
160
- display: none;
161
- }
162
-
163
- input[type=number] {
164
- appearance: textfield;
165
- }
166
-
167
- .field.border > :is(input, textarea, select) {
168
- border-color: var(--outline);
169
- }
170
-
171
- .field.border > :is(input, textarea, select):focus {
172
- border-color: var(--primary);
173
- }
174
-
175
- .field.round > :is(input, textarea, select) {
176
- padding-inline: 1.4376rem;
177
- }
178
-
179
- .field.round > :is(input, textarea, select):focus {
180
- padding-inline: 1.375rem;
181
- }
182
-
183
- .field.prefix > :is(input, textarea, select) {
184
- padding-inline-start: 2.9375rem;
185
- }
186
-
187
- .field.prefix > .slider {
188
- margin-inline-start: 3.5rem;
189
- }
190
-
191
- .field.prefix > :is(input, textarea, select):focus {
192
- padding-inline-start: 2.875rem;
193
- }
194
-
195
- .field.suffix > :is(input, textarea, select) {
196
- padding-inline-end: 2.9375rem;
197
- }
198
-
199
- .field.suffix > .slider {
200
- margin-inline-end: 3.5rem;
201
- }
202
-
203
- .field.suffix > :is(input, textarea, select):focus {
204
- padding-inline-end: 2.875rem;
205
- }
206
-
207
- .field:not(.border, .round) > :is(input, textarea, select) {
208
- border-block-end-color: var(--outline);
209
- }
210
-
211
- .field:not(.border, .round) > :is(input, textarea, select):focus {
212
- border-block-end-color: var(--primary);
213
- }
214
-
215
- .field.round:not(.border, .fill) > :is(input, textarea, select),
216
- .field.round:not(.border) > :is(input, textarea, select):focus {
217
- box-shadow: var(--elevate1);
218
- }
219
-
220
- .field.round:not(.border, .fill) > :is(input, textarea, select):focus {
221
- box-shadow: var(--elevate2);
222
- }
223
-
224
- .field.invalid:not(.border, .round) > :is(input, textarea, select),
225
- .field.invalid:not(.border, .round) > :is(input, textarea, select):focus {
226
- border-block-end-color: var(--error);
227
- }
228
-
229
- .field.invalid.border > :is(input, textarea, select),
230
- .field.invalid.border > :is(input, textarea, select):focus {
231
- border-color: var(--error);
232
- }
233
-
234
- .field:has(> :disabled) {
235
- opacity: 0.5;
236
- cursor: not-allowed;
237
- }
238
-
239
- .field > :disabled {
240
- cursor: not-allowed;
241
- }
242
-
243
- .field > select {
244
- user-select: none;
245
- }
246
-
247
- @-moz-document url-prefix() {
248
- .field > select:focus {
249
- background-color: var(--surface);
250
- }
251
-
252
- .field.fill > select:focus {
253
- background-color: var(--surface-variant);
254
- }
255
-
256
- .field > select:focus + label {
257
- z-index: 1;
258
- }
259
- }
260
-
261
- .field > select > option {
262
- background-color: var(--surface);
263
- }
264
-
265
- .field > :is(input, select) {
266
- padding-block-start: 1rem;
267
- }
268
-
269
- .field:not(.label) > :is(input, select),
270
- .field.border:not(.fill) > :is(input, select) {
271
- padding-block-start: 0;
272
- }
273
-
274
- .field > textarea {
275
- padding-block-start: calc(var(--_start)) !important;
276
- }
277
-
278
- .field > textarea:focus {
279
- padding-block-start: calc(var(--_start) - 0.01rem) !important;
280
- }
281
-
282
- .field:not(.label) > textarea,
283
- .field.border:not(.fill) > textarea {
284
- padding-block-start: calc(var(--_start) - 0.5rem) !important;
285
- }
286
-
287
- .field:not(.label) > textarea:focus,
288
- .field.border:not(.fill) > textarea:focus {
289
- padding-block-start: calc(var(--_start) - 0.51rem) !important;
290
- }
291
-
292
- /* label */
293
- .field.label > label {
294
- --_start: 1rem;
295
- position: absolute;
296
- inset: -0.5rem 1rem 0 var(--_start);
297
- display: flex;
298
- block-size: calc(var(--_input) + 1rem);
299
- line-height: calc(var(--_input) + 1rem);
300
- font-size: 1rem;
301
- transition: all 0.2s;
302
- gap: 0.25rem;
303
- white-space: nowrap;
304
- pointer-events: none;
305
- }
306
-
307
- [dir=rtl] .field.label > label {
308
- inset: -0.5rem var(--_start) 0 1rem;
309
- }
310
-
311
- .field.label.round > label {
312
- inset: -0.5rem 1.75rem 0 var(--_start);
313
- }
314
-
315
- [dir=rtl] .field.label.round > label {
316
- inset: -0.5rem 1.75rem 0 var(--_start);
317
- }
318
-
319
- .field.label.border.prefix:not(.fill) > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
320
- --_start: 1rem;
321
- }
322
-
323
- .field.label.round > label,
324
- .field.label.border.prefix.round:not(.fill) > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
325
- --_start: 1.5rem;
326
- }
327
-
328
- .field.label.prefix > label {
329
- --_start: 3rem;
330
- }
331
-
332
- .field.label > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
333
- block-size: 2.5rem;
334
- line-height: 2.5rem;
335
- font-size: 0.75rem;
336
- }
337
-
338
- .field.label.border:not(.fill) > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
339
- block-size: 1rem;
340
- line-height: 1rem;
341
- }
342
-
343
- .field.label.border:not(.fill) > label::after {
344
- content: "";
345
- display: block;
346
- margin: 0.5rem 0 0 0;
347
- border-block-start: 0.0625rem solid var(--outline);
348
- block-size: 1rem;
349
- transition: none;
350
- flex: auto;
351
- }
352
-
353
- .field.label.border:not(.fill) > :focus + label::after {
354
- border-block-start: 0.125rem solid var(--primary);
355
- }
356
-
357
- .field.label.border:not(.fill) > :is(input, textarea):is(:focus, [placeholder]:not(:placeholder-shown), .active),
358
- .field.label.border:not(.fill) > select {
359
- clip-path: polygon(-2% -2%, 0.75rem -2%, 0.75rem 0.5rem, calc(100% - 1rem) 0.5rem, calc(100% - 1rem) -2%, 102% -2%, 102% 102%, -2% 102%);
360
- }
361
-
362
- [dir=rtl] .field.label.border:not(.fill) > :is(input, textarea):is(:focus, [placeholder]:not(:placeholder-shown), .active),
363
- [dir=rtl] .field.label.border:not(.fill) > select {
364
- clip-path: polygon(-2% -2%, 1rem -2%, 1rem 0.5rem, calc(100% - 0.75rem) 0.5rem, calc(100% - 0.75rem) -2%, 102% -2%, 102% 102%, -2% 102%);
365
- }
366
-
367
- .field.label.border.round:not(.fill) > :is(input, textarea):is(:focus, [placeholder]:not(:placeholder-shown), .active),
368
- .field.label.border.round:not(.fill) > select {
369
- clip-path: polygon(-2% -2%, 1.25rem -2%, 1.25rem 0.5rem, calc(100% - 1.75rem) 0.5rem, calc(100% - 1.75rem) -2%, 102% -2%, 102% 102%, -2% 102%);
370
- }
371
-
372
- [dir=rtl] .field.label.border.round:not(.fill) > :is(input, textarea):is(:focus, [placeholder]:not(:placeholder-shown), .active),
373
- [dir=rtl] .field.label.border.round:not(.fill) > select {
374
- clip-path: polygon(-2% -2%, 1.75rem -2%, 1.75rem 0.5rem, calc(100% - 1.25rem) 0.5rem, calc(100% - 1.25rem) -2%, 102% -2%, 102% 102%, -2% 102%);
375
- }
376
-
377
- .field.label > :focus + label {
378
- color: var(--primary);
379
- }
380
-
381
- .field.label.invalid > label,
382
- .field.label.invalid > label::after {
383
- color: var(--error) !important;
384
- border-color: var(--error) !important;
385
- }
386
-
387
- .field.label > label > a {
388
- block-size: inherit;
389
- line-height: inherit;
390
- inline-size: 1rem;
391
- }
392
-
393
- .field.label > label > a > :is(i, img, svg) {
394
- block-size: 1rem;
395
- line-height: 1rem;
396
- inline-size: 1rem;
397
- font-size: 1rem;
398
- }
399
-
400
- /* helper */
401
- .field > output {
402
- display: inline-block;
403
- font-size: 0.75rem;
404
- background: none !important;
405
- padding: 0.25rem 1rem;
406
- line-height: 1.25rem;
407
- align-self: start;
408
- }
409
-
410
- .field > output.invalid {
411
- color: var(--error) !important;
412
- }
413
-
414
- .field.round > output {
415
- padding: 0.25rem 1.5rem;
416
- }
417
-
418
- .field.invalid > output:not(.invalid) {
419
- display: none;
420
- }
421
-
422
- table td > .field {
423
- margin: 0;
424
- }
425
-
426
- fieldset {
427
- border-radius: 0.25rem;
428
- padding: 1rem;
429
- border: 0.0625rem solid var(--outline-variant);
430
- }
431
-
432
- fieldset > legend {
433
- margin: 0 -0.25rem;
434
- padding: 0 0.25rem;
435
- }
436
-
437
- fieldset > legend + * {
438
- margin-block-start: 0 !important;
439
- }
1
+ .field {
2
+ --_input: 3rem;
3
+ --_start: 1.2rem;
4
+ --_middle: calc(var(--_input, 0) / 2);
5
+ border-radius: 0.25rem 0.25rem 0 0;
6
+ min-block-size: var(--_input);
7
+ display: flex;
8
+ flex-direction: column;
9
+ }
10
+
11
+ .field.fill {
12
+ --_background: var(--surface-variant);
13
+ background-color: unset !important;
14
+ color: unset !important;
15
+ }
16
+
17
+ .field.fill > :is(input, select, textarea) {
18
+ background-color: var(--_background);
19
+ z-index: 0;
20
+ }
21
+
22
+ .field.small {
23
+ --_input: 2.5rem;
24
+ --_start: 1rem;
25
+ }
26
+
27
+ .field.large {
28
+ --_input: 3.5rem;
29
+ --_start: 1.4rem;
30
+ }
31
+
32
+ .field.extra {
33
+ --_input: 4rem;
34
+ --_start: 1.6rem;
35
+ }
36
+
37
+ .field.border {
38
+ border-radius: 0.25rem;
39
+ }
40
+
41
+ .field.round.small {
42
+ border-radius: 1.25rem;
43
+ }
44
+
45
+ .field.round {
46
+ border-radius: 1.5rem;
47
+ }
48
+
49
+ .field.round.large {
50
+ border-radius: 1.75rem;
51
+ }
52
+
53
+ .field.round.extra {
54
+ border-radius: 2rem;
55
+ }
56
+
57
+ /* icon */
58
+ .field > :is(i, img, svg, progress.circle, a) {
59
+ position: absolute;
60
+ inset: calc((var(--_input, 0) / 2) - 0.75rem) auto auto auto;
61
+ cursor: pointer;
62
+ z-index: 10;
63
+ inline-size: 1.5rem;
64
+ block-size: 1.5rem;
65
+ margin: auto 0;
66
+ pointer-events: none;
67
+ }
68
+
69
+ .field > :is(a, .front) {
70
+ pointer-events: all !important;
71
+ }
72
+
73
+ .field > a > :is(i, img, svg, progress.circle, a) {
74
+ inline-size: 1.5rem;
75
+ block-size: 1.5rem;
76
+ }
77
+
78
+ .field > :is(i, img, svg, progress.circle, a),
79
+ [dir=rtl] .field > :is(i, img, svg, progress.circle, a):first-child {
80
+ inset: calc(var(--_middle, 0) - 0.75rem) 1rem auto auto;
81
+ }
82
+
83
+ .field > :is(i, img, svg, progress.circle, a):first-child,
84
+ [dir=rtl] .field > :is(i, img, svg, progress.circle, a) {
85
+ inset: calc(var(--_middle, 0) - 0.75rem) auto auto 1rem;
86
+ }
87
+
88
+ .field.invalid > i {
89
+ color: var(--error);
90
+ }
91
+
92
+ .field > progress.circle {
93
+ border-width: 0.1875rem;
94
+ }
95
+
96
+ /* input, textarea and select */
97
+ .field > :is(input, textarea, select) {
98
+ all: unset;
99
+ position: relative;
100
+ display: flex;
101
+ align-items: center;
102
+ box-sizing: border-box;
103
+ border-radius: inherit;
104
+ border: 0.0625rem solid transparent;
105
+ padding: 0 0.9375rem;
106
+ font-family: inherit;
107
+ font-size: 1rem;
108
+ min-block-size: var(--_input);
109
+ outline: none;
110
+ z-index: 1;
111
+ background: none;
112
+ resize: none;
113
+ text-align: start;
114
+ cursor: text;
115
+ }
116
+
117
+ input::-webkit-date-and-time-value {
118
+ text-align: start;
119
+ }
120
+
121
+ :is(input, select, textarea):is(:-webkit-autofill, :autofill) {
122
+ -webkit-background-clip: text;
123
+ -webkit-text-fill-color: var(--on-surface);
124
+ }
125
+
126
+ .field > :is(input, textarea, select):focus {
127
+ border: 0.125rem solid transparent;
128
+ padding-inline: 0.875rem;
129
+ }
130
+
131
+ .field > textarea:not([rows]) {
132
+ field-sizing: content;
133
+ max-block-size: 12rem;
134
+ }
135
+
136
+ input[type=file],
137
+ input[type=color],
138
+ :not(.field) > input[type^=date],
139
+ :not(.field) > input[type^=time],
140
+ input::-webkit-calendar-picker-indicator {
141
+ opacity: 0;
142
+ position: absolute;
143
+ inset: 0;
144
+ inline-size: 100%;
145
+ block-size: 100%;
146
+ margin: 0;
147
+ padding: 0;
148
+ border: 0;
149
+ outline: 0;
150
+ z-index: 2 !important;
151
+ }
152
+
153
+ input::-webkit-search-decoration,
154
+ input::-webkit-search-cancel-button,
155
+ input::-webkit-search-results-button,
156
+ input::-webkit-search-results-decoration,
157
+ input::-webkit-inner-spin-button,
158
+ input::-webkit-outer-spin-button {
159
+ display: none;
160
+ }
161
+
162
+ input[type=number] {
163
+ appearance: textfield;
164
+ }
165
+
166
+ .field.border > :is(input, textarea, select) {
167
+ border-color: var(--outline);
168
+ }
169
+
170
+ .field.border > :is(input, textarea, select):focus {
171
+ border-color: var(--primary);
172
+ }
173
+
174
+ .field.round > :is(input, textarea, select) {
175
+ padding-inline: 1.4376rem;
176
+ }
177
+
178
+ .field.round > :is(input, textarea, select):focus {
179
+ padding-inline: 1.375rem;
180
+ }
181
+
182
+ .field.prefix > :is(input, textarea, select) {
183
+ padding-inline-start: 2.9375rem;
184
+ }
185
+
186
+ .field.prefix > .slider {
187
+ margin-inline-start: 3.5rem;
188
+ }
189
+
190
+ .field.prefix > :is(input, textarea, select):focus {
191
+ padding-inline-start: 2.875rem;
192
+ }
193
+
194
+ .field.suffix > :is(input, textarea, select) {
195
+ padding-inline-end: 2.9375rem;
196
+ }
197
+
198
+ .field.suffix > .slider {
199
+ margin-inline-end: 3.5rem;
200
+ }
201
+
202
+ .field.suffix > :is(input, textarea, select):focus {
203
+ padding-inline-end: 2.875rem;
204
+ }
205
+
206
+ .field:not(.border, .round) > :is(input, textarea, select) {
207
+ border-block-end-color: var(--outline);
208
+ }
209
+
210
+ .field:not(.border, .round) > :is(input, textarea, select):focus {
211
+ border-block-end-color: var(--primary);
212
+ }
213
+
214
+ .field.round:not(.border, .fill) > :is(input, textarea, select),
215
+ .field.round:not(.border) > :is(input, textarea, select):focus {
216
+ box-shadow: var(--elevate1);
217
+ }
218
+
219
+ .field.round:not(.border, .fill) > :is(input, textarea, select):focus {
220
+ box-shadow: var(--elevate2);
221
+ }
222
+
223
+ .field.invalid:not(.border, .round) > :is(input, textarea, select),
224
+ .field.invalid:not(.border, .round) > :is(input, textarea, select):focus {
225
+ border-block-end-color: var(--error);
226
+ }
227
+
228
+ .field.invalid.border > :is(input, textarea, select),
229
+ .field.invalid.border > :is(input, textarea, select):focus {
230
+ border-color: var(--error);
231
+ }
232
+
233
+ .field:has(> :disabled) {
234
+ opacity: 0.5;
235
+ cursor: not-allowed;
236
+ }
237
+
238
+ .field > :disabled {
239
+ cursor: not-allowed;
240
+ }
241
+
242
+ .field > select {
243
+ user-select: none;
244
+ }
245
+
246
+ @-moz-document url-prefix() {
247
+ .field > select:focus {
248
+ background-color: var(--surface);
249
+ }
250
+
251
+ .field.fill > select:focus {
252
+ background-color: var(--surface-variant);
253
+ }
254
+
255
+ .field > select:focus + label {
256
+ z-index: 1;
257
+ }
258
+ }
259
+
260
+ .field > select > option {
261
+ background-color: var(--surface);
262
+ }
263
+
264
+ .field > :is(input, select) {
265
+ padding-block-start: 1rem;
266
+ }
267
+
268
+ .field:not(.label) > :is(input, select),
269
+ .field.border:not(.fill) > :is(input, select) {
270
+ padding-block-start: 0;
271
+ }
272
+
273
+ .field > textarea {
274
+ padding-block-start: var(--_start) !important;
275
+ }
276
+
277
+ .field > textarea:focus {
278
+ padding-block-start: calc(var(--_start, 0) - 0.01rem) !important;
279
+ }
280
+
281
+ .field:not(.label) > textarea,
282
+ .field.border:not(.fill) > textarea {
283
+ padding-block-start: calc(var(--_start, 0) - 0.5rem) !important;
284
+ }
285
+
286
+ .field:not(.label) > textarea:focus,
287
+ .field.border:not(.fill) > textarea:focus {
288
+ padding-block-start: calc(var(--_start, 0) - 0.51rem) !important;
289
+ }
290
+
291
+ /* label */
292
+ .field.label > label {
293
+ --_start: 1rem;
294
+ position: absolute;
295
+ inset: -0.5rem 1rem 0 var(--_start);
296
+ display: flex;
297
+ block-size: calc(var(--_input, 0) + 1rem);
298
+ line-height: calc(var(--_input, 0) + 1rem);
299
+ font-size: 1rem;
300
+ transition: all 0.2s;
301
+ gap: 0.25rem;
302
+ white-space: nowrap;
303
+ pointer-events: none;
304
+ }
305
+
306
+ [dir=rtl] .field.label > label {
307
+ inset: -0.5rem var(--_start) 0 1rem;
308
+ }
309
+
310
+ .field.label.round > label {
311
+ inset: -0.5rem 1.75rem 0 var(--_start);
312
+ }
313
+
314
+ [dir=rtl] .field.label.round > label {
315
+ inset: -0.5rem 1.75rem 0 var(--_start);
316
+ }
317
+
318
+ .field.label.border.prefix:not(.fill) > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
319
+ --_start: 1rem;
320
+ }
321
+
322
+ .field.label.round > label,
323
+ .field.label.border.prefix.round:not(.fill) > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
324
+ --_start: 1.5rem;
325
+ }
326
+
327
+ .field.label.prefix > label {
328
+ --_start: 3rem;
329
+ }
330
+
331
+ .field.label > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
332
+ block-size: 2.5rem;
333
+ line-height: 2.5rem;
334
+ font-size: 0.75rem;
335
+ }
336
+
337
+ .field.label.border:not(.fill) > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
338
+ block-size: 1rem;
339
+ line-height: 1rem;
340
+ }
341
+
342
+ .field.label.border:not(.fill) > label::after {
343
+ content: "";
344
+ display: block;
345
+ margin: 0.5rem 0 0 0;
346
+ border-block-start: 0.0625rem solid var(--outline);
347
+ block-size: 1rem;
348
+ transition: none;
349
+ flex: auto;
350
+ }
351
+
352
+ .field.label.border:not(.fill) > :focus + label::after {
353
+ border-block-start: 0.125rem solid var(--primary);
354
+ }
355
+
356
+ .field.label.border:not(.fill) > :is(input, textarea):is(:focus, [placeholder]:not(:placeholder-shown), .active),
357
+ .field.label.border:not(.fill) > select {
358
+ clip-path: polygon(-2% -2%, 0.75rem -2%, 0.75rem 0.5rem, calc(100% - 1rem) 0.5rem, calc(100% - 1rem) -2%, 102% -2%, 102% 102%, -2% 102%);
359
+ }
360
+
361
+ [dir=rtl] .field.label.border:not(.fill) > :is(input, textarea):is(:focus, [placeholder]:not(:placeholder-shown), .active),
362
+ [dir=rtl] .field.label.border:not(.fill) > select {
363
+ clip-path: polygon(-2% -2%, 1rem -2%, 1rem 0.5rem, calc(100% - 0.75rem) 0.5rem, calc(100% - 0.75rem) -2%, 102% -2%, 102% 102%, -2% 102%);
364
+ }
365
+
366
+ .field.label.border.round:not(.fill) > :is(input, textarea):is(:focus, [placeholder]:not(:placeholder-shown), .active),
367
+ .field.label.border.round:not(.fill) > select {
368
+ clip-path: polygon(-2% -2%, 1.25rem -2%, 1.25rem 0.5rem, calc(100% - 1.75rem) 0.5rem, calc(100% - 1.75rem) -2%, 102% -2%, 102% 102%, -2% 102%);
369
+ }
370
+
371
+ [dir=rtl] .field.label.border.round:not(.fill) > :is(input, textarea):is(:focus, [placeholder]:not(:placeholder-shown), .active),
372
+ [dir=rtl] .field.label.border.round:not(.fill) > select {
373
+ clip-path: polygon(-2% -2%, 1.75rem -2%, 1.75rem 0.5rem, calc(100% - 1.25rem) 0.5rem, calc(100% - 1.25rem) -2%, 102% -2%, 102% 102%, -2% 102%);
374
+ }
375
+
376
+ .field.label > :focus + label {
377
+ color: var(--primary);
378
+ }
379
+
380
+ .field.label.invalid > label,
381
+ .field.label.invalid > label::after {
382
+ color: var(--error) !important;
383
+ border-color: var(--error) !important;
384
+ }
385
+
386
+ .field.label > label > a {
387
+ block-size: inherit;
388
+ line-height: inherit;
389
+ inline-size: 1rem;
390
+ }
391
+
392
+ .field.label > label > a > :is(i, img, svg) {
393
+ block-size: 1rem;
394
+ line-height: 1rem;
395
+ inline-size: 1rem;
396
+ font-size: 1rem;
397
+ }
398
+
399
+ /* helper */
400
+ .field > output {
401
+ display: inline-block;
402
+ font-size: 0.75rem;
403
+ background: none !important;
404
+ padding: 0.25rem 1rem;
405
+ line-height: 1.25rem;
406
+ align-self: start;
407
+ }
408
+
409
+ .field > output.invalid {
410
+ color: var(--error) !important;
411
+ }
412
+
413
+ .field.round > output {
414
+ padding: 0.25rem 1.5rem;
415
+ }
416
+
417
+ .field.invalid > output:not(.invalid) {
418
+ display: none;
419
+ }
420
+
421
+ table td > .field {
422
+ margin: 0;
423
+ }
424
+
425
+ fieldset {
426
+ border-radius: 0.25rem;
427
+ padding: 1rem;
428
+ border: 0.0625rem solid var(--outline-variant);
429
+ }
430
+
431
+ fieldset > legend {
432
+ margin: 0 -0.25rem;
433
+ padding: 0 0.25rem;
434
+ }
435
+
436
+ fieldset > legend + * {
437
+ margin-block-start: 0 !important;
438
+ }