twntyx-css 1.0.2 → 1.0.5

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 (70) hide show
  1. package/llm/components/ai-orb.json +0 -1
  2. package/llm/components/ai-perl.json +5 -13
  3. package/llm/components/all-components.json +13 -5
  4. package/llm/components/{banner-marketplace.json → banner-funding.json} +8 -8
  5. package/llm/components/breadcrumb.json +0 -1
  6. package/llm/components/button-container.json +1 -0
  7. package/llm/components/chat-ai.json +100 -6
  8. package/llm/components/chat-footer.json +24 -3
  9. package/llm/components/checkmark.json +0 -1
  10. package/llm/components/command-palette.json +0 -1
  11. package/llm/components/countdown.json +1 -1
  12. package/llm/components/divider.json +1 -1
  13. package/llm/components/kbd.json +1 -1
  14. package/llm/components/key-value.json +2 -10
  15. package/llm/components/{skeleton.json → loader-skeleton.json} +7 -5
  16. package/llm/components/{loader.json → loader-symbol.json} +8 -10
  17. package/llm/components/{empty-state.json → loader-text.json} +22 -20
  18. package/llm/components/progress-bullet.json +0 -1
  19. package/llm/components/state.json +2 -1
  20. package/llm/components/stepper.json +1 -1
  21. package/llm/components/steps.json +6 -95
  22. package/llm/components/surface.json +2 -0
  23. package/llm/components/tabs.json +1 -0
  24. package/llm/components/{input-group.json → template-navbar.json} +28 -43
  25. package/llm/components/text-input.json +8 -169
  26. package/llm/components/toast.json +0 -2
  27. package/llm/components/tooltip.json +1 -1
  28. package/llm/examples/ai-perl.html +1 -1
  29. package/llm/examples/banner-funding.html +1 -0
  30. package/llm/examples/chat-ai.html +1 -1
  31. package/llm/examples/chat-footer.html +1 -1
  32. package/llm/examples/key-value.html +1 -1
  33. package/llm/examples/loader-skeleton.html +1 -0
  34. package/llm/examples/loader-symbol.html +1 -0
  35. package/llm/examples/loader-text.html +1 -0
  36. package/llm/examples/steps.html +1 -1
  37. package/llm/examples/template-navbar.html +1 -0
  38. package/llm/index.json +73 -88
  39. package/llm/patterns.json +2 -2
  40. package/llm/tokens.json +657 -367
  41. package/package.json +1 -1
  42. package/styles/ai.css +3 -7
  43. package/styles/animation.css +228 -94
  44. package/styles/button.css +50 -39
  45. package/styles/card.css +3 -3
  46. package/styles/colors.css +525 -283
  47. package/styles/datepicker.css +8 -15
  48. package/styles/divider.css +1 -1
  49. package/styles/form.css +6 -8
  50. package/styles/globals.css +62 -64
  51. package/styles/key-value.css +4 -3
  52. package/styles/loader.css +25 -31
  53. package/styles/logotype.css +6 -6
  54. package/styles/scrollbar.css +2 -2
  55. package/styles/shared.css +17 -17
  56. package/styles/skeleton.css +2 -1
  57. package/styles/state.css +109 -97
  58. package/styles/steps.css +2 -2
  59. package/styles/surface.css +74 -90
  60. package/styles/table.css +3 -3
  61. package/styles/toast.css +3 -5
  62. package/llm/components/navbar.json +0 -158
  63. package/llm/examples/banner-marketplace.html +0 -1
  64. package/llm/examples/empty-state.html +0 -1
  65. package/llm/examples/input-group.html +0 -1
  66. package/llm/examples/loader.html +0 -1
  67. package/llm/examples/navbar.html +0 -1
  68. package/llm/examples/skeleton.html +0 -1
  69. package/styles/empty-state.css +0 -48
  70. package/styles/navbar.css +0 -48
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twntyx-css",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "exports": {
5
5
  "./llm": "./llm/index.json",
