beercss 3.12.13 → 3.13.1

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.
@@ -100,7 +100,7 @@
100
100
  font-style: normal;
101
101
  font-weight: 400;
102
102
  font-display: block;
103
- src: url(material-symbols-outlined.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/beercss@3.12.13/dist/cdn/material-symbols-outlined.woff2) format("woff2");
103
+ src: url(material-symbols-outlined.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/beercss@3.13.1/dist/cdn/material-symbols-outlined.woff2) format("woff2");
104
104
  }
105
105
  /* rounded icons */
106
106
  @font-face {
@@ -108,7 +108,7 @@
108
108
  font-style: normal;
109
109
  font-weight: 400;
110
110
  font-display: block;
111
- src: url(material-symbols-rounded.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/beercss@3.12.13/dist/cdn/material-symbols-rounded.woff2) format("woff2");
111
+ src: url(material-symbols-rounded.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/beercss@3.13.1/dist/cdn/material-symbols-rounded.woff2) format("woff2");
112
112
  }
113
113
  /* sharp icons */
114
114
  @font-face {
@@ -116,7 +116,7 @@
116
116
  font-style: normal;
117
117
  font-weight: 400;
118
118
  font-display: block;
119
- src: url(material-symbols-sharp.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/beercss@3.12.13/dist/cdn/material-symbols-sharp.woff2) format("woff2");
119
+ src: url(material-symbols-sharp.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/beercss@3.13.1/dist/cdn/material-symbols-sharp.woff2) format("woff2");
120
120
  }
121
121
  /* subset of only required icons */
122
122
  @font-face {
@@ -124,7 +124,7 @@
124
124
  font-style: normal;
125
125
  font-weight: 400;
126
126
  font-display: block;
127
- src: url(material-symbols-subset.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/beercss@3.12.13/dist/cdn/material-symbols-subset.woff2) format("woff2");
127
+ src: url(material-symbols-subset.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/beercss@3.13.1/dist/cdn/material-symbols-subset.woff2) format("woff2");
128
128
  }
