beercss 3.9.6 → 3.10.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 (47) hide show
  1. package/README.md +47 -42
  2. package/custom-element/index.js +7 -0
  3. package/dist/cdn/beer.css +476 -543
  4. package/dist/cdn/beer.custom-element.js +38 -0
  5. package/dist/cdn/beer.custom-element.min.js +1 -0
  6. package/dist/cdn/beer.js +77 -150
  7. package/dist/cdn/beer.min.css +1 -1
  8. package/dist/cdn/beer.min.js +1 -1
  9. package/dist/cdn/beer.scoped.css +4348 -0
  10. package/dist/cdn/beer.scoped.min.css +1 -0
  11. package/dist/cdn/material-symbols-subset.woff2 +0 -0
  12. package/package.json +5 -3
  13. package/scoped/index.js +6 -0
  14. package/src/cdn/beer.css +3 -3
  15. package/src/cdn/beer.ts +1 -1
  16. package/src/cdn/customElement.js +38 -0
  17. package/src/cdn/elements/badges.css +7 -21
  18. package/src/cdn/elements/buttons.css +7 -16
  19. package/src/cdn/elements/cards.css +2 -1
  20. package/src/cdn/elements/chips.css +5 -8
  21. package/src/cdn/elements/dialogs.css +52 -26
  22. package/src/cdn/elements/fields.css +25 -36
  23. package/src/cdn/elements/fields.ts +1 -1
  24. package/src/cdn/elements/grids.css +7 -7
  25. package/src/cdn/elements/icons.css +13 -13
  26. package/src/cdn/elements/layouts.css +17 -30
  27. package/src/cdn/elements/mainLayouts.css +163 -0
  28. package/src/cdn/elements/media.css +24 -46
  29. package/src/cdn/elements/menus.css +27 -27
  30. package/src/cdn/elements/navigations.css +31 -11
  31. package/src/cdn/elements/pages.css +6 -7
  32. package/src/cdn/elements/selections.css +13 -13
  33. package/src/cdn/elements/sliders.css +12 -13
  34. package/src/cdn/elements/sliders.ts +4 -4
  35. package/src/cdn/elements/tables.css +1 -0
  36. package/src/cdn/elements/tabs.css +1 -0
  37. package/src/cdn/elements/tooltips.css +10 -11
  38. package/src/cdn/helpers/blurs.css +7 -7
  39. package/src/cdn/helpers/forms.css +17 -56
  40. package/src/cdn/helpers/margins.css +11 -11
  41. package/src/cdn/helpers/paddings.css +10 -10
  42. package/src/cdn/helpers/ripples.css +4 -4
  43. package/src/cdn/helpers/shadows.css +4 -4
  44. package/src/cdn/helpers/spaces.css +4 -4
  45. package/src/cdn/settings/fonts.css +4 -4
  46. package/src/cdn/utils.ts +2 -2
  47. package/src/cdn/elements/containers.css +0 -176
@@ -1,8 +1,7 @@
1
1
  .field {
2
- ---size: 3rem;
3
- ---start: 1.2rem;
4
-
5
- block-size: var(---size);
2
+ --_size: 3rem;
3
+ --_start: 1.2rem;
4
+ block-size: var(--_size);
6
5
  margin-block-end: 2rem;
7
6
  border-radius: 0.25rem 0.25rem 0 0;
8
7
  }
@@ -28,18 +27,18 @@
28
27
  }
29
28
 
30
29
  .field.small {
31
- ---size: 2.5rem;
32
- ---start: 1rem;
30
+ --_size: 2.5rem;
31
+ --_start: 1rem;
33
32
  }
34
33
 
35
34
  .field.large {
36
- ---size: 3.5rem;
37
- ---start: 1.4rem;
35
+ --_size: 3.5rem;
36
+ --_start: 1.4rem;
38
37
  }
39
38
 
40
39
  .field.extra {
41
- ---size: 4rem;
42
- ---start: 1.6rem;
40
+ --_size: 4rem;
41
+ --_start: 1.6rem;
43
42
  }
44
43
 