6
6
  "./llm/components/*": "./llm/components/*.json",
package/styles/ai.css CHANGED
@@ -4,11 +4,7 @@
4
4
 
5
5
  @utility ai-perl {
6
6
  --ai-perl-size: 140px;
7
- @apply relative flex items-center justify-center select-none gap-0.5 leading-none;
8
- @apply text-text-default/25;
9
- @apply font-semibold tracking-wide;
10
- width: var(--ai-perl-size);
11
- height: var(--ai-perl-size);
7
+ @apply size-(--ai-perl-size) relative flex items-center justify-center select-none;
12
8
  }
13
9
 
14
10
  @utility ai-perl-ring {
@@ -17,9 +13,9 @@
17
13
  --ai-perl-c3: var(--color-brand-moderate);
18
14
  --ai-perl-c1-mid: var(--color-brand-soft);
19
15
  --ai-perl-c2-mid: var(--color-brand-light);
20
- --ai-perl-c3-mid: var(--color-brand-default);
16
+ --ai-perl-c3-mid: var(--color-brand-soft);
21
17
  --ai-perl-glow-1: color-mix(in srgb, var(--color-brand-moderate) 35%, transparent);
22
- --ai-perl-glow-2: color-mix(in srgb, var(--color-brand-default) 25%, transparent);
18
+ --ai-perl-glow-2: color-mix(in srgb, var(--color-brand-light) 25%, transparent);
23
19
 
24
20
  @apply absolute inset-0 rounded-full animate-ai-perl-circle pointer-events-none;
25
21
  }
@@ -9,7 +9,6 @@
9
9
  inherits: false;
10
10
  }
11
11
 
12
-
13
12
  @property --ai-orb-angle {
14
13
  syntax: '<angle>';
15
14
  inherits: false;
@@ -141,8 +140,8 @@
141
140
  )
142
141
  both;
143
142
  --animate-jump-top: bounceJumpTop 6s infinite both;
144
- --animate-state-explosion: stateExplosion 0.6s cubic-bezier(0.34, 1.56, 0.64, 1)
145
- forwards;
143
+ --animate-state-explosion: stateExplosion 0.6s
144
+ cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
146
145
  --animate-state-fire-in: stateFireIn 1s cubic-bezier(0.77, 0, 0.175, 1) both;
147
146
  --animate-state-in-top: stateInTop 1s cubic-bezier(0.77, 0, 0.175, 1) both;
148
147
  --animate-emote-animated: emoteAnimated 1.4s linear both infinite;
@@ -303,7 +302,6 @@
303
302
  1
304
303
  )
305
304
  both;
306
- --animate-loading-text-gradient: loadingTextGradient 1.5s ease infinite;
307
305
  --animate-shake-bottom: shake-bottom 0.6s
308
306
  cubic-bezier(0.455, 0.03, 0.515, 0.955) both;
309
307
  --animate-claim-diamond-rotate: claimDiamondRotate 1s
@@ -428,17 +426,50 @@
428
426
  --animate-flip-in: flipIn 1s cubic-bezier(0.77, 0, 0.175, 1) both;
429
427
  --animate-ripple-out: rippleOut 1s cubic-bezier(0, 0, 0.2, 1) forwards;
430
428
  --animate-success-in-top: successInTop 1s cubic-bezier(0.77, 0, 0.175, 1) both;
431
- --animate-scale-out-big: scaleOutBig 0.5s cubic-bezier(0, 0.4, 0.8, 1.01) forwards;
429
+ --animate-scale-out-big: scaleOutBig 0.5s cubic-bezier(0, 0.4, 0.8, 1.01)
430
+ forwards;
432
431
  --animate-tooltip-in-top: tooltip-in-top 0.2s ease-out;
433
432
  --animate-tooltip-in-bottom: tooltip-in-bottom 0.2s ease-out;
434
433
  --animate-tooltip-in-left: tooltip-in-left 0.2s ease-out;