129
129
  .beer * {
130
130
  -webkit-tap-highlight-color: transparent;
@@ -2145,38 +2145,33 @@ html {
2145
2145
  display: none;
2146
2146
  }
2147
2147
  .beer .field {
2148
- --_size: 3rem;
2148
+ --_input: 3rem;
2149
2149
  --_start: 1.2rem;
2150
- block-size: var(--_size);
2151
- margin-block-end: 2rem;
2150
+ --_middle: calc(var(--_input) / 2);
2152
2151
  border-radius: 0.25rem 0.25rem 0 0;
2153
- max-block-size: 12rem;
2154
- }
2155
- .beer .grid > * > .field {
2156
- margin-block-end: 1rem;
2157
- }
2158
- .beer .grid > * > .field + .field {
2159
- margin-block-start: 2rem;
2160
- }
2161
- .beer .grid.no-space > * > .field + .field {
2162
- margin-block-start: 1rem;
2152
+ min-block-size: var(--_input);
2153
+ display: flex;
2154
+ flex-direction: column;
2163
2155
  }
2164
- .beer .grid.medium-space > * > .field + .field {
2165
- margin-block-start: 2.5rem;
2156
+ .beer .field.fill {
2157
+ --_background: var(--surface-variant);
2158
+ background-color: unset !important;
2159
+ color: unset !important;
2166
2160
  }
2167
- .beer .grid.large-space > * > .field + .field {
2168
- margin-block-start: 3rem;
2161
+ .beer .field.fill > :is(input, select, textarea) {
2162
+ background-color: var(--_background);
2163
+ z-index: 0;
2169
2164
  }
2170
2165
  .beer .field.small {
2171
- --_size: 2.5rem;
2166
+ --_input: 2.5rem;
2172
2167
  --_start: 1rem;
2173
2168
  }
2174
2169
  .beer .field.large {
2175
- --_size: 3.5rem;
2170
+ --_input: 3.5rem;
2176
2171
  --_start: 1.4rem;
2177
2172
  }
2178
2173
  .beer .field.extra {
2179
- --_size: 4rem;
2174
+ --_input: 4rem;
2180
2175
  --_start: 1.6rem;
2181
2176
  }
2182
2177
  .beer .field.border {
@@ -2195,37 +2190,37 @@ html {
2195
2190
  border-radius: 2rem;
2196
2191
  }
2197
2192
  /* icon */
2198
- .beer .field > :is(i, img, svg, progress, a:not(.helper, .error)) {
2193
+ .beer .field > :is(i, img, svg, progress.circle, a) {
2199
2194
  position: absolute;
2200
- inset: 50% auto auto auto;
2201
- transform: translateY(-50%);
2195
+ inset: calc((var(--_input) / 2) - 0.75rem) auto auto auto;
2202
2196
  cursor: pointer;
2203
- z-index: 0;
2197
+ z-index: 10;
2198
+ inline-size: 1.5rem;
2199
+ block-size: 1.5rem;
2200
+ margin: auto 0;
2201
+ pointer-events: none;
2202
+ }
2203
+ .beer .field > :is(a, .front) {
2204
+ pointer-events: all !important;
2205
+ }
2206
+ .beer .field > a > :is(i, img, svg, progress.circle, a) {
2204
2207
  inline-size: 1.5rem;
2205
2208
  block-size: 1.5rem;
2206
2209
  }
2207
- .beer .field > :is(i, img, svg, progress, a:not(.helper, .error)),
2208
- .beer [dir=rtl] .field > :is(i, img, svg, progress, a:not(.helper, .error)):first-child {
2209
- inset: 50% 1rem auto auto;
2210
+ .beer .field > :is(i, img, svg, progress.circle, a),
2211
+ .beer [dir=rtl] .field > :is(i, img, svg, progress.circle, a):first-child {
2212
+ inset: calc(var(--_middle) - 0.75rem) 1rem auto auto;
2210
2213
  }
2211
- .beer .field > :is(i, img, svg, progress, a:not(.helper, .error)):first-child,
2212
- .beer [dir=rtl] .field > :is(i, img, svg, progress, a:not(.helper, .error)) {
2213
- inset: 50% auto auto 1rem;
2214
+ .beer .field > :is(i, img, svg, progress.circle, a):first-child,
2215
+ .beer [dir=rtl] .field > :is(i, img, svg, progress.circle, a) {
2216
+ inset: calc(var(--_middle) - 0.75rem) auto auto 1rem;
2214
2217
  }
2215
2218
  .beer .field.invalid > i {
2216
2219
  color: var(--error);
2217
2220
  }
2218
2221
  .beer .field > progress.circle {
2219
- inset-block-start: calc(50% - 0.75rem) !important;
2220
2222
  border-width: 0.1875rem;
2221
2223
  }
2222
- .beer .field > a:not(.helper, .error) {
2223
- z-index: 10;
2224
- }
2225
- .beer .field > a > :is(i, img, svg, progress, a:not(.helper, .error)) {
2226
- inline-size: 1.5rem;
2227
- block-size: 1.5rem;
2228
- }
2229
2224
  /* input, textarea and select */
2230
2225
  .beer .field > :is(input, textarea, select) {
2231
2226
  all: unset;
@@ -2239,7 +2234,7 @@ html {
2239
2234
  font-family: inherit;
2240
2235
  font-size: 1rem;
2241
2236
  inline-size: 100%;
2242
- block-size: 100%;
2237
+ min-block-size: var(--_input);
2243
2238
  outline: none;
2244
2239
  z-index: 1;
2245
2240
  background: none;
@@ -2258,10 +2253,9 @@ html {
2258
2253
  border: 0.125rem solid transparent;
2259
2254
  padding: 0 0.875rem;
2260
2255
  }
2261
- .beer .field.min > textarea {
2262
- overflow: hidden auto;
2263
- position: absolute;
2264
- inset: 0;
2256
+ .beer .field > textarea:not([rows]) {
2257
+ field-sizing: content;
2258
+ max-block-size: 12rem;
2265
2259
  }
2266
2260
  .beer input[type=file],
2267
2261
  .beer input[type=color],
@@ -2348,18 +2342,6 @@ html {
2348
2342
  .beer .field > :disabled {
2349
2343
  cursor: not-allowed;
2350
2344
  }
2351
- .beer .field.textarea.small:not(.min) {
2352
- --_size: 5rem;
2353
- }
2354
- .beer .field.textarea:not(.min) {
2355
- --_size: 5.5rem;
2356
- }
2357
- .beer .field.textarea.large:not(.min) {
2358
- --_size: 6rem;
2359
- }
2360
- .beer .field.textarea.extra:not(.min) {
2361
- --_size: 6.5rem;
2362
- }
2363
2345
  .beer .field > select {
2364
2346
  user-select: none;
2365
2347
  }
@@ -2379,27 +2361,26 @@ html {
2379
2361
  .beer .field > select > option {
2380
2362
  background-color: var(--surface);
2381
2363
  }
2382
- .beer .field.label > :is(input, select) {
2364
+ .beer .field > :is(input, select) {
2383
2365
  padding-block-start: 1rem;
2384
2366
  }
2385
- .beer .field.label.border:not(.fill) > :is(input, select) {
2367
+ .beer .field:not(.label) > :is(input, select),
2368
+ .beer .field.border:not(.fill) > :is(input, select) {
2386
2369
  padding-block-start: 0;
2387
2370
  }
2388
2371
  .beer .field > textarea {
2389
- padding-block-start: var(--_start);
2390
- white-space: pre-wrap;
2391
- overflow-wrap: break-word;
2372
+ padding-block-start: calc(var(--_start)) !important;
2392
2373
  }
2393
2374
  .beer .field > textarea:focus {
2394
- padding-block-start: calc(var(--_start) - 0.06rem);
2375
+ padding-block-start: calc(var(--_start) - 0.01rem) !important;
2395
2376
  }
2396
2377
  .beer .field:not(.label) > textarea,
2397
- .beer .field.border.label:not(.fill) > textarea {
2398
- padding-block-start: calc(var(--_start) - 0.5rem);
2378
+ .beer .field.border:not(.fill) > textarea {
2379
+ padding-block-start: calc(var(--_start) - 0.5rem) !important;
2399
2380
  }
2400
2381
  .beer .field:not(.label) > textarea:focus,
2401
- .beer .field.border.label:not(.fill) > textarea:focus {
2402
- padding-block-start: calc(var(--_start) - 0.56rem);
2382
+ .beer .field.border:not(.fill) > textarea:focus {
2383
+ padding-block-start: calc(var(--_start) - 0.51rem) !important;
2403
2384
  }
2404
2385
  /* label */
2405
2386
  .beer .field.label > label {
@@ -2407,19 +2388,22 @@ html {
2407
2388
  position: absolute;
2408
2389
  inset: -0.5rem 1rem 0 var(--_start);
2409
2390
  display: flex;
2410
- block-size: calc(var(--_size) + 1rem);
2411
- line-height: calc(var(--_size) + 1rem);
2391
+ block-size: calc(var(--_input) + 1rem);
2392
+ line-height: calc(var(--_input) + 1rem);
2412
2393
  font-size: 1rem;
2413
2394
  transition: all 0.2s;
2414
2395
  gap: 0.25rem;
2415
2396
  white-space: nowrap;
2397
+ pointer-events: none;
2398
+ }
2399
+ .beer [dir=rtl] .field.label > label {
2400
+ inset: -0.5rem var(--_start) 0 1rem;
2416
2401
  }
2417
2402
  .beer .field.label.round > label {
2418
2403
  inset: -0.5rem 1.75rem 0 var(--_start);
2419
2404
  }
2420
- .beer .field.label.textarea:not(.min) > label {
2421
- block-size: calc(var(--_size) - 1.5rem);
2422
- line-height: calc(var(--_size) - 1.5rem);
2405
+ .beer [dir=rtl] .field.label.round > label {
2406
+ inset: -0.5rem 1.75rem 0 var(--_start);
2423
2407
  }
2424
2408
  .beer .field.label.border.prefix:not(.fill) > :is(label.active, :focus + label, [placeholder]:not(:placeholder-shown) + label, select + label) {
2425
2409
  --_start: 1rem;
@@ -2488,27 +2472,21 @@ html {
2488
2472
  font-size: 1rem;
2489
2473
  }
2490
2474
  /* helper */
2491
- .beer .field > :is(.helper, .error) {
2492
- position: absolute;
2493
- inset: auto auto 0 1rem;
2494
- transform: translateY(100%);
2475
+ .beer .field > output {
2476
+ display: inline-block;
2495
2477
  font-size: 0.75rem;
2496
2478
  background: none !important;
2497
- padding-block-start: 0.125rem;
2498
- }
2499
- .beer [dir=rtl] .field > :is(.helper, .error) {
2500
- inset: auto 1rem 0 auto;
2501
- }
2502
- .beer a.helper {
2503
- color: var(--primary);
2479
+ padding: 0.25rem 1rem;
2480
+ line-height: 1.25rem;
2481
+ align-self: start;
2504
2482
  }
2505
- .beer .field > .error {
2483
+ .beer .field > output.invalid {
2506
2484
  color: var(--error) !important;
2507
2485
  }
2508
- .beer .field.round > :is(.helper, .error) {
2509
- inset-inline-start: 1.5rem;
2486
+ .beer .field.round > output {
2487
+ padding: 0.25rem 1.5rem;
2510
2488
  }
2511
- .beer .field.invalid > .helper {
2489
+ .beer .field.invalid > output:not(.invalid) {
2512
2490
  display: none;
2513
2491
  }
2514
2492
  .beer table td > .field {
@@ -3681,6 +3659,7 @@ html {
3681
3659
  writing-mode: horizontal-tb;
3682
3660
  direction: ltr;
3683
3661
  -webkit-appearance: none;
3662
+ appearance: none;
3684
3663
  }
3685
3664
  .beer .dark progress {
3686
3665
  background: var(--_dark);
@@ -3694,6 +3673,10 @@ html {
3694
3673
  .beer progress.large {
3695
3674
  --_size: 0.45rem;
3696
3675
  }
3676
+ .beer progress.indeterminate {
3677
+ --_value: 100;
3678
+ animation: 3.2s to-indeterminate ease infinite;
3679
+ }
3697
3680
  .beer progress:not(.circle, [value])::after {
3698
3681
  content: "";
3699
3682
  position: absolute;
@@ -3745,29 +3728,38 @@ html {
3745
3728
  mask-size: auto 100%;
3746
3729
  }
3747
3730
  .beer progress.circle {
3748
- display: inline-block;
3731
+ --_value: attr(value type(<number>), 50);
3749
3732
  inline-size: 2.5rem;
3750
3733
  block-size: 2.5rem;
3734
+ background: conic-gradient(currentColor calc(var(--_value) * 1%), var(--active) 0%);
3751
3735
  border-radius: 50%;
3752
- border-width: 0.3rem;
3753
- border-style: solid;
3754
- border-color: currentcolor;
3755
- animation: 1.6s to-circular linear infinite;
3736
+ mask-image: radial-gradient(circle at center, transparent 57%, currentColor 60%);
3737
+ }
3738
+ .beer progress.circle::-webkit-progress-value {
3756
3739
  background: none;
3757
- flex: none;
3758
3740
  }
3759
3741
  .beer progress.circle::-moz-progress-bar {
3760
3742
  background: none;
3761
3743
  }
3744
+ .beer progress.circle.wavy {
3745
+ background: conic-gradient(currentColor calc(var(--_value) * 1%), var(--active) 0);
3746
+ mask-repeat: no-repeat;
3747
+ mask-position: center;
3748
+ mask-size: contain;
3749
+ mask-image: url(wavy-circle.svg);
3750
+ }
3762
3751
  .beer progress.circle.small {
3763
3752
  inline-size: 1.5rem;
3764
3753
  block-size: 1.5rem;
3765
- border-width: 0.2rem;
3766
3754
  }
3767
3755
  .beer progress.circle.large {
3768
3756
  inline-size: 3.5rem;
3769
3757
  block-size: 3.5rem;
3770
- border-width: 0.4rem;
3758
+ }
3759
+ .beer progress.circle:not([value]),
3760
+ .beer progress.circle.indeterminate {
3761
+ --_value: 50;
3762
+ animation: to-rotate 1s infinite linear;
3771
3763
  }
3772
3764
  .beer :is(nav, .row, .field) > progress:not(.circle, .small, .medium, .large) {
3773
3765
  flex: auto;
@@ -3788,81 +3780,45 @@ html {
3788
3780
  .beer progress.max[class*='-text'] {
3789
3781
  opacity: 1;
3790
3782
  }
3791
- .beer progress:is(.horizontal, .vertical, .max) {
3792
- display: unset;
3793
- inline-size: 100% !important;
3794
- }
3795
- .beer progress.vertical {
3796
- writing-mode: vertical-lr;
3797
- }
3798
- .beer progress.max.vertical {
3799
- transform: rotate(-180deg);
3800
- }
3801
3783
  .beer progress.max + * {
3802
3784
  margin-block-start: 0;
3803
3785
  }
3804
3786
  .beer :is(.button, button, .chip) > progress.circle {
3805
3787
  color: inherit;
3806
3788
  }
3807
- @supports (-moz-appearance:none) {
3808
- .beer progress.max.vertical {
3809
- transform: none;
3810
- }
3811
- }
3812
3789
  @keyframes to-linear {
3813
3790
  0% {
3814
- margin-inline-start: -100%;
3791
+ margin: 0 0 0 -100%;
3815
3792
  }
3816
3793
 
3817
3794
  50% {
3818
- margin-inline-start: 0%;
3795
+ margin: 0 0 0 0;
3819
3796
  }
3820
3797
 
3821
3798
  100% {
3822
- margin-inline-start: 100%;
3799
+ margin: 0 0 0 100%;
3823
3800
  }
3824
3801
  }
3825
- @keyframes to-circular {
3802
+ @keyframes to-indeterminate {
3826
3803
  0% {
3827
- transform: rotate(0deg);
3828
- clip-path: polygon(50% 50%, 0% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%);
3829
- }
3830
-
3831
- 20% {
3832
- clip-path: polygon(50% 50%, 0% 0%, 50% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%);
3833
- }
3834
-
3835
- 30% {
3836
- clip-path: polygon(50% 50%, 0% 0%, 50% 0%, 100% 0%, 100% 50%, 100% 50%, 100% 50%, 100% 50%, 100% 50%);
3837
- }
3838
-
3839
- 40% {
3840
- clip-path: polygon(50% 50%, 0% 0%, 50% 0%, 100% 0%, 100% 50%, 100% 100%, 100% 100%, 100% 100%, 100% 100%);
3804
+ padding: 0 100% 0 0;
3841
3805
  }
3842
3806
 
3843
3807
  50% {
3844
- clip-path: polygon(50% 50%, 50% 0%, 50% 0%, 100% 0%, 100% 50%, 100% 100%, 50% 100%, 50% 100%, 50% 100%);
3845
- }
3846
-
3847
- 60% {
3848
- clip-path: polygon(50% 50%, 100% 50%, 100% 50%, 100% 50%, 100% 50%, 100% 100%, 50% 100%, 0% 100%, 0% 100%);
3808
+ padding: 0 0 0 0;
3849
3809
  }
3850
3810
 
3851
- 70% {
3852
- clip-path: polygon(50% 50%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 0% 100%, 0% 50%);
3811
+ 100% {
3812
+ padding: 0 0 0 100%;
3853
3813
  }
3854
-
3855
- 80% {
3856
- clip-path: polygon(50% 50%, 0% 100%, 0% 100%, 0% 100%, 0% 100%, 0% 100%, 0% 100%, 0% 100%, 0% 50%);
3814
+ }
3815
+ @keyframes to-rotate {
3816
+ from {
3817
+ transform: rotate(0deg);
3857
3818
  }
3858
3819
 
3859
- 90% {
3820
+ to {
3860
3821
  transform: rotate(360deg);
3861
- clip-path: polygon(50% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%);
3862
- }
3863
-
3864
- 100% {
3865
- clip-path: polygon(50% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%);
3866
3822
  }
3867
3823
  }
3868
3824
  .beer .shape {
@@ -4073,7 +4029,6 @@ html {
4073
4029
  .beer .radio,
4074
4030
  .beer .switch {
4075
4031
  --_size: 1.5rem;
4076
- direction: ltr;
4077
4032
  inline-size: auto;
4078
4033
  block-size: auto;
4079
4034
  line-height: normal;
@@ -4082,6 +4037,9 @@ html {
4082
4037
  display: inline-flex;
4083
4038
  align-items: center;
4084
4039
  }
4040
+ .beer .switch {
4041
+ direction: ltr;
4042
+ }
4085
4043
  .beer :is(.checkbox, .radio, .switch).small {
4086
4044
  --_size: 1rem;
4087
4045
  }
@@ -4127,6 +4085,12 @@ html {
4127
4085
  user-select: none;
4128
4086
  z-index: 1;
4129
4087
  }
4088
+ .beer [dir=rtl] :is(.checkbox, .radio) > span::before,
4089
+ .beer [dir=rtl] :is(.checkbox, .radio) > span > i,
4090
+ .beer [dir=rtl] :is(.checkbox, .radio) > span::after {
4091
+ --_size: inherit;
4092
+ inset: auto calc(var(--_size) * -1) auto auto;
4093
+ }
4130
4094
  .beer .switch > span::before,
4131
4095
  .beer .switch.icon > span > i {
4132
4096
  position: absolute;
@@ -4209,14 +4173,26 @@ html {
4209
4173
  background-color: var(--on-primary);
4210
4174
  transform: translate(-1.75rem, -50%) scale(1);
4211
4175
  }
4176
+ .beer [dir=rtl] .switch > input:checked + span::before,
4177
+ .beer [dir=rtl] .switch.icon > input:checked + span > i {
4178
+ transform: translate(-1.75rem, -50%) scale(-1);
4179
+ }
4212
4180
  .beer .switch > input:active:not(:disabled) + span::before,
4213
4181
  .beer .switch.icon > input:active:not(:disabled) + span > i {
4214
4182
  transform: translate(-3rem, -50%) scale(1.2);
4215
4183
  }
4184
+ .beer [dir=rtl] .switch > input:active:not(:disabled) + span::before,
4185
+ .beer [dir=rtl] .switch.icon > input:active:not(:disabled) + span > i {
4186
+ transform: translate(-3rem, -50%) scale(-1.2);
4187
+ }
4216
4188
  .beer .switch > input:active:checked:not(:disabled) + span::before,
4217
4189
  .beer .switch.icon > input:active:checked:not(:disabled) + span > i {
4218
4190
  transform: translate(-1.75rem, -50%) scale(1.2);
4219
4191
  }
4192
+ .beer [dir=rtl] .switch > input:active:checked:not(:disabled) + span::before,
4193
+ .beer [dir=rtl] .switch.icon > input:active:checked:not(:disabled) + span > i {
4194
+ transform: translate(-1.75rem, -50%) scale(-1.2);
4195
+ }
4220
4196
  .beer :is(.checkbox, .radio, .switch) > input:disabled + span {
4221
4197
  opacity: 0.5;
4222
4198
  cursor: not-allowed;
@@ -4559,6 +4535,10 @@ html {
4559
4535
  .beer .slider > :hover ~ .tooltip.bottom {
4560
4536
  inset-block: auto -1rem !important;
4561
4537
  }
4538
+
4539
+ .beer:has(input[type=range]:focus) {
4540
+ overflow: hidden;
4541
+ }
4562
4542
  }
4563
4543
  .beer .snackbar {
4564
4544
  position: fixed;