beercss 3.5.0 → 3.5.2

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.
@@ -1,5 +1,8 @@
1
1
  .field {
2
- block-size: 3rem;
2
+ ---size: 3rem;
3
+ ---start: 1.2rem;
4
+
5
+ block-size: var(---size);
3
6
  margin-block-end: 2rem;
4
7
  }
5
8
 
@@ -28,15 +31,18 @@
28
31
  }
29
32
 
30
33
  .field.small {
31
- block-size: 2.5rem;
34
+ ---size: 2.5rem;
35
+ ---start: 1rem;
32
36
  }
33
37
 
34
38
  .field.large {
35
- block-size: 3.5rem;
39
+ ---size: 3.5rem;
40
+ ---start: 1.4rem;
36
41
  }
37
42
 
38
43
  .field.extra {
39
- block-size: 4rem;
44
+ ---size: 4rem;
45
+ ---start: 1.6rem;
40
46
  }
41
47
 
42
48
  .field {
@@ -63,19 +69,6 @@
63
69
  border-radius: 2rem;
64
70
  }
65
71
 
66
- .field::before {
67
- content: "";
68
- position: absolute;
69
- inset: 0;
70
- border-radius: inherit;
71
- background-color: inherit;
72
- }
73
-
74
- .field.fill::before {
75
- background-color: var(--surface-container-highest);
76
- color: var(--on-surface-variant);
77
- }
78
-
79
72
  /* icon */