435
434
  --animate-tooltip-in-right: tooltip-in-right 0.2s ease-out;
436
435
  --animate-shine: shine 10s cubic-bezier(0.7, 0, 0.3, 1) infinite;
437
- --animate-stroke-animate: stroke-animate 1s cubic-bezier(0.075, 0.82, 0.165, 1) both;
438
- --animate-chat-bubble-in: chat-bubble-in 0.2s cubic-bezier(0.77, 0, 0.175, 1) both;
436
+ --animate-stroke-animate: stroke-animate 1s
437
+ cubic-bezier(0.075, 0.82, 0.165, 1) both;
438
+ --animate-chat-bubble-in: chat-bubble-in 0.2s cubic-bezier(0.77, 0, 0.175, 1)
439
+ both;
439
440
  --animate-aurora: aurora 60s linear infinite;
441
+ --animate-loading-text-gradient: loadingTextGradient 1.5s ease infinite;
440
442
 
441
- @keyframes uiInBottom {
443
+ @keyframes loadingTextGradient {
444
+ 0% {
445
+ background: linear-gradient(
446
+ to right,
447
+ var(--tw-gradient-from) 0%,
448
+ var(--tw-gradient-to) 12%,
449
+ var(--tw-gradient-from) 24%,
450
+ var(--tw-gradient-from) 100%
451
+ );
452
+ -webkit-background-clip: text;
453
+ -webkit-text-fill-color: transparent;
454
+ background-size: 300% auto;
455
+ background-position: -50%;
456
+ }
457
+ 100% {
458
+ background: linear-gradient(
459
+ to right,
460
+ var(--tw-gradient-from) 0%,
461
+ var(--tw-gradient-to) 12%,
462
+ var(--tw-gradient-from) 24%,
463
+ var(--tw-gradient-from) 100%
464
+ );
465
+ -webkit-background-clip: text;
466
+ -webkit-text-fill-color: transparent;
467
+ background-size: 300% auto;
468
+ background-position: -200%;
469
+ }
470
+ }
471
+
472
+ @keyframes uiInBottom {
442
473
  0% {
443
474
  transform: translateY(100%);
444
475
  opacity: 0;
@@ -865,35 +896,6 @@
865
896
  }
866
897
  }
867
898
 
868
- @keyframes loadingTextGradient {
869
- 0% {
870
- background: linear-gradient(
871
- to right,
872
- var(--tw-gradient-from) 0%,
873
- var(--tw-gradient-to) 12%,
874
- var(--tw-gradient-from) 24%,
875
- var(--tw-gradient-from) 100%
876
- );
877
- -webkit-background-clip: text;
878
- -webkit-text-fill-color: transparent;
879
- background-size: 300% auto;
880
- background-position: -50%;
881
- }
882
- 100% {
883
- background: linear-gradient(
884
- to right,
885
- var(--tw-gradient-from) 0%,
886
- var(--tw-gradient-to) 12%,
887
- var(--tw-gradient-from) 24%,
888
- var(--tw-gradient-from) 100%
889
- );
890
- -webkit-background-clip: text;
891
- -webkit-text-fill-color: transparent;
892
- background-size: 300% auto;
893
- background-position: -200%;
894
- }
895
- }
896
-
897
899
  @keyframes xpEventInHeight {
898
900
  0% {
899
901
  height: 0;
@@ -1044,7 +1046,7 @@
1044
1046
  @keyframes stateExplosion {
1045
1047
  0% {
1046
1048
  transform: scale(0.8);
1047
- box-shadow:
1049
+ box-shadow:
1048
1050
  inset 0 0 0 2rem var(--color-brand-default),
1049
1051
  0 0 0 0 var(--color-brand-default),
1050
1052
  0 0 20px 0 var(--color-brand-default);
@@ -1053,7 +1055,7 @@
1053
1055
  }
1054
1056
  50% {
1055
1057
  transform: scale(1.5);
1056
- box-shadow:
1058
+ box-shadow:
1057
1059
  inset 0 0 0 0.5rem var(--color-brand-moderate),
1058
1060
  0 0 15px 5px var(--color-brand-moderate),
1059
1061
  0 0 30px 10px var(--color-brand-default);
@@ -1062,7 +1064,7 @@
1062
1064
  }
1063
1065
  100% {
1064
1066
  transform: scale(2.5);
1065
- box-shadow:
1067
+ box-shadow:
1066
1068
  inset 0 0 0 0 transparent,
1067
1069
  0 0 0 0 transparent,
1068
1070
  0 0 0 0 transparent;
@@ -1526,7 +1528,6 @@
1526
1528
  }
1527
1529
  }
1528
1530
 
1529
-
1530
1531
  @keyframes cashCenter {
1531
1532
  0% {
1532
1533
  position: absolute;
@@ -2075,117 +2076,250 @@
2075
2076
 
2076
2077
  /* Moved from theme.css */
2077
2078
  @keyframes moveDown {
2078
- 0% { transform: translateY(0%); }
2079
- 100% { transform: translateY(100%); }
2079
+ 0% {
2080
+ transform: translateY(0%);
2080
2081
  }
2082
+ 100% {
2083
+ transform: translateY(100%);
2084
+ }
2085
+ }
2081
2086
 
2082
2087
  @keyframes moveUp {
2083
- 0% { transform: translateY(0%); }
2084
- 100% { transform: translateY(-100%); }
2088
+ 0% {
2089
+ transform: translateY(0%);
2090
+ }
2091
+ 100% {
2092
+ transform: translateY(-100%);
2085
2093
  }
2094
+ }
2086
2095
 
2087
2096
  @keyframes moveRight {
2088
- 0% { transform: translateX(0%); }
2089
- 100% { transform: translateX(100%); }
2097
+ 0% {
2098
+ transform: translateX(0%);
2090
2099
  }
2100
+ 100% {
2101
+ transform: translateX(100%);
2102
+ }
2103
+ }
2091
2104
 
2092
2105
  @keyframes moveLeft {
2093
- 0% { transform: translateX(0%); }
2094
- 100% { transform: translateX(-100%); }
2106
+ 0% {
2107
+ transform: translateX(0%);
2095
2108
  }
2109
+ 100% {
2110
+ transform: translateX(-100%);
2111
+ }
2112
+ }
2096
2113
 
2097
2114
  @keyframes modalIn {
2098
- 0% { transform: scale(0.975); opacity: 0; }
2099
- 100% { transform: scale(1); opacity: 1; }
2115
+ 0% {
2116
+ transform: scale(0.975);
2117
+ opacity: 0;
2118
+ }
2119
+ 100% {
2120
+ transform: scale(1);
2121
+ opacity: 1;
2100
2122
  }
2123
+ }
2101
2124
 
2102
2125
  @keyframes popoverInTop {
2103
- 0% { transform: translateY(-0.125rem) scale(1); opacity: 0; }
2104
- 100% { transform: translateY(0) scale(1); opacity: 1; }
2126
+ 0% {
2127
+ transform: translateY(-0.125rem) scale(1);
2128
+ opacity: 0;
2129
+ }
2130
+ 100% {
2131
+ transform: translateY(0) scale(1);
2132
+ opacity: 1;
2105
2133
  }
2134
+ }
2106
2135
 
2107
2136
  @keyframes popoverInBottom {
2108
- 0% { transform: translateY(0.125rem) scale(1); opacity: 0; }
2109
- 100% { transform: translateY(0) scale(1); opacity: 1; }
2137
+ 0% {
2138
+ transform: translateY(0.125rem) scale(1);
2139
+ opacity: 0;
2140
+ }
2141
+ 100% {
2142
+ transform: translateY(0) scale(1);
2143
+ opacity: 1;
2110
2144
  }
2145
+ }
2111
2146
 
2112
2147
  @keyframes flipIn {
2113
- 0% { opacity: 0; transform: translateZ(0) rotateY(-90deg) rotateX(0deg); }
2114
- 100% { opacity: 1; transform: translateZ(0) rotateY(0deg) rotateX(0deg); }
2148
+ 0% {
2149
+ opacity: 0;
2150
+ transform: translateZ(0) rotateY(-90deg) rotateX(0deg);
2115
2151
  }
2152
+ 100% {
2153
+ opacity: 1;
2154
+ transform: translateZ(0) rotateY(0deg) rotateX(0deg);
2155
+ }
2156
+ }
2116
2157
 
2117
2158
  @keyframes successInTop {
2118
- 0% { transform: scale(1.1) translateY(0); filter: blur(4px); opacity: 0; }
2119
- 100% { transform: scale(1) translateY(0); filter: blur(0px); opacity: 1; }
2159
+ 0% {
2160
+ transform: scale(1.1) translateY(0);
2161
+ filter: blur(4px);
2162
+ opacity: 0;
2120
2163
  }
2164
+ 100% {
2165
+ transform: scale(1) translateY(0);
2166
+ filter: blur(0px);
2167
+ opacity: 1;
2168
+ }
2169
+ }
2121
2170
 
2122
2171
  @keyframes scaleOutBig {
2123
- 0% { pointer-events: none; opacity: 1; transform: scale(1); }
2124
- 100% { pointer-events: none; opacity: 0; transform: scale(2); }
2172
+ 0% {
2173
+ pointer-events: none;
2174
+ opacity: 1;
2175
+ transform: scale(1);
2125
2176
  }
2177
+ 100% {
2178
+ pointer-events: none;
2179
+ opacity: 0;
2180
+ transform: scale(2);
2181
+ }
2182
+ }
2126
2183
 
2127
2184
  @keyframes tooltip-in-top {
2128
- 0% { opacity: 0; transform: translateY(4px); }
2129
- 100% { opacity: 1; transform: translateY(0); }
2185
+ 0% {
2186
+ opacity: 0;
2187
+ transform: translateY(4px);
2130
2188
  }
2189
+ 100% {
2190
+ opacity: 1;
2191
+ transform: translateY(0);
2192
+ }
2193
+ }
2131
2194
 
2132
2195
  @keyframes tooltip-in-bottom {
2133
- 0% { opacity: 0; transform: translateY(-4px); }
2134
- 100% { opacity: 1; transform: translateY(0); }
2196
+ 0% {
2197
+ opacity: 0;
2198
+ transform: translateY(-4px);
2135
2199
  }
2200
+ 100% {
2201
+ opacity: 1;
2202
+ transform: translateY(0);
2203
+ }
2204
+ }
2136
2205
 
2137
2206
  @keyframes tooltip-in-left {
2138
- 0% { opacity: 0; transform: translateX(4px); }
2139
- 100% { opacity: 1; transform: translateX(0); }
2207
+ 0% {
2208
+ opacity: 0;
2209
+ transform: translateX(4px);
2140
2210
  }
2211
+ 100% {
2212
+ opacity: 1;
2213
+ transform: translateX(0);
2214
+ }
2215
+ }
2141
2216
 
2142
2217
  @keyframes tooltip-in-right {
2143
- 0% { opacity: 0; transform: translateX(-4px); }
2144
- 100% { opacity: 1; transform: translateX(0); }
2218
+ 0% {
2219
+ opacity: 0;
2220
+ transform: translateX(-4px);
2145
2221
  }
2222
+ 100% {
2223
+ opacity: 1;
2224
+ transform: translateX(0);
2225
+ }
2226
+ }
2146
2227
 
2147
2228
  @keyframes fade-in {
2148
- 0% { opacity: 0; }
2149
- 100% { opacity: 1; }
2229
+ 0% {
2230
+ opacity: 0;
2150
2231
  }
2232
+ 100% {
2233
+ opacity: 1;
2234
+ }
2235
+ }
2151
2236
 
2152
2237
  @keyframes shine {
2153
- 0% { background-size: 300% auto; background-position: 160%; }
2154
- 75%, 100% { background-size: 300% auto; background-position: -30%; }
2238
+ 0% {
2239
+ background-size: 300% auto;
2240
+ background-position: 160%;
2155
2241
  }
2242
+ 75%,
2243
+ 100% {
2244
+ background-size: 300% auto;
2245
+ background-position: -30%;
2246
+ }
2247
+ }
2156
2248
 
2157
2249
  @keyframes stroke-animate {
2158
- 0% { stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; stroke-dashoffset: 100; opacity: 1; }
2159
- 100% { stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; stroke-dashoffset: 39; opacity: 0.5; }
2250
+ 0% {
2251
+ stroke-linecap: round;
2252
+ stroke-linejoin: round;
2253
+ stroke-dasharray: 100;
2254
+ stroke-dashoffset: 100;
2255
+ opacity: 1;
2256
+ }
2257
+ 100% {
2258
+ stroke-linecap: round;
2259
+ stroke-linejoin: round;
2260
+ stroke-dasharray: 100;
2261
+ stroke-dashoffset: 39;
2262
+ opacity: 0.5;
2160
2263
  }
2264
+ }
2161
2265
 
2162
2266
  @keyframes loading-text-gradient {
2163
- 0% {
2164
- background: linear-gradient(to right, var(--tw-gradient-from) 0%, var(--tw-gradient-to) 12%, var(--tw-gradient-from) 24%, var(--tw-gradient-from) 100%);
2165
- -webkit-background-clip: text;
2166
- -webkit-text-fill-color: transparent;
2167
- background-size: 300% auto;
2168
- background-position: -50%;
2169
- }
2170
- 100% {
2171
- background: linear-gradient(to right, var(--tw-gradient-from) 0%, var(--tw-gradient-to) 12%, var(--tw-gradient-from) 24%, var(--tw-gradient-from) 100%);
2172
- -webkit-background-clip: text;
2173
- -webkit-text-fill-color: transparent;
2174
- background-size: 300% auto;
2175
- background-position: -200%;
2176
- }
2267
+ 0% {
2268
+ background: linear-gradient(
2269
+ to right,
2270
+ var(--tw-gradient-from) 0%,
2271
+ var(--tw-gradient-to) 12%,
2272
+ var(--tw-gradient-from) 24%,
2273
+ var(--tw-gradient-from) 100%
2274
+ );
2275
+ -webkit-background-clip: text;
2276
+ -webkit-text-fill-color: transparent;
2277
+ background-size: 300% auto;
2278
+ background-position: -50%;
2279
+ }
2280
+ 100% {
2281
+ background: linear-gradient(
2282
+ to right,
2283
+ var(--tw-gradient-from) 0%,
2284
+ var(--tw-gradient-to) 12%,
2285
+ var(--tw-gradient-from) 24%,
2286
+ var(--tw-gradient-from) 100%
2287
+ );
2288
+ -webkit-background-clip: text;
2289
+ -webkit-text-fill-color: transparent;
2290
+ background-size: 300% auto;
2291
+ background-position: -200%;
2177
2292
  }
2293
+ }
2178
2294
 
2179
2295
  @keyframes chat-bubble-in {
2180
- 0% { transform: scale(0.8); opacity: 0; }
2181
- 100% { transform: scale(1); opacity: 1; }
2296
+ 0% {
2297
+ transform: scale(0.8);
2298
+ opacity: 0;
2182
2299
  }
2300
+ 100% {
2301
+ transform: scale(1);
2302
+ opacity: 1;
2303
+ }
2304
+ }
2183
2305
 
2184
2306
  @keyframes aurora {
2185
- 0% { background-position: 0% 50%, 0% 50%; }
2186
- 50% { background-position: 100% 50%, 100% 50%; }
2187
- 100% { background-position: 0% 50%, 0% 50%; }
2307
+ 0% {
2308
+ background-position:
2309
+ 0% 50%,
2310
+ 0% 50%;
2188
2311
  }
2312
+ 50% {
2313
+ background-position:
2314
+ 100% 50%,
2315
+ 100% 50%;
2316
+ }
2317
+ 100% {
2318
+ background-position:
2319
+ 0% 50%,
2320
+ 0% 50%;
2321
+ }
2322
+ }
2189
2323
  }
2190
2324
 
2191
2325
  .perspective {
package/styles/button.css CHANGED
@@ -107,7 +107,7 @@
107
107
  }
108
108
  }
109
109
  &.button-primary {
110
- &,
110
+ &,
111
111
  &:hover,
112
112
  &:active {
113
113
  @apply bg-none text-shadow-none bg-core-ui-100 dark:bg-core-ui-800 text-text-secondary/75 border-line-default;
@@ -150,9 +150,7 @@
150
150
 
151
151
  /* VARIANTS */
152
152
  &.button-primary {
153
- @apply
154
- surface-interactive-brand
155
- ;
153
+ @apply surface-interactive-brand;
156
154
 
157
155
  &.is-active {
158
156
  @apply text-text-default bg-background-brand-active;
@@ -160,7 +158,7 @@
160
158
  }
161
159
 
162
160
  /* Text feedback */
163
- &[data-feedback]:not([data-feedback=""]):not([data-feedback-icon]) {
161
+ &[data-feedback]:not([data-feedback='']):not([data-feedback-icon]) {
164
162
  @apply overflow-hidden;
165
163
 
166
164
  &::before {
@@ -174,7 +172,7 @@
174
172
  }
175
173
 
176
174
  /* Icon feedback */
177
- &[data-feedback][data-feedback-icon]:not([data-feedback=""]) {
175
+ &[data-feedback][data-feedback-icon]:not([data-feedback='']) {
178
176
  @apply relative;
179
177
 
180
178
  &::before {
@@ -191,11 +189,12 @@
191
189
  }
192
190
 
193
191
  > * {
194
- animation: button-feedback-icon-label 4s cubic-bezier(1, 0, 0, 0.9) forwards;
192
+ animation: button-feedback-icon-label 4s cubic-bezier(1, 0, 0, 0.9)
193
+ forwards;
195
194
  }
196
195
 
197
196
  /* Success variant */
198
- &[data-feedback-icon="success"] {
197
+ &[data-feedback-icon='success'] {
199
198
  &::after {
200
199
  @apply mask-check;
201
200
  }
@@ -209,7 +208,7 @@
209
208
  }
210
209
 
211
210
  /* Error variant */
212
- &[data-feedback-icon="error"] {
211
+ &[data-feedback-icon='error'] {
213
212
  &::after {
214
213
  @apply mask-close;
215
214
  }
@@ -223,7 +222,7 @@
223
222
  }
224
223
 
225
224
  /* Attention variant */
226
- &[data-feedback-icon="attention"] {
225
+ &[data-feedback-icon='attention'] {
227
226
  &::after {
228
227
  @apply mask-exclamation;
229
228
  }
@@ -238,7 +237,7 @@
238
237
  }
239
238
 
240
239
  /* Hide feedback when empty */
241
- &[data-feedback=""] {
240
+ &[data-feedback=''] {
242
241
  &::before,
243
242
  &::after {
244
243
  @apply hidden;
@@ -246,7 +245,7 @@
246
245
  }
247
246
 
248
247
  /* Icon-only feedback */
249
- &[data-feedback="."] {
248
+ &[data-feedback='.'] {
250
249
  &::before {
251
250
  @apply hidden;
252
251
  }
@@ -335,25 +334,39 @@
335
334
  /* Close */
336
335
  .button.button-close,
337
336
  .button-close {
338
- --close-size: 2.75rem;
339
- @apply size-(--close-size) min-w-(--close-size) min-h-(--close-size) p-0 text-transparent! rounded-full transition-transform duration-300 hover:rotate-90 ease-out-quint;
337
+ --close-size: 2.75rem;
338
+ @apply size-(--close-size) min-w-(--close-size) min-h-(--close-size) p-0 text-transparent! rounded-full;
340
339
 
341
340
  > span {
342
341
  @apply opacity-0 pointer-events-none;
343
342
  }
344
343
 
345
344
  &::before {
346
- @apply size-[calc(var(--close-size)-4px)];
345
+ @apply content-['']
346
+ block
347
+ size-[calc(var(--close-size)-20%)]
348
+ absolute
349
+ rotate-0
350
+ mask-close
351
+ transition-transform
352
+ duration-300
353
+ ease-out-quint;
347
354
  }
348
-
355
+
356
+ &:hover {
357
+ &::before {
358
+ @apply rotate-90;
359
+ }
360
+ }
361
+
349
362
  &.button-xs {
350
- --close-size:1.25rem;
363
+ --close-size: 1.25rem;
351
364
  }
352
365
  &.button-sm {
353
- --close-size:1.75rem;
366
+ --close-size: 1.75rem;
354
367
  }
355
368
  &.button-lg {
356
- --close-size:3.5rem;
369
+ --close-size: 3.5rem;
357
370
  }
358
371
 
359
372
  &.button-primary {
@@ -380,15 +393,6 @@
380
393
  }
381
394
  }
382
395
 
383
- &::before {
384
- @apply content-['']
385
- absolute
386
- /* block
387
- inset-0 */
388
- transform-gpu
389
- mask-close;
390
- }
391
-
392
396
  &:not([disabled]),
393
397
  &:not(.is-disabled) {
394
398
  &:hover,
@@ -400,8 +404,7 @@
400
404
  }
401
405
  }
402
406
 
403
-
404
- /* SIZES */
407
+ /* SIZES */
405
408
  .button-xs {
406
409
  @apply text-xs
407
410
  min-w-5
@@ -465,21 +468,27 @@
465
468
  }
466
469
  }
467
470
 
468
-
469
471
  /* Button input */
470
472
  .button {
471
- &:is(input[type="checkbox"]),
472
- &:is(input[type="radio"]) {
473
+ &:is(input[type='checkbox']),
474
+ &:is(input[type='radio']) {
473
475
  @apply appearance-none;
476
+
474
477
  &::after {
475
478
  @apply content-[attr(aria-label)];
476
479
  }
477
480
 
481
+ &:checked {
482
+ @apply z-10;
483
+ }
484
+
478
485
  &.button-primary {
479
486
  &:checked {
480
487
  @apply bg-background-inverted border-background-inverted bg-none text-shadow-none shadow-none!;
481
-
482
- *, &::before, &::after {
488
+
489
+ *,
490
+ &::before,
491
+ &::after {
483
492
  @apply drop-shadow-none!;
484
493
  }
485
494
  &::after {
@@ -492,7 +501,9 @@
492
501
  &:checked {
493
502
  @apply surface-brand;
494
503
 
495
- *, &::before, &::after {
504
+ *,
505
+ &::before,
506
+ &::after {
496
507
  @apply drop-shadow-none!;
497
508
  }
498
509
  }
@@ -501,11 +512,11 @@
501
512
  }
502
513
 
503
514
  .join > .button.button-plain,
504
- .button.button-plain:is(input[type="checkbox"]),
505
- .button.button-plain:is(input[type="radio"]) {
515
+ .button.button-plain:is(input[type='checkbox']),
516
+ .button.button-plain:is(input[type='radio']) {
506
517
  @apply no-underline include-border-secondary text-text-default;
507
518
  &:checked {
508
- @apply bg-background-inverted border-background-inverted bg-none text-shadow-none;
519
+ @apply bg-background-inverted border-background-inverted bg-none text-shadow-none;
509
520
  &::after {
510
521
  @apply text-text-inverted;
511
522
  }