45
44
  .field.border {
@@ -127,7 +126,7 @@ input::-webkit-date-and-time-value {
127
126
  text-align: start;
128
127
  }
129
128
 
130
- :is(input, select, textarea):-webkit-autofill {
129
+ :is(input, select, textarea):is(:-webkit-autofill, :autofill) {
131
130
  -webkit-background-clip: text;
132
131
  -webkit-text-fill-color: var(--on-surface);
133
132
  }
@@ -251,19 +250,19 @@ input[type=number] {
251
250
  }
252
251
 
253
252
  .field.textarea.small:not(.min) {
254
- ---size: 4.5rem;
253
+ --_size: 5rem;
255
254
  }
256
255
 
257
256
  .field.textarea:not(.min) {
258
- ---size: 5.5rem;
257
+ --_size: 5.5rem;
259
258
  }
260
259
 
261
260
  .field.textarea.large:not(.min) {
262
- ---size: 6.5rem;
261
+ --_size: 6rem;
263
262
  }
264
263
 
265
264
  .field.textarea.extra:not(.min) {
266
- ---size: 7.5rem;
265
+ --_size: 6.5rem;
267
266
  }
268
267
 
269
268
  .field > select {
@@ -284,22 +283,22 @@ input[type=number] {
284
283
  }
285
284
 
286
285
  .field > textarea {
287
- padding-block-start: var(---start);
286
+ padding-block-start: var(--_start);
288
287
  white-space: pre-wrap;
289
288
  }
290
289
 
291
290
  .field > textarea:focus {
292
- padding-block-start: calc(var(---start) - 0.06rem);
291
+ padding-block-start: calc(var(--_start) - 0.06rem);
293
292
  }
294
293
 
295
294
  .field:not(.label) > textarea,
296
295
  .field.border.label:not(.fill) > textarea {
297
- padding-block-start: calc(var(---start) - 0.5rem);
296
+ padding-block-start: calc(var(--_start) - 0.5rem);
298
297
  }
299
298
 
300
299
  .field:not(.label) > textarea:focus,
301
300
  .field.border.label:not(.fill) > textarea:focus {
302
- padding-block-start: calc(var(---start) - 0.56rem);
301
+ padding-block-start: calc(var(--_start) - 0.56rem);
303
302
  }
304
303
 
305
304
  /* label */
@@ -308,31 +307,21 @@ input[type=number] {
308
307
  inset: -0.5rem auto auto 1rem;
309
308
  display: flex;
310
309
  inline-size: calc(100% - 5rem);
311
- block-size: 4rem;
312
- line-height: 4rem;
310
+ block-size: calc(var(--_size) + 1rem);
311
+ line-height: calc(var(--_size) + 1rem);
313
312
  font-size: 1rem;
314
313
  transition: all 0.2s;
315
314
  gap: 0.25rem;
316
315
  white-space: nowrap;
317
316
  }
318
317
 
319
- [dir=rtl] .field.label > label {
320
- inset: -0.5rem 1rem auto auto;
321
- }
322
-
323
- .field.label.small > label {
324
- block-size: 3.5rem;
325
- line-height: 3.5rem;
318
+ .field.label.textarea:not(.min) > label {
319
+ block-size: calc(var(--_size) - 1.5rem);
320
+ line-height: calc(var(--_size) - 1.5rem);
326
321
  }
327
322
 
328
- .field.label.large > label {
329
- block-size: 4.5rem;
330
- line-height: 4.5rem;
331
- }
332
-
333
- .field.label.extra > label {
334
- block-size: 5rem;
335
- line-height: 5rem;
323
+ [dir=rtl] .field.label > label {
324
+ inset: -0.5rem 1rem auto auto;
336
325
  }
337
326
 
338
327
  .field.label.border.prefix:not(.fill) > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
@@ -144,7 +144,7 @@ function updateTextarea(textarea: HTMLTextAreaElement) {
144
144
  updatePlaceholder(textarea);
145
145
  const field = parent(textarea) as HTMLElement;
146
146
  field.removeAttribute("style");
147
- if (hasClass(field, "min")) field.style.setProperty("---size", `${Math.min(192, Math.max(textarea.scrollHeight, field.offsetHeight))}px`);
147
+ if (hasClass(field, "min")) field.style.setProperty("--_size", `${Math.min(192, Math.max(textarea.scrollHeight, field.offsetHeight))}px`);
148
148
  }
149
149
 
150
150
  export function updateAllFields() {
@@ -1,21 +1,21 @@
1
1
  .grid {
2
- ---gap: 1rem;
3
-
2
+ --_gap: 1rem;
4
3
  display: grid;
5
- grid-template-columns: repeat(12, calc(8.33% - var(---gap) + (var(---gap) / 12)));
6
- gap: var(---gap);
4
+ grid-template-columns: repeat(12, calc(8.33% - var(--_gap) + (var(--_gap) / 12)));
5
+ gap: var(--_gap);
6
+ block-size: auto;
7
7
  }
8
8
 
9
9
  .grid.no-space {
10
- ---gap: 0rem;
10
+ --_gap: 0rem;
11
11
  }
12
12
 
13
13
  .grid.medium-space {
14
- ---gap: 1.5rem;
14
+ --_gap: 1.5rem;
15
15
  }
16
16
 
17
17
  .grid.large-space {
18
- ---gap: 2rem;
18
+ --_gap: 2rem;
19
19
  }
20
20
 
21
21
  .grid > * {
@@ -1,12 +1,11 @@
1
1
  i,
2
2
  :is(.checkbox, .radio, .switch) > span::before,
3
3
  :is(.checkbox, .radio, .switch) > span > i {
4
- ---size: 1.5rem;
5
-
4
+ --_size: 1.5rem;
6
5
  font-family: var(--font-icon);
7
6
  font-weight: normal;
8
7
  font-style: normal;
9
- font-size: var(---size);
8
+ font-size: var(--_size);
10
9
  letter-spacing: normal;
11
10
  text-transform: none;
12
11
  display: inline-flex;
@@ -20,33 +19,34 @@ i,
20
19
  vertical-align: middle;
21
20
  text-align: center;
22
21
  overflow: hidden;
23
- inline-size: var(---size);
24
- min-inline-size: var(---size);
25
- block-size: var(---size);
26
- min-block-size: var(---size);
22
+ inline-size: var(--_size);
23
+ min-inline-size: var(--_size);
24
+ block-size: var(--_size);
25
+ min-block-size: var(--_size);
27
26
  box-sizing: content-box;
28
27
  line-height: normal;
28
+ border-radius: 0;
29
29
  }
30
30
 
31
31
  i.tiny {
32
- ---size: 1rem;
32
+ --_size: 1rem;
33
33
  }
34
34
 
35
35
  .chip > i,
36
36
  i.small {
37
- ---size: 1.25rem;
37
+ --_size: 1.25rem;
38
38
  }
39
39
 
40
40
  i.medium {
41
- ---size: 1.5rem;
41
+ --_size: 1.5rem;
42
42
  }
43
43
 
44
44
  i.large {
45
- ---size: 1.75rem;
45
+ --_size: 1.75rem;
46
46
  }
47
47
 
48
48
  i.extra {
49
- ---size: 2rem;
49
+ --_size: 2rem;
50
50
  }
51
51
 
52
52
  i.fill,
@@ -66,7 +66,7 @@ i > :is(img, svg) {
66
66
  }
67
67
 
68
68
  i[class*=fa-] {
69
- font-size: calc(var(---size) * 0.85);
69
+ font-size: calc(var(--_size) * 0.85);
70
70
  line-height: normal;
71
71
  block-size: auto;
72
72
  min-block-size: auto;
@@ -39,17 +39,21 @@ footer {
39
39
  display: flex;
40
40
  justify-content: center;
41
41
  flex-direction: column;
42
- min-block-size: 4rem;
43
- padding: 0 1rem;
44
42
  background-color: var(--surface-container);
43
+ border-radius: 0;
44
+ padding: 0 1rem;
45
45
  }
46
46
 
47
- main ~ footer {
48
- min-block-size: 5rem;
47
+ :is(nav.drawer, dialog, article) > :is(header, footer) {
48
+ padding-inline: 0;
49
+ }
50
+
51
+ header {
52
+ min-block-size: 4rem;
49
53
  }
50
54
 
51
- :is(header, footer).fixed.responsive {
52
- z-index: 12;
55
+ footer {
56
+ min-block-size: 5rem;
53
57
  }
54
58
 
55
59
  :is(header, footer, menu > *).fixed {
@@ -59,29 +63,12 @@ main ~ footer {
59
63
  background-color: inherit;
60
64
  }
61
65
 
62
- :is(dialog, menu, nav, article) > :is(header, footer) {
63
- background-color: inherit;
64
- padding: 0;
65
- }
66
-
67
- :is(dialog, article, [class*=padding]) > :is(header, footer).fixed {
68
- ---translateY: 1rem;
69
-
70
- transform: translateY(var(---translateY));
71
- }
72
-
73
- :is(dialog, article, [class*=padding]) > header.fixed {
74
- transform: translateY(calc(-1 * var(---translateY)));
66
+ header.fixed {
67
+ inset: calc(-1 * var(--_padding)) 0 0 0;
68
+ margin-block-start: calc(-1 * var(--_padding));
75
69
  }
76
70
 
77
- .no-padding > :is(header, footer).fixed {
78
- transform: none;
79
- }
80
-
81
- .small-padding > :is(header, footer).fixed {
82
- ---translateY: 0.5rem;
83
- }
84
-
85
- :is(.large-padding, dialog:not(.left, .right, .top, .bottom)) > :is(header, footer).fixed {
86
- ---translateY: 1.5rem;
87
- }
71
+ footer.fixed {
72
+ inset: 0 0 calc(-1 * var(--_padding)) 0;
73
+ margin-block-end: calc(-1 * var(--_padding));
74
+ }
@@ -0,0 +1,163 @@
1
+ main {
2
+ flex: 1;
3
+ padding: 0.5rem;
4
+ overflow-x: hidden;
5
+ }
6
+
7
+ :is(main, header, footer, section).responsive {
8
+ max-inline-size: 75rem;
9
+ margin: 0 auto;
10
+ }
11
+
12
+ :is(main, header, footer, section).responsive.max {
13
+ max-inline-size: 100%;
14
+ }
15
+
16
+ :has(> main) {
17
+ --_top: 0rem;
18
+ --_bottom: 0rem;
19
+ --_left: 0rem;
20
+ --_right: 0rem;
21
+ display: flex;
22
+ flex-direction: column;
23
+ min-block-size: calc(100vh - var(--top) - var(--_top) - var(--bottom) - var(--_bottom));
24
+ box-sizing: border-box;
25
+ background-color: var(--surface);
26
+ margin-block: calc(var(--top) + var(--_top)) calc(var(--bottom) + var(--_bottom));
27
+ margin-inline: calc(var(--left) + var(--_left)) calc(var(--right) + var(--_right));
28
+ }
29
+
30
+ :has(> main) > :is(header, footer).fixed {
31
+ z-index: 12;
32
+ transform: none;
33
+ box-sizing: content-box;
34
+ inset: 0;
35
+ }
36
+
37
+ :has(> main) > header.fixed {
38
+ padding-block-start: calc(var(--top) + var(--_top));
39
+ margin-block-start: calc(-1 * var(--top) - var(--_top));
40
+ }
41
+
42
+ :has(> main) > footer.fixed {
43
+ padding-block-end: calc(var(--bottom) + var(--_bottom));
44
+ margin-block-end: calc(-1 * var(--bottom) - var(--_bottom));
45
+ }
46
+
47
+ :has(> nav.top:not(.s, .n, .l)) {
48
+ --_top: 5rem;
49
+ }
50
+
51
+ :has(> nav.bottom:not(.s, .n, .l)) {
52
+ --_bottom: 5rem;
53
+ }
54
+
55
+ :has(> nav.left:not(.s, .n, .l)) {
56
+ --_left: 5rem;
57
+ }
58
+
59
+ :has(> nav.right:not(.s, .n, .l)) {
60
+ --_right: 5rem;
61
+ }
62
+
63
+ :has(> nav.drawer.left:not(.s, .n, .l)) {
64
+ --_left: 20rem;
65
+ }
66
+
67
+ :has(> nav.drawer.right:not(.s, .n, .l)) {
68
+ --_right: 20rem;
69
+ }
70
+
71
+ :not(main):has(> aside) {
72
+ overflow: auto;
73
+ }
74
+
75
+ aside {
76
+ z-index: 1;
77
+ }
78
+
79
+ aside:not(.fixed, .absolute).right {
80
+ float: right;
81
+ }
82
+
83
+ aside:not(.fixed, .absolute).left {
84
+ float: left;
85
+ }
86
+
87
+ @media only screen and (max-width: 600px) {
88
+ :has(> nav.bottom.s) {
89
+ --_bottom: 5rem;
90
+ }
91
+
92
+ :has(> nav.top.s) {
93
+ --_top: 5rem;
94
+ }
95
+
96
+ :has(> nav.left.s) {
97
+ --_left: 5rem;
98
+ }
99
+
100
+ :has(> nav.right.s) {
101
+ --_right: 5rem;
102
+ }
103
+
104
+ :has(> nav.drawer.left.s) {
105
+ --_left: 20rem;
106
+ }
107
+
108
+ :has(> nav.drawer.right.s) {
109
+ --_right: 20rem;
110
+ }
111
+ }
112
+
113
+ @media only screen and (min-width: 601px) and (max-width: 992px) {
114
+ :has(> nav.bottom.m) {
115
+ --_bottom: 5rem;
116
+ }
117
+
118
+ :has(> nav.top.m) {
119
+ --_top: 5rem;
120
+ }
121
+
122
+ :has(> nav.left.m) {
123
+ --_left: 5rem;
124
+ }
125
+
126
+ :has(> nav.right.m) {
127
+ --_right: 5rem;
128
+ }
129
+
130
+ :has(> nav.drawer.left.m) {
131
+ --_left: 20rem;
132
+ }
133
+
134
+ :has(> nav.drawer.right.m) {
135
+ --_right: 20rem;
136
+ }
137
+ }
138
+
139
+ @media only screen and (min-width: 993px) {
140
+ :has(> nav.bottom.l) {
141
+ --_bottom: 5rem;
142
+ }
143
+
144
+ :has(> nav.top.l) {
145
+ --_top: 5rem;
146
+ }
147
+
148
+ :has(> nav.left.l) {
149
+ --_left: 5rem;
150
+ }
151
+
152
+ :has(> nav.right.l) {
153
+ --_right: 5rem;
154
+ }
155
+
156
+ :has(> nav.drawer.left.l) {
157
+ --_left: 20rem;
158
+ }
159
+
160
+ :has(> nav.drawer.right.l) {
161
+ --_right: 20rem;
162
+ }
163
+ }
@@ -3,63 +3,39 @@ svg {
3
3
  }
4
4
 
5
5
  :is(img, svg, video):is(.small, .medium, .large, .tiny, .extra, .round, .circle, .square, .responsive) {
6
+ --_size: 3rem;
6
7
  object-fit: cover;
7
8
  object-position: center;
8
9
  transition: transform var(--speed3), border-radius var(--speed3), padding var(--speed3);
9
- block-size: 3rem;
10
- inline-size: 3rem;
10
+ block-size: var(--_size);
11
+ inline-size: var(--_size);
11
12
  }
12
13
 
13
14
  :is(img, svg, video).round {
14
- border-radius: 0.5rem;
15
+ --_round: 0.5rem;
15
16
  }
16
17
 
17
18
  :is(img, svg, video).tiny {
18
- block-size: 2rem;
19
- inline-size: 2rem;
19
+ --_size: 2rem;
20
20
  }
21
21
 
22
22
  :is(img, svg, video).small {
23
- block-size: 2.5rem;
24
- inline-size: 2.5rem;
23
+ --_size: 2.5rem;
25
24
  }
26
25
 
27
26
  :is(img, svg, video).large {
28
- block-size: 3.5rem;
29
- inline-size: 3.5rem;
27
+ --_size: 3.5rem;
30
28
  }
31
29
 
32
30
  :is(img, svg, video).extra {
33
- block-size: 4rem;
34
- inline-size: 4rem;
31
+ --_size: 4rem;
35
32
  }
36
33
 
37
34
  :is(img, svg, video).responsive {
38
- inline-size: 100%;
39
- block-size: 100%;
35
+ --_size: 100%;
40
36
  margin: 0 auto;
41
37
  }
42
38
 
43
- :is(button, .button, .chip):not(.transparent) > .responsive {
44
- border: 0.25rem solid transparent;
45
- }
46
-
47
- :is(button, .button, .chip.medium) > .responsive {
48
- inline-size: 2.5rem;
49
- }
50
-
51
- :is(button.small, .button.small, .chip:not(.medium)) > .responsive {
52
- inline-size: 2rem;
53
- }
54
-
55
- :is(button, .button, .chip).large > .responsive {
56
- inline-size: 3rem;
57
- }
58
-
59
- :is(button, .button, .chip).extra > .responsive {
60
- inline-size: 3.5rem;
61
- }
62
-
63
39
  :is(img, svg, video).responsive.tiny {
64
40
  inline-size: 100%;
65
41
  block-size: 4rem;
@@ -86,7 +62,7 @@ svg {
86
62
  }
87
63
 
88
64
  :is(img, svg, video).responsive.round {
89
- border-radius: 2rem;
65
+ --_round: 2rem;
90
66
  }
91
67
 
92
68
  :is(img, svg, video).empty-state {
@@ -94,39 +70,41 @@ svg {
94
70
  inline-size: 24rem;
95
71
  }
96
72
 
97
- :is(button, .button, .chip, .field) > :is(img, svg):not(.responsive, .tiny, .small, .medium, .large, .extra),
98
- .tabs :is(img, svg):not(.responsive, .tiny, .small, .medium, .large, .extra) {
73
+ :is(button, .button, .chip):not(.transparent) > .responsive {
74
+ border: 0.25rem solid transparent;
75
+ }
76
+
77
+ :is(button, .button, .chip, .field) > :is(img, svg):not(.responsive),
78
+ .tabs :is(img, svg):not(.responsive) {
99
79
  min-inline-size: 1.5rem;
100
80
  max-inline-size: 1.5rem;
101
81
  min-block-size: 1.5rem;
102
82
  max-block-size: 1.5rem;
103
83
  }
104
84
 
105
- :is(button, .button, .chip) > :is(i, img, svg),
106
- :is(button, .button, .chip) > .responsive {
85
+ :is(button, .button, .chip) > :is(i, img, svg) {
107
86
  margin: 0 -0.5rem;
108
87
  }
109
88
 
110
- :is(button, .button) > .responsive {
89
+ :is(button, .button) > .responsive:first-child {
111
90
  margin-inline-start: -1.5rem;
112
91
  }
113
92
 
114
- :is(button, .button) > span + .responsive {
115
- margin-inline-start: -0.5rem;
93
+ :is(button, .button) > .responsive:not(:first-child) {
116
94
  margin-inline-end: -1.5rem;
117
95
  }
118
96
 
119
- .chip > .responsive {
97
+ .chip > .responsive:first-child {
120
98
  margin-inline-start: -1rem;
121
99
  }
122
100
 
123
- .chip > span + .responsive {
124
- margin-inline-start: -0.5rem;
101
+ .chip > .responsive:not(:first-child) {
125
102
  margin-inline-end: -1rem;
126
103
  }
127
104
 
128
- :is(.circle, .square) > .responsive {
129
- margin: 0;
105
+ :is(.circle, .square, .extend) > .responsive {
106
+ --_size: inherit;
107
+ margin: 0 !important;
130
108
  }
131
109
 
132
110
  .extend > :is(.responsive, i) {