80
73
  .field > :is(i, img, svg, progress, a:not(.helper, .error)) {
81
74
  position: absolute;
@@ -117,7 +110,12 @@
117
110
 
118
111
  /* input, textarea and select */
119
112
  .field > :is(input, textarea, select) {
120
- appearance: none;
113
+ all: unset;
114
+ position: relative;
115
+ display: flex;
116
+ align-items: center;
117
+ box-sizing: border-box;
118
+ border-radius: inherit;
121
119
  border: 0.0625rem solid transparent;
122
120
  padding: 0 0.9375rem;
123
121
  font-family: inherit;
@@ -135,6 +133,12 @@
135
133
  padding: 0 0.875rem;
136
134
  }
137
135
 
136
+ .field.min > textarea {
137
+ overflow: hidden;
138
+ position: absolute;
139
+ inset: 0;
140
+ }
141
+
138
142
  input[type=file],
139
143
  input[type=color],
140
144
  :not(.field) > input[type^=date],
@@ -237,20 +241,20 @@ input::-webkit-search-results-decoration {
237
241
  cursor: not-allowed;
238
242
  }
239
243
 
240
- .field.small.textarea {
241
- block-size: 4.5rem;
244
+ .field.textarea.small:not(.min) {
245
+ ---size: 4.5rem;
242
246
  }
243
247
 
244
- .field.textarea {
245
- block-size: 5.5rem;
248
+ .field.textarea:not(.min) {
249
+ ---size: 5.5rem;
246
250
  }
247
251
 
248
- .field.large.textarea {
249
- block-size: 6.5rem;
252
+ .field.textarea.large:not(.min) {
253
+ ---size: 6.5rem;
250
254
  }
251
255
 
252
- .field.extra.textarea {
253
- block-size: 7.5rem;
256
+ .field.textarea.extra:not(.min) {
257
+ ---size: 7.5rem;
254
258
  }
255
259
 
256
260
  .field > select > option {
@@ -266,60 +270,22 @@ input::-webkit-search-results-decoration {
266
270
  padding-block-start: 0;
267
271
  }
268
272
 
269
- .field.label.small > textarea {
270
- padding-block-start: 1.125rem;
273
+ .field > textarea {
274
+ padding-block-start: var(---start);
271
275
  }
272
276
 
273
- .field.label > textarea {
274
- padding-block-start: 1.375rem;
277
+ .field > textarea:focus {
278
+ padding-block-start: calc(var(---start) - 0.06rem);
275
279
  }
276
280
 
277
- .field.label.large > textarea {
278
- padding-block-start: 1.625rem;
281
+ .field:not(.label) > textarea,
282
+ .field.border.label:not(.fill) > textarea {
283
+ padding-block-start: calc(var(---start) - 0.5rem);
279
284
  }
280
285
 
281
- .field.label.extra > textarea {
282
- padding-block-start: 1.875rem;
283
- }
284
-
285
- .field.small > textarea,
286
- .field.small:not(.label) > textarea:focus,
287
- .field.small.border:not(.fill) > textarea {
288
- padding-block-start: 0.625rem;
289
- }
290
-
291
- .field > textarea,
292
286
  .field:not(.label) > textarea:focus,
293
- .field.border:not(.fill) > textarea {
294
- padding-block-start: 0.875rem;
295
- }
296
-
297
- .field.large > textarea,
298
- .field.large:not(.label) > textarea:focus,
299
- .field.large.border:not(.fill) > textarea {
300
- padding-block-start: 1.125rem;
301
- }
302
-
303
- .field.extra > textarea,
304
- .field.extra:not(.label) > textarea:focus,
305
- .field.extra.border:not(.fill) > textarea {
306
- padding-block-start: 1.375rem;
307
- }
308
-
309
- .field.small.border:not(.fill) > textarea:focus {
310
- padding-block-start: 0.5625rem !important;
311
- }
312
-
313
- .field.border:not(.fill) > textarea:focus {
314
- padding-block-start: 0.8125rem !important;
315
- }
316
-
317
- .field.large.border:not(.fill) > textarea:focus {
318
- padding-block-start: 1.0625rem !important;
319
- }
320
-
321
- .field.extra.border:not(.fill) > textarea:focus {
322
- padding-block-start: 1.3125rem !important;
287
+ .field.border.label:not(.fill) > textarea:focus {
288
+ padding-block-start: calc(var(---start) - 0.56rem);
323
289
  }
324
290
 
325
291
  /* label */
@@ -446,6 +412,10 @@ input::-webkit-search-results-decoration {
446
412
  padding-block-start: 0.125rem;
447
413
  }
448
414
 
415
+ [dir=rtl] .field > :is(.helper, .error) {
416
+ inset: auto 1rem 0 auto;
417
+ }
418
+
449
419
  a.helper {
450
420
  color: var(--primary);
451
421
  }
@@ -63,7 +63,7 @@ i > :is(img, svg) {
63
63
  padding: inherit;
64
64
  }
65
65
 
66
- i[class*="fa-"] {
66
+ i[class*=fa-] {
67
67
  font-size: calc(var(---size) * 0.85);
68
68
  line-height: normal;
69
69
  block-size: auto;
@@ -1,11 +1,11 @@
1
1
  svg {
2
- fill: currentColor;
2
+ fill: currentcolor;
3
3
  }
4
4
 
5
5
  :is(img, svg, video):is(.small, .medium, .large, .tiny, .extra, .round, .circle, .responsive) {
6
6
  object-fit: cover;
7
7
  object-position: center;
8
- transition: var(--speed3) transform, var(--speed3) border-radius, var(--speed3) padding;
8
+ transition: transform var(--speed3), border-radius var(--speed3), padding var(--speed3);
9
9
  block-size: 3rem;
10
10
  inline-size: 3rem;
11
11
  }
@@ -23,7 +23,11 @@ menu {
23
23
  text-align: start;
24
24
  border-radius: 0.25rem;
25
25
  transform: scale(0.8) translateY(120%);
26
- transition: var(--speed2) all, 0s background-color;
26
+ transition: all var(--speed2), 0s background-color;
27
+ }
28
+
29
+ [dir=rtl] menu {
30
+ inset: auto 0 0 auto;
27
31
  }
28
32
 
29
33
  menu.no-wrap {
@@ -68,6 +72,16 @@ menu.min {
68
72
  border-radius: inherit;
69
73
  }
70
74
 
75
+ [dir=rtl] menu.min.right,
76
+ menu.min.left {
77
+ inset: 0 0 auto auto;
78
+ }
79
+
80
+ [dir=rtl] menu.min.left,
81
+ menu.min.right {
82
+ inset: 0 auto auto 0;
83
+ }
84
+
71
85
  menu.max {
72
86
  position: fixed;
73
87
  inset: 0;
@@ -82,10 +96,12 @@ menu.no-wrap:is(.min, .max) {
82
96
  min-inline-size: 16rem;
83
97
  }
84
98
 
99
+ [dir=rtl] menu.right,
85
100
  menu.left {
86
101
  inset: auto 0 0 auto;
87
102
  }
88
103
 
104
+ [dir=rtl] menu.left,
89
105
  menu.right {
90
106
  inset: auto auto 0 0;
91
107
  }
@@ -80,6 +80,7 @@ nav:is(.left, .right, .top, .bottom) {
80
80
  text-align: center;
81
81
  padding: 0.5rem;
82
82
  margin: 0;
83
+ inset: 0;
83
84
  }
84
85
 
85
86
  nav:is(.left, .right) {
@@ -97,19 +98,19 @@ nav:is(.top, .bottom) {
97
98
  }
98
99
 
99
100
  nav.top {
100
- inset: 0 0 auto 0;
101
+ inset-block-end: auto;
101
102
  }
102
103
 
103
104
  nav.left {
104
- inset: 0 auto 0 0;
105
+ inset-inline-end: auto;
105
106
  }
106
107
 
107
108
  nav.right {
108
- inset: 0 0 0 auto;
109
+ inset-inline-start: auto;
109
110
  }
110
111
 
111
112
  nav.bottom {
112
- inset: auto 0 0 0;
113
+ inset-block-start: auto;
113
114
  }
114
115
 
115
116
  nav.drawer {
@@ -189,7 +190,7 @@ nav:is(.left, .right, .top, .bottom):not(.drawer) > a:not(.button, .chip) > i,
189
190
  nav:is(.left, .right, .top, .bottom):not(.drawer) > :is(ol, ul) > li > a:not(.button, .chip) > i {
190
191
  padding: 0.25rem;
191
192
  border-radius: 2rem;
192
- transition: var(--speed1) padding linear;
193
+ transition: padding var(--speed1) linear;
193
194
  margin: 0 auto;
194
195
  }
195
196
 
@@ -225,11 +226,6 @@ nav:is(.left, .right, .top, .bottom):not(.drawer) > :is(ol, ul) > li > a:not(.bu
225
226
  align-items: center;
226
227
  }
227
228
 
228
- nav:is(.left, .right):not(.drawer) > *,
229
- nav:is(.left, .right):not(.drawer) > :is(ol, ul) > li {
230
- align-self: center;
231
- }
232
-
233
229
  :is(.drawer, .vertical) > :is(li, [class*=divider]):not(.vertical),
234
230
  :is(.drawer, .vertical) > :is(ol, ul) > li:not(.vertical) {
235
231
  align-self: stretch;
@@ -8,7 +8,7 @@
8
8
  color: var(--on-surface);
9
9
  background-color: var(--overlay);
10
10
  z-index: 100;
11
- transition: var(--speed3) all, 0s background-color;
11
+ transition: all var(--speed3), 0s background-color;
12
12
  }
13
13
 
14
14
  nav > .overlay {
@@ -9,6 +9,7 @@ progress {
9
9
  border: none;
10
10
  overflow: hidden;
11
11
  writing-mode: horizontal-tb;
12
+ direction: ltr;
12
13
  }
13
14
 
14
15
  progress.small {
@@ -30,7 +31,7 @@ progress:not(.circle, [value])::after {
30
31
  inline-size: 100%;
31
32
  block-size: 100%;
32
33
  clip-path: none;
33
- background: currentColor;
34
+ background: currentcolor;
34
35
  animation: 1.6s to-linear ease infinite;
35
36
  }
36
37
 
@@ -47,11 +48,11 @@ progress::-webkit-progress-bar {
47
48
  }
48
49
 
49
50
  progress::-webkit-progress-value {
50
- background: currentColor;
51
+ background: currentcolor;
51
52
  }
52
53
 
53
54
  progress::-moz-progress-bar {
54
- background: currentColor;
55
+ background: currentcolor;
55
56
  }
56
57
 
57
58
  progress.circle {
@@ -61,7 +62,7 @@ progress.circle {
61
62
  border-radius: 50%;
62
63
  border-width: 0.3rem;
63
64
  border-style: solid;
64
- border-color: currentColor;
65
+ border-color: currentcolor;
65
66
  animation: 1.6s to-circular linear infinite;
66
67
  background: none;
67
68
  flex: none;
@@ -109,10 +110,20 @@ progress.vertical {
109
110
  writing-mode: vertical-lr;
110
111
  }
111
112
 
113
+ progress.max.vertical {
114
+ transform: rotate(-180deg);
115
+ }
116
+
112
117
  :has(> progress) > :not(progress) {
113
118
  z-index: 1;
114
119
  }
115
120
 
121
+ @supports (-moz-appearance:none) {
122
+ progress.max.vertical {
123
+ transform: none;
124
+ }
125
+ }
126
+
116
127
  @keyframes to-linear {
117
128
  0% {
118
129
  margin-inline-start: 0%;
@@ -66,7 +66,7 @@
66
66
  user-select: none;
67
67
  z-index: 1;
68
68
  box-shadow: 0 0 0 0 var(--active);
69
- transition: var(--speed1) all;
69
+ transition: all var(--speed1);
70
70
  }
71
71
 
72
72
  .switch > span::before,
@@ -77,7 +77,7 @@
77
77
  align-items: center;
78
78
  justify-content: center;
79
79
  border-radius: 50%;
80
- transition: var(--speed2) all;
80
+ transition: all var(--speed2);
81
81
  font-size: 1rem;
82
82
  user-select: none;
83
83
  min-inline-size: auto;
@@ -189,3 +189,21 @@
189
189
  flex-grow: 1;
190
190
  padding: 0 1.5rem;
191
191
  }
192
+
193
+ [dir=rtl] .switch {
194
+ transform: scale(-1);
195
+ }
196
+
197
+ [dir=rtl] .switch > span::before,
198
+ [dir=rtl] .switch.icon > span > i {
199
+ transform: translate(-3rem, -50%) scale(-0.6);
200
+ }
201
+
202
+ [dir=rtl] .switch.icon > span > i {
203
+ transform: translate(-3rem, -50%) scale(-1);
204
+ }
205
+
206
+ [dir=rtl] .switch > input:checked + span::before,
207
+ [dir=rtl] .switch.icon > input:checked + span > i {
208
+ transform: translate(-1.75rem, -50%) scale(-1);
209
+ }
@@ -10,6 +10,11 @@
10
10
  block-size: 1.25rem;
11
11
  margin: 1.125rem;
12
12
  flex: none;
13
+ direction: ltr;
14
+ }
15
+
16
+ [dir=rtl] .slider {
17
+ transform: scaleX(-1);
13
18
  }
14
19
 
15
20
  .slider.vertical {
@@ -51,7 +56,6 @@
51
56
  }
52
57
 
53
58
  .slider > input:only-of-type {
54
- cursor: pointer;
55
59
  pointer-events: all;
56
60
  }
57
61
 
@@ -69,10 +73,14 @@
69
73
  inline-size: 0.25rem;
70
74
  border-radius: 0.25rem;
71
75
  background: var(--primary);
72
- cursor: pointer;
76
+ cursor: grab;
73
77
  margin: 0;
74
78
  }
75
79
 
80
+ .slider > input::-webkit-slider-thumb:active {
81
+ cursor: grabbing;
82
+ }
83
+
76
84
  .slider > input::-moz-range-thumb {
77
85
  appearance: none;
78
86
  box-shadow: none;
@@ -83,10 +91,14 @@
83
91
  inline-size: 0.25rem;
84
92
  border-radius: 0.25rem;
85
93
  background: var(--primary);
86
- cursor: pointer;
94
+ cursor: grab;
87
95
  margin: 0;
88
96
  }
89
97
 
98
+ .slider > input::-moz-range-thumb:active {
99
+ cursor: grabbing;
100
+ }
101
+
90
102
  .slider > input:not(:disabled):is(:focus)::-webkit-slider-thumb {
91
103
  transform: scaleX(0.6);
92
104
  }
@@ -129,10 +141,6 @@
129
141
  clip-path: polygon(0.5rem 0, max(0.5rem, calc(100% - 0.5rem)) 0, max(0.5rem, calc(100% - 0.5rem)) 100%, 0.5rem 100%);
130
142
  }
131
143
 
132
- [dir=rtl] .slider > span {
133
- inset: calc(50% - 0.5rem) var(---start) auto var(---end);
134
- }
135
-
136
144
  .field > .slider {
137
145
  inline-size: 100%;
138
146
  }
@@ -151,19 +159,18 @@
151
159
  background: var(--active);
152
160
  }
153
161
 
154
- .slider > .tooltip,
155
- .slider:hover > .tooltip {
162
+ .slider > .tooltip {
156
163
  opacity: 0;
157
164
  inset: 0 auto auto calc(100% - var(---end));
158
165
  border-radius: 2rem;
159
- transition: var(--speed2) ease top, var(--speed2) ease opacity;
166
+ transition: top var(--speed2) ease, opacity var(--speed2) ease;
160
167
  transform: translate(-50%, -50%) !important;
161
168
  padding: 0.75rem 1rem;
162
169
  z-index: 0;
163
170
  }
164
171
 
165
172
  [dir=rtl] .slider > .tooltip {
166
- inset: 0.25rem auto auto var(---end);
173
+ transform: translate(-50%, -50%) scaleX(-1) !important;
167
174
  }
168
175
 
169
176
  .slider > .tooltip + .tooltip {
@@ -172,7 +179,7 @@
172
179
  }
173
180
 
174
181
  [dir=rtl] .slider > .tooltip + .tooltip {
175
- inset: 0.25rem var(---start) auto auto;
182
+ transform: translate(50%, -50%) scaleX(-1) !important;
176
183
  }
177
184
 
178
185
  .slider > .tooltip::before {
@@ -195,3 +202,55 @@
195
202
  :is(nav, .row, .field) > .slider:not(.circle, .small, .medium, .large) {
196
203
  flex: auto;
197
204
  }
205
+
206
+ .slider.max,
207
+ .slider.max.vertical,
208
+ .slider.max > input,
209
+ .slider.max.vertical > input {
210
+ all: unset;
211
+ margin: 0 !important;
212
+ position: absolute;
213
+ color: var(--primary);
214
+ inset: 0;
215
+ border-radius: inherit;
216
+ overflow: hidden;
217
+ z-index: 2;
218
+ cursor: grab;
219
+ inline-size: 100%;
220
+ block-size: 100%;
221
+ }
222
+
223
+ .slider.max::before {
224
+ display: none;
225
+ }
226
+
227
+ .slider.max.vertical > input {
228
+ writing-mode: vertical-lr;
229
+ transform: rotate(-180deg);
230
+ }
231
+
232
+ .slider.max > input::-webkit-slider-thumb {
233
+ opacity: 0;
234
+ inline-size: 1rem;
235
+ block-size: 100vh;
236
+ transform: none !important;
237
+ }
238
+
239
+ .slider.max > input::-moz-range-thumb {
240
+ opacity: 0;
241
+ inline-size: 1rem;
242
+ block-size: 100vh;
243
+ transform: none !important;
244
+ }
245
+
246
+ .slider.max > span {
247
+ block-size: auto !important;
248
+ inset: 0 var(---end) 0 var(---start);
249
+ clip-path: none;
250
+ background: currentcolor;
251
+ border-radius: 0;
252
+ }
253
+
254
+ .slider.max.vertical > span {
255
+ inset: var(---end) 0 var(---start) 0;
256
+ }
@@ -26,7 +26,6 @@ table :is(thead, tbody, tfoot, tr, th) {
26
26
 
27
27
  :is(th, td) > * {
28
28
  vertical-align: middle;
29
- z-index: 0;
30
29
  }
31
30
 
32
31
  table.border > tbody > tr:not(:last-child) > td,
@@ -19,7 +19,7 @@
19
19
  white-space: nowrap;
20
20
  font-weight: 500;
21
21
  opacity: 0;
22
- transition: var(--speed2) all;
22
+ transition: all var(--speed2);
23
23
  line-height: normal;
24
24
  transform: translate(-50%, -100%) scale(0.9);
25
25
  }
@@ -10,10 +10,6 @@
10
10
  ---padding: 0;
11
11
  }
12
12
 
13
- .auto-padding {
14
- ---padding: auto;
15
- }
16
-
17
13
  .tiny-padding {
18
14
  ---padding: 0.25rem;
19
15
  }
@@ -5,7 +5,8 @@ html {
5
5
  body {
6
6
  font-family: var(--font);
7
7
  font-size: 0.875rem;
8
- line-height: 1.5;
8
+ line-height: 1.5rem;
9
+ letter-spacing: 0.0313rem;
9
10
  }
10
11
 
11
12
  h1,
@@ -164,21 +165,21 @@ p {
164
165
  }
165
166
 
166
167
  .tiny-line {
167
- line-height: 1.25;
168
+ line-height: 1.25rem;
168
169
  }
169
170
 
170
171
  .small-line {
171
- line-height: 1.5;
172
+ line-height: 1.5rem;
172
173
  }
173
174
 
174
175
  .medium-line {
175
- line-height: 1.75;
176
+ line-height: 1.75rem;
176
177
  }
177
178
 
178
179
  .large-line {
179
- line-height: 2;
180
+ line-height: 2rem;
180
181
  }
181
182
 
182
183
  .extra-line {
183
- line-height: 2.25;
184
+ line-height: 2.25rem;
184
185
  }
@@ -26,7 +26,7 @@
26
26
  :is(.wave, .chip, .button, button):is(:focus-visible, :hover)::after {
27
27
  background-size: 15000%;
28
28
  opacity: 1;
29
- transition: var(--speed2) background-size linear;
29
+ transition: background-size var(--speed2) linear;
30
30
  }
31
31
 
32
32
  :is(.wave, .chip, .button, button):active::after {
@@ -3,10 +3,10 @@
3
3
  font-family: "Material Symbols Outlined";
4
4
  font-style: normal;
5
5
  font-weight: 400;
6
- font-display: swap;
6
+ font-display: block;
7
7
  src:
8
8
  url("../material-symbols-outlined.woff2") format("woff2"),
9
- url("https://cdn.jsdelivr.net/npm/beercss@3.5.0/dist/cdn/material-symbols-outlined.woff2") format("woff2");
9
+ url("https://cdn.jsdelivr.net/npm/beercss@3.5.2/dist/cdn/material-symbols-outlined.woff2") format("woff2");
10
10
  }
11
11
 
12
12
  /* rounded icons */
@@ -14,10 +14,10 @@
14
14
  font-family: "Material Symbols Rounded";
15
15
  font-style: normal;
16
16
  font-weight: 400;
17
- font-display: swap;
17
+ font-display: block;
18
18
  src:
19
19
  url("../material-symbols-rounded.woff2") format("woff2"),
20
- url("https://cdn.jsdelivr.net/npm/beercss@3.5.0/dist/cdn/material-symbols-rounded.woff2") format("woff2");
20
+ url("https://cdn.jsdelivr.net/npm/beercss@3.5.2/dist/cdn/material-symbols-rounded.woff2") format("woff2");
21
21
  }
22
22
 
23
23
  /* sharp icons */
@@ -25,8 +25,8 @@
25
25
  font-family: "Material Symbols Sharp";
26
26
  font-style: normal;
27
27
  font-weight: 400;
28
- font-display: swap;
28
+ font-display: block;
29
29
  src:
30
30
  url("../material-symbols-sharp.woff2") format("woff2"),
31
- url("https://cdn.jsdelivr.net/npm/beercss@3.5.0/dist/cdn/material-symbols-sharp.woff2") format("woff2");
31
+ url("https://cdn.jsdelivr.net/npm/beercss@3.5.2/dist/cdn/material-symbols-sharp.woff2") format("woff2");
32
32
  }