beercss 3.12.13 → 3.13.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.
@@ -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.0/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.0/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.0/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.0/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);
@@ -3745,29 +3724,36 @@ html {
3745
3724
  mask-size: auto 100%;
3746
3725
  }
3747
3726
  .beer progress.circle {
3748
- display: inline-block;
3727
+ --_value: attr(value type(<number>), 50);
3749
3728
  inline-size: 2.5rem;
3750
3729
  block-size: 2.5rem;
3730
+ background: conic-gradient(currentColor calc(var(--_value) * 1%), var(--active) 0%);
3751
3731
  border-radius: 50%;
3752
- border-width: 0.3rem;
3753
- border-style: solid;
3754
- border-color: currentcolor;
3755
- animation: 1.6s to-circular linear infinite;
3732
+ mask-image: radial-gradient(circle at center, transparent 57%, currentColor 60%);
3733
+ }
3734
+ .beer progress.circle::-webkit-progress-value {
3756
3735
  background: none;
3757
- flex: none;
3758
3736
  }
3759
3737
  .beer progress.circle::-moz-progress-bar {
3760
3738
  background: none;
3761
3739
  }
3740
+ .beer progress.circle.wavy {
3741
+ background: conic-gradient(currentColor calc(var(--_value) * 1%), var(--active) 0);
3742
+ mask-repeat: no-repeat;
3743
+ mask-position: center;
3744
+ mask-size: contain;
3745
+ mask-image: url(wavy-circle.svg);
3746
+ }
3762
3747
  .beer progress.circle.small {
3763
3748
  inline-size: 1.5rem;
3764
3749
  block-size: 1.5rem;
3765
- border-width: 0.2rem;
3766
3750
  }
3767
3751
  .beer progress.circle.large {
3768
3752
  inline-size: 3.5rem;
3769
3753
  block-size: 3.5rem;
3770
- border-width: 0.4rem;
3754
+ }
3755
+ .beer progress.circle:not([value]) {
3756
+ animation: to-rotate 1s infinite linear;
3771
3757
  }
3772
3758
  .beer :is(nav, .row, .field) > progress:not(.circle, .small, .medium, .large) {
3773
3759
  flex: auto;
@@ -3788,27 +3774,12 @@ html {
3788
3774
  .beer progress.max[class*='-text'] {
3789
3775
  opacity: 1;
3790
3776
  }
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
3777
  .beer progress.max + * {
3802
3778
  margin-block-start: 0;
3803
3779
  }
3804
3780
  .beer :is(.button, button, .chip) > progress.circle {
3805
3781
  color: inherit;
3806
3782
  }
3807
- @supports (-moz-appearance:none) {
3808
- .beer progress.max.vertical {
3809
- transform: none;
3810
- }
3811
- }
3812
3783
  @keyframes to-linear {
3813
3784
  0% {
3814
3785
  margin-inline-start: -100%;
@@ -3822,47 +3793,15 @@ html {
3822
3793
  margin-inline-start: 100%;
3823
3794
  }
3824
3795
  }
3825
- @keyframes to-circular {
3826
- 0% {
3796
+ @keyframes to-rotate {
3797
+ from {
3798
+ --_value: 50;
3827
3799
  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%);
3841
- }
3842
-
3843
- 50% {
3844
- clip-path: polygon(50% 50%, 50% 0%, 50% 0%, 100% 0%, 100% 50%, 100% 100%, 50% 100%, 50% 100%, 50% 100%);
3845
3800
  }
3846
3801
 
3847
- 60% {
3848
- clip-path: polygon(50% 50%, 100% 50%, 100% 50%, 100% 50%, 100% 50%, 100% 100%, 50% 100%, 0% 100%, 0% 100%);
3849
- }
3850
-
3851
- 70% {
3852
- clip-path: polygon(50% 50%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 0% 100%, 0% 50%);
3853
- }
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%);
3857
- }
3858
-
3859
- 90% {
3802
+ to {
3803
+ --_value: 50;
3860
3804
  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
3805
  }
3867
3806
  }
3868
3807
  .beer .shape {
@@ -4073,7 +4012,6 @@ html {
4073
4012
  .beer .radio,
4074
4013
  .beer .switch {
4075
4014
  --_size: 1.5rem;
4076
- direction: ltr;
4077
4015
  inline-size: auto;
4078
4016
  block-size: auto;
4079
4017
  line-height: normal;
@@ -4082,6 +4020,9 @@ html {
4082
4020
  display: inline-flex;
4083
4021
  align-items: center;
4084
4022
  }
4023
+ .beer .switch {
4024
+ direction: ltr;
4025
+ }
4085
4026
  .beer :is(.checkbox, .radio, .switch).small {
4086
4027
  --_size: 1rem;
4087
4028
  }
@@ -4127,6 +4068,12 @@ html {
4127
4068
  user-select: none;
4128
4069
  z-index: 1;
4129
4070
  }
4071
+ .beer [dir=rtl] :is(.checkbox, .radio) > span::before,
4072
+ .beer [dir=rtl] :is(.checkbox, .radio) > span > i,
4073
+ .beer [dir=rtl] :is(.checkbox, .radio) > span::after {
4074
+ --_size: inherit;
4075
+ inset: auto calc(var(--_size) * -1) auto auto;
4076
+ }
4130
4077
  .beer .switch > span::before,
4131
4078
  .beer .switch.icon > span > i {
4132
4079
  position: absolute;
@@ -4209,14 +4156,26 @@ html {
4209
4156
  background-color: var(--on-primary);
4210
4157
  transform: translate(-1.75rem, -50%) scale(1);
4211
4158
  }
4159
+ .beer [dir=rtl] .switch > input:checked + span::before,
4160
+ .beer [dir=rtl] .switch.icon > input:checked + span > i {
4161
+ transform: translate(-1.75rem, -50%) scale(-1);
4162
+ }
4212
4163
  .beer .switch > input:active:not(:disabled) + span::before,
4213
4164
  .beer .switch.icon > input:active:not(:disabled) + span > i {
4214
4165
  transform: translate(-3rem, -50%) scale(1.2);
4215
4166
  }
4167
+ .beer [dir=rtl] .switch > input:active:not(:disabled) + span::before,
4168
+ .beer [dir=rtl] .switch.icon > input:active:not(:disabled) + span > i {
4169
+ transform: translate(-3rem, -50%) scale(-1.2);
4170
+ }
4216
4171
  .beer .switch > input:active:checked:not(:disabled) + span::before,
4217
4172
  .beer .switch.icon > input:active:checked:not(:disabled) + span > i {
4218
4173
  transform: translate(-1.75rem, -50%) scale(1.2);
4219
4174
  }
4175
+ .beer [dir=rtl] .switch > input:active:checked:not(:disabled) + span::before,
4176
+ .beer [dir=rtl] .switch.icon > input:active:checked:not(:disabled) + span > i {
4177
+ transform: translate(-1.75rem, -50%) scale(-1.2);
4178
+ }
4220
4179
  .beer :is(.checkbox, .radio, .switch) > input:disabled + span {
4221
4180
  opacity: 0.5;
4222
4181
  cursor: not-allowed;
@@ -4559,6 +4518,10 @@ html {
4559
4518
  .beer .slider > :hover ~ .tooltip.bottom {
4560
4519
  inset-block: auto -1rem !important;
4561
4520
  }
4521
+
4522
+ .beer:has(input[type=range]:focus) {
4523
+ overflow: hidden;
4524
+ }
4562
4525
  }
4563
4526
  .beer .snackbar {
4564
4527
  position: fixed;