daisyui 4.0.8 → 4.1.0-alpha.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.
package/dist/unstyled.css CHANGED
@@ -1,322 +1,210 @@
1
1
  .alert {
2
- display: grid;
3
- width: 100%;
4
- grid-auto-flow: row;
5
- align-content: flex-start;
6
- align-items: center;
7
- justify-items: center;
8
- gap: 1rem;
9
- text-align: center
10
- }
11
- @media (min-width: 640px) {
12
- .alert {
13
- grid-auto-flow: column;
14
- grid-template-columns: auto minmax(auto,1fr);
15
- justify-items: start;
16
- text-align: start
17
- }
2
+ @apply grid w-full grid-flow-row content-start items-center justify-items-center gap-4 text-center sm:grid-flow-col sm:grid-cols-[auto_minmax(auto,1fr)] sm:justify-items-start sm:text-start;
18
3
  }
19
4
  .artboard {
20
- width: 100%
5
+ @apply w-full;
21
6
  }
22
7
  .avatar {
23
- position: relative;
24
- display: inline-flex
25
- }
26
- .avatar > div {
27
- display: block;
28
- aspect-ratio: 1 / 1;
29
- overflow: hidden
30
- }
31
- .avatar img {
32
- height: 100%;
33
- width: 100%;
34
- object-fit: cover
35
- }
36
- .avatar.placeholder > div {
37
- display: flex;
38
- align-items: center;
39
- justify-content: center
8
+ @apply relative inline-flex;
9
+ & > div {
10
+ @apply block aspect-square overflow-hidden;
11
+ }
12
+ img {
13
+ @apply h-full w-full object-cover;
14
+ }
15
+ &.placeholder {
16
+ & > div {
17
+ @apply flex items-center justify-center;
18
+ }
19
+ }
40
20
  }
41
21
  .badge {
42
- display: inline-flex;
43
- align-items: center;
44
- justify-content: center;
45
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
46
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
47
- transition-duration: 200ms;
48
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
49
- height: 1.25rem;
50
- font-size: 0.875rem;
51
- line-height: 1.25rem;
22
+ @apply inline-flex items-center justify-center transition duration-200 ease-out;
23
+ @apply h-5 text-sm leading-5;
52
24
  width: fit-content;
53
25
  padding-left: 0.563rem;
54
- padding-right: 0.563rem
26
+ padding-right: 0.563rem;
55
27
  }
56
28
  .btm-nav {
57
- position: fixed;
58
- bottom: 0px;
59
- left: 0px;
60
- right: 0px;
61
- display: flex;
62
- width: 100%;
63
- flex-direction: row;
64
- align-items: center;
65
- justify-content: space-around;
66
- padding-bottom: env(safe-area-inset-bottom)
67
- }
68
- .btm-nav > * {
69
- position: relative;
70
- display: flex;
71
- height: 100%;
72
- flex-basis: 100%;
73
- cursor: pointer;
74
- flex-direction: column;
75
- align-items: center;
76
- justify-content: center;
77
- gap: 0.25rem
29
+ @apply fixed bottom-0 left-0 right-0 flex w-full flex-row items-center justify-around;
30
+ padding-bottom: env(safe-area-inset-bottom);
31
+ & > * {
32
+ @apply relative flex h-full basis-full cursor-pointer flex-col items-center justify-center gap-1;
33
+ }
78
34
  }
79
35
  .breadcrumbs {
80
- max-width: 100%;
81
- overflow-x: auto
82
- }
83
- .breadcrumbs > ul,
84
- .breadcrumbs > ol {
85
- display: flex;
86
- align-items: center;
87
- white-space: nowrap;
88
- min-height: min-content
89
- }
90
- .breadcrumbs > ul > li, .breadcrumbs > ol > li {
91
- display: flex;
92
- align-items: center
93
- }
94
- .breadcrumbs > ul > li > a, .breadcrumbs > ol > li > a {
95
- display: flex;
96
- cursor: pointer;
97
- align-items: center
98
- }
99
- @media(hover:hover) {
100
- .breadcrumbs > ul > li > a:hover, .breadcrumbs > ol > li > a:hover {
101
- text-decoration-line: underline
36
+ @apply max-w-full overflow-x-auto;
37
+ & > ul,
38
+ & > ol {
39
+ @apply flex items-center whitespace-nowrap;
40
+ min-height: min-content;
41
+ & > li {
42
+ @apply flex items-center;
43
+ & > a {
44
+ @apply flex cursor-pointer items-center [@media(hover:hover)]:hover:underline;
45
+ }
102
46
  }
47
+ }
103
48
  }
104
49
  .btn {
105
- display: inline-flex;
106
- height: 3rem;
107
- min-height: 3rem;
108
- flex-shrink: 0;
109
- cursor: pointer;
110
- user-select: none;
111
- flex-wrap: wrap;
112
- align-items: center;
113
- justify-content: center;
114
- border-radius: var(--rounded-btn, 0.5rem);
115
- border-color: transparent;
116
- padding-left: 1rem;
117
- padding-right: 1rem;
118
- text-align: center;
50
+ @apply rounded-btn inline-flex h-12 min-h-[3rem] flex-shrink-0 cursor-pointer select-none flex-wrap items-center justify-center border-transparent px-4 text-center;
119
51
  font-size: 0.875rem;
120
- line-height: 1em
121
- }
52
+ line-height: 1em;
122
53
  /* disabled */
123
- .btn-disabled,
124
- .btn[disabled],
125
- .btn:disabled {
126
- pointer-events: none
127
- }
54
+ &-disabled,
55
+ &[disabled],
56
+ &:disabled {
57
+ @apply pointer-events-none;
58
+ }
59
+
128
60
  /* shapes */
129
- .btn-square {
130
- height: 3rem;
131
- width: 3rem;
132
- padding: 0px
133
- }
134
- .btn-circle {
135
- height: 3rem;
136
- width: 3rem;
137
- border-radius: 9999px;
138
- padding: 0px
61
+ &-square {
62
+ @apply h-12 w-12 p-0;
63
+ }
64
+ &-circle {
65
+ @apply h-12 w-12 rounded-full p-0;
66
+ }
139
67
  }
140
68
 
141
69
  /* radio input and checkbox as button */
142
-
143
70
  :where(.btn:is(input[type="checkbox"])),
144
71
  :where(.btn:is(input[type="radio"])) {
145
- width: auto;
146
- appearance: none
72
+ @apply w-auto appearance-none;
147
73
  }
148
-
149
74
  .btn:is(input[type="checkbox"]):after,
150
75
  .btn:is(input[type="radio"]):after {
151
- --tw-content: attr(aria-label);
152
- content: var(--tw-content)
76
+ @apply content-[attr(aria-label)];
153
77
  }
154
78
  .card {
155
- position: relative;
156
- display: flex;
157
- flex-direction: column
158
- }
159
- .card:focus {
160
- outline: 2px solid transparent;
161
- outline-offset: 2px
162
- }
163
- .card-body {
164
- display: flex;
165
- flex: 1 1 auto;
166
- flex-direction: column
167
- }
168
- .card-body :where(p) {
169
- flex-grow: 1
170
- }
171
- .card-actions {
172
- display: flex;
173
- flex-wrap: wrap;
174
- align-items: flex-start;
175
- gap: 0.5rem
176
- }
177
- .card figure {
178
- display: flex;
179
- align-items: center;
180
- justify-content: center
181
- }
182
- .card.image-full {
183
- display: grid
184
- }
185
- .card.image-full:before {
186
- position: relative;
187
- content: ""
188
- }
189
- .card.image-full:before,
190
- .card.image-full > * {
191
- grid-column-start: 1;
192
- grid-row-start: 1
193
- }
194
- .card.image-full > figure img {
195
- height: 100%;
196
- object-fit: cover
197
- }
198
- .card.image-full > .card-body {
199
- position: relative
79
+ @apply relative flex flex-col;
80
+ &:focus {
81
+ @apply outline-none;
82
+ }
83
+ &-body {
84
+ @apply flex flex-auto flex-col;
85
+ :where(p) {
86
+ @apply flex-grow;
87
+ }
88
+ }
89
+ &-actions {
90
+ @apply flex flex-wrap items-start gap-2;
91
+ }
92
+ & figure {
93
+ @apply flex items-center justify-center;
94
+ }
95
+ &.image-full {
96
+ @apply grid;
97
+ &:before {
98
+ @apply relative;
99
+ content: "";
100
+ }
101
+ &:before,
102
+ & > * {
103
+ @apply col-start-1 row-start-1;
104
+ }
105
+ & > figure img {
106
+ @apply h-full object-cover;
107
+ }
108
+ }
109
+ &.image-full > &-body {
110
+ @apply relative;
111
+ }
200
112
  }
201
113
  .carousel {
202
- display: inline-flex;
203
- overflow-x: scroll;
114
+ @apply inline-flex overflow-x-scroll;
204
115
  scroll-snap-type: x mandatory;
205
116
  scroll-behavior: smooth;
206
- }
207
- .carousel-vertical {
208
- flex-direction: column;
209
- overflow-y: scroll;
117
+ &-vertical {
118
+ @apply flex-col overflow-y-scroll;
210
119
  scroll-snap-type: y mandatory;
211
- }
212
- .carousel-item {
213
- box-sizing: content-box;
214
- display: flex;
215
- flex: none;
120
+ }
121
+ &-item {
122
+ @apply box-content flex flex-none;
216
123
  scroll-snap-align: start;
217
- }
218
- .carousel-center .carousel-item {
124
+ }
125
+ &-center .carousel-item {
219
126
  scroll-snap-align: center;
220
127
  }
221
- .carousel-end .carousel-item {
128
+ &-end .carousel-item {
222
129
  scroll-snap-align: end;
223
130
  }
131
+ }
224
132
  .chat {
225
- display: grid;
226
- grid-template-columns: repeat(2, minmax(0, 1fr));
227
- column-gap: 0.75rem;
228
- padding-top: 0.25rem;
229
- padding-bottom: 0.25rem;
230
- }
231
- .chat-image {
232
- grid-row: span 2 / span 2;
233
- align-self: flex-end;
234
- }
235
- .chat-header {
236
- grid-row-start: 1;
237
- font-size: 0.875rem;
238
- line-height: 1.25rem;
239
- }
240
- .chat-footer {
241
- grid-row-start: 3;
242
- font-size: 0.875rem;
243
- line-height: 1.25rem;
244
- }
245
- .chat-bubble {
246
- position: relative;
247
- display: block;
248
- width: fit-content;
249
- padding-left: 1rem;
250
- padding-right: 1rem;
251
- padding-top: 0.5rem;
252
- padding-bottom: 0.5rem;
133
+ @apply grid grid-cols-2 gap-x-3 py-1;
134
+ &-image {
135
+ @apply row-span-2 self-end;
136
+ }
137
+ &-header {
138
+ @apply row-start-1 text-sm;
139
+ }
140
+ &-footer {
141
+ @apply row-start-3 text-sm;
142
+ }
143
+ &-bubble {
144
+ @apply relative block w-fit px-4 py-2;
253
145
  max-width: 90%;
254
- }
255
- .chat-bubble:before {
256
- position: absolute;
257
- bottom: 0px;
258
- height: 0.75rem;
259
- width: 0.75rem;
146
+ &:before {
147
+ @apply absolute bottom-0 h-3 w-3;
260
148
  background-color: inherit;
261
149
  content: "";
262
150
  mask-size: contain;
263
151
  mask-repeat: no-repeat;
264
152
  mask-position: center;
265
- }
266
- .chat-start {
267
- place-items: start;
153
+ }
154
+ }
155
+ &-start {
156
+ @apply place-items-start;
268
157
  grid-template-columns: auto 1fr;
269
- }
270
- .chat-start .chat-header {
271
- grid-column-start: 2;
272
- }
273
- .chat-start .chat-footer {
274
- grid-column-start: 2;
275
- }
276
- .chat-start .chat-image {
277
- grid-column-start: 1;
278
- }
279
- .chat-start .chat-bubble {
280
- grid-column-start: 2;
281
- }
282
- .chat-start .chat-bubble:before {
158
+ .chat-header {
159
+ @apply col-start-2;
160
+ }
161
+ .chat-footer {
162
+ @apply col-start-2;
163
+ }
164
+ .chat-image {
165
+ @apply col-start-1;
166
+ }
167
+ .chat-bubble {
168
+ @apply col-start-2;
169
+ &:before {
283
170
  mask-image: url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");
284
- }
285
- [dir="rtl"] .chat-start .chat-bubble:before {
171
+ [dir="rtl"] & {
286
172
  mask-image: url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");
287
173
  }
288
- .chat-end {
289
- place-items: end;
174
+ }
175
+ }
176
+ }
177
+ &-end {
178
+ @apply place-items-end;
290
179
  grid-template-columns: 1fr auto;
291
- }
292
- .chat-end .chat-header {
293
- grid-column-start: 1;
294
- }
295
- .chat-end .chat-footer {
296
- grid-column-start: 1;
297
- }
298
- .chat-end .chat-image {
299
- grid-column-start: 2;
300
- }
301
- .chat-end .chat-bubble {
302
- grid-column-start: 1;
303
- }
304
- .chat-end .chat-bubble:before {
180
+ .chat-header {
181
+ @apply col-start-1;
182
+ }
183
+ .chat-footer {
184
+ @apply col-start-1;
185
+ }
186
+ .chat-image {
187
+ @apply col-start-2;
188
+ }
189
+ .chat-bubble {
190
+ @apply col-start-1;
191
+ &:before {
305
192
  mask-image: url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");
306
- }
307
- [dir="rtl"] .chat-end .chat-bubble:before {
193
+ [dir="rtl"] & {
308
194
  mask-image: url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");
309
195
  }
196
+ }
197
+ }
198
+ }
199
+ }
310
200
  .checkbox {
311
- flex-shrink: 0
201
+ @apply shrink-0;
312
202
  }
313
203
  .collapse:not(td):not(tr):not(colgroup) {
314
- visibility: visible;
204
+ @apply visible;
315
205
  }
316
206
  .collapse {
317
- position: relative;
318
- display: grid;
319
- overflow: hidden;
207
+ @apply relative grid overflow-hidden;
320
208
  grid-template-rows: auto 0fr;
321
209
  transition: grid-template-rows 0.2s;
322
210
  }
@@ -324,19 +212,14 @@
324
212
  .collapse > input[type="checkbox"],
325
213
  .collapse > input[type="radio"],
326
214
  .collapse-content {
327
- grid-column-start: 1;
328
- grid-row-start: 1;
215
+ @apply col-start-1 row-start-1;
329
216
  }
330
217
  .collapse > input[type="checkbox"],
331
218
  .collapse > input[type="radio"] {
332
- appearance: none;
333
- opacity: 0;
219
+ @apply appearance-none opacity-0;
334
220
  }
335
221
  .collapse-content {
336
- visibility: hidden;
337
- grid-column-start: 1;
338
- grid-row-start: 2;
339
- min-height: 0px;
222
+ @apply invisible col-start-1 row-start-2 min-h-0;
340
223
  transition: visibility 0.2s;
341
224
  }
342
225
  .collapse[open],
@@ -353,294 +236,189 @@
353
236
  .collapse:focus:not(.collapse-close) > .collapse-content,
354
237
  .collapse:not(.collapse-close) > input[type="checkbox"]:checked ~ .collapse-content,
355
238
  .collapse:not(.collapse-close) > input[type="radio"]:checked ~ .collapse-content {
356
- visibility: visible;
357
- min-height: fit-content;
239
+ @apply visible min-h-fit;
358
240
  }
359
241
  :root .countdown {
360
242
  line-height: 1em;
361
243
  }
362
244
  .countdown {
363
245
  display: inline-flex;
364
- }
365
- .countdown > * {
246
+ & > * {
366
247
  height: 1em;
367
- display: inline-block;
368
- overflow-y: hidden;
369
- }
370
- .countdown > *:before {
248
+ @apply inline-block overflow-y-hidden;
249
+ &:before {
371
250
  position: relative;
372
251
  content: "00\A 01\A 02\A 03\A 04\A 05\A 06\A 07\A 08\A 09\A 10\A 11\A 12\A 13\A 14\A 15\A 16\A 17\A 18\A 19\A 20\A 21\A 22\A 23\A 24\A 25\A 26\A 27\A 28\A 29\A 30\A 31\A 32\A 33\A 34\A 35\A 36\A 37\A 38\A 39\A 40\A 41\A 42\A 43\A 44\A 45\A 46\A 47\A 48\A 49\A 50\A 51\A 52\A 53\A 54\A 55\A 56\A 57\A 58\A 59\A 60\A 61\A 62\A 63\A 64\A 65\A 66\A 67\A 68\A 69\A 70\A 71\A 72\A 73\A 74\A 75\A 76\A 77\A 78\A 79\A 80\A 81\A 82\A 83\A 84\A 85\A 86\A 87\A 88\A 89\A 90\A 91\A 92\A 93\A 94\A 95\A 96\A 97\A 98\A 99\A";
373
252
  white-space: pre;
374
253
  top: calc(var(--value) * -1em);
375
254
  }
255
+ }
256
+ }
376
257
  .diff {
377
- position: relative;
378
- display: grid;
379
- width: 100%;
380
- overflow: hidden;
258
+ @apply relative grid w-full overflow-hidden;
381
259
  container-type: inline-size;
382
- grid-template-columns: auto 1fr
260
+ grid-template-columns: auto 1fr;
383
261
  }
384
262
  .diff-resizer {
385
- position: relative;
386
- top: 50%;
387
- z-index: 1;
388
- height: 3rem;
389
- width: 25rem;
390
- min-width: 1rem;
391
- max-width: calc(100cqi - 1rem);
392
- resize: horizontal;
393
- overflow: hidden;
394
- opacity: 0;
263
+ @apply relative top-1/2 z-[1] h-12 w-[25rem] min-w-[1rem] max-w-[calc(100cqi-1rem)] resize-x overflow-hidden opacity-0;
395
264
  transform-origin: 100% 100%;
396
265
  scale: 4;
397
266
  translate: 1.5rem -1.5rem;
398
- clip-path: inset(calc(100% - 0.75rem) 0 0 calc(100% - 0.75rem))
267
+ clip-path: inset(calc(100% - 0.75rem) 0 0 calc(100% - 0.75rem));
399
268
  }
400
269
  .diff-resizer,
401
270
  .diff-item-1,
402
271
  .diff-item-2 {
403
- position: relative;
404
- grid-column-start: 1;
405
- grid-row-start: 1
272
+ @apply relative col-start-1 row-start-1;
406
273
  }
407
274
  .diff-item-1:after {
408
- pointer-events: none;
409
- position: absolute;
410
- bottom: 0px;
411
- right: 1px;
412
- top: 50%;
413
- z-index: 1;
414
- height: 2rem;
415
- width: 2rem;
416
- --tw-content: '';
417
- content: var(--tw-content);
418
- translate: 50% -50%
275
+ @apply pointer-events-none absolute bottom-0 right-px top-1/2 z-[1] h-8 w-8 content-[''];
276
+ translate: 50% -50%;
419
277
  }
420
278
  .diff-item-2 {
421
- overflow: hidden
279
+ @apply overflow-hidden;
422
280
  }
423
281
  .diff-item-1 > *,
424
282
  .diff-item-2 > * {
425
- pointer-events: none;
426
- position: absolute;
427
- bottom: 0px;
428
- left: 0px;
429
- top: 0px;
430
- height: 100%;
431
- width: 100cqi;
432
- max-width: none;
433
- object-fit: cover;
434
- object-position: center
283
+ @apply pointer-events-none absolute bottom-0 left-0 top-0 h-full w-[100cqi] max-w-none object-cover object-center;
435
284
  }
436
285
  .divider {
437
- display: flex;
438
- flex-direction: row;
439
- align-items: center;
440
- align-self: stretch
441
- }
442
- .divider:before,
443
- .divider:after {
444
- height: 0.125rem;
445
- width: 100%;
446
- flex-grow: 1;
447
- --tw-content: '';
448
- content: var(--tw-content)
449
- }
450
- .divider-start:before {
451
- display: none
452
- }
453
- .divider-end:after {
454
- display: none
286
+ @apply flex flex-row items-center self-stretch;
287
+ &:before,
288
+ &:after {
289
+ @apply h-0.5 w-full flex-grow content-[''];
290
+ }
291
+ &-start:before {
292
+ @apply hidden;
293
+ }
294
+ &-end:after {
295
+ @apply hidden;
296
+ }
455
297
  }
456
298
  .drawer {
457
- position: relative;
458
- display: grid;
299
+ @apply relative grid;
459
300
  grid-auto-columns: max-content auto;
460
- }
461
- .drawer-content {
462
- grid-column-start: 2;
463
- grid-row-start: 1;
464
- }
465
- .drawer-side {
466
- pointer-events: none;
467
- position: fixed;
468
- inset-inline-start: 0px;
469
- top: 0px;
470
- grid-column-start: 1;
471
- grid-row-start: 1;
472
- display: grid;
473
- width: 100%;
474
- grid-template-columns: repeat(1, minmax(0, 1fr));
475
- grid-template-rows: repeat(1, minmax(0, 1fr));
476
- align-items: flex-start;
477
- justify-items: start;
478
- overflow-y: auto;
479
- overscroll-behavior: contain;
301
+ &-content {
302
+ @apply col-start-2 row-start-1;
303
+ }
304
+ &-side {
305
+ @apply pointer-events-none fixed start-0 top-0 col-start-1 row-start-1 grid w-full grid-cols-1 grid-rows-1 items-start justify-items-start overflow-y-auto overscroll-contain;
480
306
  height: 100vh;
481
307
  height: 100dvh;
482
308
  scrollbar-width: none;
483
- }
484
- .drawer-side::-webkit-scrollbar {
485
- display: none;
486
- }
487
- .drawer-side > .drawer-overlay {
488
- position: sticky;
489
- top: 0px;
490
- place-self: stretch;
491
- }
492
- .drawer-side > * {
493
- grid-column-start: 1;
494
- grid-row-start: 1;
495
- }
496
- .drawer-side > *:not(.drawer-overlay) {
497
- transition-property: transform;
498
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
499
- transition-duration: 300ms;
500
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
501
- will-change: transform;
309
+ &::-webkit-scrollbar {
310
+ @apply hidden;
311
+ }
312
+ & > .drawer-overlay {
313
+ @apply sticky top-0 place-self-stretch;
314
+ }
315
+ & > * {
316
+ @apply col-start-1 row-start-1;
317
+ }
318
+ & > *:not(.drawer-overlay) {
319
+ @apply transition-transform duration-300 ease-out will-change-transform;
502
320
  transform: translateX(-100%);
503
- }
504
- [dir="rtl"] .drawer-side > *:not(.drawer-overlay) {
321
+ [dir="rtl"] & {
505
322
  transform: translateX(100%);
506
323
  }
507
- .drawer-toggle {
508
- position: fixed;
509
- height: 0px;
510
- width: 0px;
511
- appearance: none;
512
- opacity: 0;
513
- }
514
- .drawer-toggle:checked ~ .drawer-side {
515
- pointer-events: auto;
516
- visibility: visible;
517
- }
518
- .drawer-toggle:checked ~ .drawer-side > *:not(.drawer-overlay) {
324
+ }
325
+ }
326
+ &-toggle {
327
+ @apply fixed h-0 w-0 appearance-none opacity-0;
328
+ &:checked {
329
+ & ~ .drawer-side {
330
+ @apply pointer-events-auto visible;
331
+ & > *:not(.drawer-overlay) {
519
332
  transform: translateX(0%);
520
333
  }
521
- .drawer-end {
522
- grid-auto-columns: auto max-content;
334
+ }
335
+ }
523
336
  }
524
- .drawer-end .drawer-toggle ~ .drawer-content {
525
- grid-column-start: 1;
526
- }
527
- .drawer-end .drawer-toggle ~ .drawer-side {
528
- grid-column-start: 2;
529
- justify-items: end;
530
- }
531
- .drawer-end .drawer-toggle ~ .drawer-side > *:not(.drawer-overlay) {
532
- transform: translateX(100%);
337
+ &-end {
338
+ grid-auto-columns: auto max-content;
339
+ .drawer-toggle {
340
+ & ~ .drawer-content {
341
+ @apply col-start-1;
533
342
  }
534
- [dir="rtl"] .drawer-end .drawer-toggle ~ .drawer-side > *:not(.drawer-overlay) {
343
+ & ~ .drawer-side {
344
+ @apply col-start-2 justify-items-end;
345
+ }
346
+ & ~ .drawer-side > *:not(.drawer-overlay) {
347
+ transform: translateX(100%);
348
+ [dir="rtl"] & {
535
349
  transform: translateX(-100%);
536
350
  }
537
- .drawer-end .drawer-toggle:checked ~ .drawer-side > *:not(.drawer-overlay) {
351
+ }
352
+ &:checked ~ .drawer-side > *:not(.drawer-overlay) {
538
353
  transform: translateX(0%);
539
354
  }
355
+ }
356
+ }
357
+ }
540
358
  .dropdown {
541
- position: relative;
542
- display: inline-block
359
+ @apply relative inline-block;
543
360
  }
544
361
  .dropdown > *:not(summary):focus {
545
- outline: 2px solid transparent;
546
- outline-offset: 2px
362
+ @apply outline-none;
547
363
  }
548
364
  .dropdown .dropdown-content {
549
- position: absolute
365
+ @apply absolute;
550
366
  }
551
367
  .dropdown:is(:not(details)) .dropdown-content {
552
- visibility: hidden;
553
- opacity: 0
368
+ @apply invisible opacity-0;
554
369
  }
555
370
  .dropdown-end .dropdown-content {
556
- inset-inline-end: 0px
371
+ @apply end-0;
557
372
  }
558
373
  .dropdown-left .dropdown-content {
559
- bottom: auto;
560
- inset-inline-end: 100%;
561
- top: 0px
374
+ @apply bottom-auto end-full top-0;
562
375
  }
563
376
  .dropdown-right .dropdown-content {
564
- bottom: auto;
565
- inset-inline-start: 100%;
566
- top: 0px
377
+ @apply bottom-auto start-full top-0;
567
378
  }
568
379
  .dropdown-bottom .dropdown-content {
569
- bottom: auto;
570
- top: 100%
380
+ @apply bottom-auto top-full;
571
381
  }
572
382
  .dropdown-top .dropdown-content {
573
- bottom: 100%;
574
- top: auto
383
+ @apply bottom-full top-auto;
575
384
  }
576
385
  .dropdown-end.dropdown-right .dropdown-content {
577
- bottom: 0px;
578
- top: auto
386
+ @apply bottom-0 top-auto;
579
387
  }
580
388
  .dropdown-end.dropdown-left .dropdown-content {
581
- bottom: 0px;
582
- top: auto
389
+ @apply bottom-0 top-auto;
583
390
  }
584
391
  .dropdown.dropdown-open .dropdown-content,
585
392
  .dropdown:not(.dropdown-hover):focus .dropdown-content,
586
393
  .dropdown:focus-within .dropdown-content {
587
- visibility: visible;
588
- opacity: 1
394
+ @apply visible opacity-100;
589
395
  }
590
396
  @media (hover: hover) {
591
397
  .dropdown.dropdown-hover:hover .dropdown-content {
592
- visibility: visible;
593
- opacity: 1
398
+ @apply visible opacity-100;
594
399
  }
595
400
  }
596
401
  .dropdown:is(details) summary::-webkit-details-marker {
597
- display: none
402
+ @apply hidden;
598
403
  }
599
404
  .file-input {
600
- height: 3rem;
601
- flex-shrink: 1;
602
- padding-inline-end: 1rem;
603
- font-size: 0.875rem;
604
- line-height: 1.25rem;
605
- line-height: 2
606
- }
607
- .file-input::file-selector-button {
608
- margin-inline-end: 1rem;
609
- display: inline-flex;
610
- height: 100%;
611
- flex-shrink: 0;
612
- cursor: pointer;
613
- user-select: none;
614
- flex-wrap: wrap;
615
- align-items: center;
616
- justify-content: center;
617
- padding-left: 1rem;
618
- padding-right: 1rem;
619
- text-align: center;
620
- font-size: 0.875rem;
621
- line-height: 1.25rem;
622
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
623
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
624
- transition-duration: 200ms;
625
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
626
- line-height: 1em
405
+ @apply h-12 flex-shrink pe-4 text-sm leading-loose;
406
+ &::file-selector-button {
407
+ @apply me-4 inline-flex h-full flex-shrink-0 cursor-pointer select-none flex-wrap items-center justify-center px-4 text-center text-sm transition duration-200 ease-out;
408
+ line-height: 1em;
409
+ }
627
410
  }
628
411
  .footer {
629
- display: grid;
630
- width: 100%;
631
- grid-auto-flow: row;
632
- place-items: start;
633
- }
634
- .footer > * {
635
- display: grid;
636
- place-items: start;
637
- }
638
- .footer-center {
639
- place-items: center;
640
- text-align: center;
641
- }
642
- .footer-center > * {
643
- place-items: center;
412
+ @apply grid w-full grid-flow-row place-items-start;
413
+ & > * {
414
+ @apply grid place-items-start;
415
+ }
416
+ &-center {
417
+ @apply place-items-center text-center;
418
+ & > * {
419
+ @apply place-items-center;
420
+ }
421
+ }
644
422
  }
645
423
  @media (min-width: 48rem) {
646
424
  .footer {
@@ -651,128 +429,101 @@
651
429
  }
652
430
  }
653
431
  .form-control {
654
- display: flex;
655
- flex-direction: column
432
+ @apply flex flex-col;
656
433
  }
657
434
  .label {
658
- display: flex;
659
- user-select: none;
660
- align-items: center;
661
- justify-content: space-between
435
+ @apply flex select-none items-center justify-between;
662
436
  }
663
437
  .hero {
664
- display: grid;
665
- width: 100%;
666
- place-items: center;
667
- background-size: cover;
668
- background-position: center
669
- }
670
- .hero > * {
671
- grid-column-start: 1;
672
- grid-row-start: 1
673
- }
674
- .hero-overlay {
675
- grid-column-start: 1;
676
- grid-row-start: 1;
677
- height: 100%;
678
- width: 100%
679
- }
680
- .hero-content {
681
- z-index: 0;
682
- display: flex;
683
- align-items: center;
684
- justify-content: center
438
+ @apply grid w-full place-items-center bg-cover bg-center;
439
+ & > * {
440
+ @apply col-start-1 row-start-1;
441
+ }
442
+ &-overlay {
443
+ @apply col-start-1 row-start-1 h-full w-full;
444
+ }
445
+ &-content {
446
+ @apply z-0 flex items-center justify-center;
447
+ }
685
448
  }
686
449
  .indicator {
687
- position: relative;
688
- display: inline-flex;
450
+ @apply relative inline-flex;
689
451
  width: max-content;
690
- }
691
- .indicator :where(.indicator-item) {
452
+ & :where(.indicator-item) {
692
453
  z-index: 1;
693
- position: absolute;
694
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
695
- white-space: nowrap;
454
+ @apply absolute transform whitespace-nowrap;
696
455
  }
456
+ }
697
457
  .input {
698
- flex-shrink: 1;
699
- height: 3rem;
700
- padding-left: 1rem;
701
- padding-right: 1rem;
702
- font-size: 0.875rem;
703
- line-height: 1.25rem;
704
- line-height: 2
458
+ @apply flex-shrink;
459
+ @apply h-12 px-4 text-sm leading-loose;
705
460
  }
706
461
  .join {
707
- display: inline-flex;
708
- align-items: stretch;
709
- }
710
- .join :where(.join-item) {
462
+ @apply inline-flex items-stretch;
463
+ & :where(.join-item) {
711
464
  border-start-end-radius: 0;
712
465
  border-end-end-radius: 0;
713
466
  border-end-start-radius: 0;
714
467
  border-start-start-radius: 0;
715
468
  }
716
- .join .join-item:not(:first-child):not(:last-child),
717
- .join *:not(:first-child):not(:last-child) .join-item {
469
+ & .join-item:not(:first-child):not(:last-child),
470
+ & *:not(:first-child):not(:last-child) .join-item {
718
471
  border-start-end-radius: 0;
719
472
  border-end-end-radius: 0;
720
473
  border-end-start-radius: 0;
721
474
  border-start-start-radius: 0;
722
475
  }
723
- .join .join-item:first-child:not(:last-child),
724
- .join *:first-child:not(:last-child) .join-item {
476
+
477
+ & .join-item:first-child:not(:last-child),
478
+ & *:first-child:not(:last-child) .join-item {
725
479
  border-start-end-radius: 0;
726
480
  border-end-end-radius: 0;
727
481
  }
728
- .join .dropdown .join-item:first-child:not(:last-child),
729
- .join *:first-child:not(:last-child) .dropdown .join-item {
482
+
483
+ & .dropdown .join-item:first-child:not(:last-child),
484
+ & *:first-child:not(:last-child) .dropdown .join-item {
730
485
  border-start-end-radius: inherit;
731
486
  border-end-end-radius: inherit;
732
487
  }
733
- .join :where(.join-item:first-child:not(:last-child)),
734
- .join :where(*:first-child:not(:last-child) .join-item) {
488
+
489
+ & :where(.join-item:first-child:not(:last-child)),
490
+ & :where(*:first-child:not(:last-child) .join-item) {
735
491
  border-end-start-radius: inherit;
736
492
  border-start-start-radius: inherit;
737
493
  }
738
- .join .join-item:last-child:not(:first-child),
739
- .join *:last-child:not(:first-child) .join-item {
494
+
495
+ & .join-item:last-child:not(:first-child),
496
+ & *:last-child:not(:first-child) .join-item {
740
497
  border-end-start-radius: 0;
741
498
  border-start-start-radius: 0;
742
499
  }
743
- .join :where(.join-item:last-child:not(:first-child)),
744
- .join :where(*:last-child:not(:first-child) .join-item) {
500
+
501
+ & :where(.join-item:last-child:not(:first-child)),
502
+ & :where(*:last-child:not(:first-child) .join-item) {
745
503
  border-start-end-radius: inherit;
746
504
  border-end-end-radius: inherit;
747
505
  }
506
+ }
748
507
 
749
508
  @supports not selector(:has(*)) {
750
509
  :where(.join *) {
751
- border-radius: inherit;
752
- }
510
+ @apply rounded-[inherit];
511
+ }
753
512
  }
754
513
 
755
514
  @supports selector(:has(*)) {
756
515
  :where(.join *:has(.join-item)) {
757
- border-radius: inherit;
758
- }
516
+ @apply rounded-[inherit];
517
+ }
759
518
  }
760
519
  .kbd {
761
- display: inline-flex;
762
- align-items: center;
763
- justify-content: center
520
+ @apply inline-flex items-center justify-center;
764
521
  }
765
522
  .link {
766
- cursor: pointer;
767
- text-decoration-line: underline
768
- }
769
- .link-hover {
770
- text-decoration-line: none
771
- }
772
- @media(hover:hover) {
773
- .link-hover:hover {
774
- text-decoration-line: underline
775
- }
523
+ @apply cursor-pointer underline;
524
+ &-hover {
525
+ @apply no-underline [@media(hover:hover)]:hover:underline;
526
+ }
776
527
  }
777
528
  .mask {
778
529
  mask-size: contain;
@@ -782,100 +533,69 @@
782
533
  .mask-half-1 {
783
534
  mask-size: 200%;
784
535
  mask-position: left;
785
- }
786
- :is([dir="rtl"] .mask-half-1) {
787
- mask-position: right;
536
+ @apply [mask-position:left] rtl:[mask-position:right];
788
537
  }
789
538
  .mask-half-2 {
790
539
  mask-size: 200%;
791
540
  mask-position: right;
792
- }
793
- :is([dir="rtl"] .mask-half-2) {
794
- mask-position: left;
541
+ @apply [mask-position:right] rtl:[mask-position:left];
795
542
  }
796
543
  .menu {
797
- display: flex;
798
- flex-direction: column;
799
- flex-wrap: wrap;
800
- font-size: 0.875rem;
801
- line-height: 1.25rem
802
- }
803
- .menu :where(li ul) {
804
- position: relative;
805
- white-space: nowrap
806
- }
807
- .menu :where(li:not(.menu-title) > *:not(ul):not(details):not(.menu-title)),
808
- .menu :where(li:not(.menu-title) > details > summary:not(.menu-title)) {
809
- display: grid;
810
- grid-auto-flow: column;
811
- align-content: flex-start;
812
- align-items: center;
813
- gap: 0.5rem;
544
+ @apply flex flex-col flex-wrap text-sm;
545
+ :where(li ul) {
546
+ @apply relative whitespace-nowrap;
547
+ }
548
+ :where(li:not(.menu-title) > *:not(ul):not(details):not(.menu-title)),
549
+ :where(li:not(.menu-title) > details > summary:not(.menu-title)) {
550
+ @apply grid grid-flow-col content-start items-center gap-2;
814
551
  grid-auto-columns: minmax(auto, max-content) auto max-content;
815
- user-select: none
816
- }
817
- .menu li.disabled {
818
- cursor: not-allowed;
819
- user-select: none
820
- }
821
- .menu :where(li > .menu-dropdown:not(.menu-dropdown-show)) {
822
- display: none
552
+ user-select: none;
553
+ }
554
+ & li.disabled {
555
+ @apply cursor-not-allowed select-none;
556
+ }
557
+ :where(li > .menu-dropdown:not(.menu-dropdown-show)) {
558
+ @apply hidden;
559
+ }
823
560
  }
824
561
  :where(.menu li) {
825
- position: relative;
826
- display: flex;
827
- flex-shrink: 0;
828
- flex-direction: column;
829
- flex-wrap: wrap;
830
- align-items: stretch
831
- }
832
- :where(.menu li) .badge {
833
- justify-self: end
834
- }
835
- .mockup-code {
836
- position: relative;
837
- overflow: hidden;
838
- overflow-x: auto;
839
- }
840
- .mockup-code pre[data-prefix]:before {
562
+ @apply relative flex shrink-0 flex-col flex-wrap items-stretch;
563
+ .badge {
564
+ @apply justify-self-end;
565
+ }
566
+ }
567
+ .mockup {
568
+ &-code {
569
+ @apply relative overflow-hidden overflow-x-auto;
570
+ pre[data-prefix] {
571
+ &:before {
841
572
  content: attr(data-prefix);
842
- display: inline-block;
843
- text-align: right;
573
+ @apply inline-block text-right;
844
574
  }
845
- .mockup-window {
846
- position: relative;
847
- overflow: hidden;
848
- overflow-x: auto;
849
- }
850
- .mockup-window pre[data-prefix]:before {
575
+ }
576
+ }
577
+ &-window {
578
+ @apply relative overflow-hidden overflow-x-auto;
579
+ pre[data-prefix] {
580
+ &:before {
851
581
  content: attr(data-prefix);
852
- display: inline-block;
853
- text-align: right;
582
+ @apply inline-block text-right;
854
583
  }
855
- .mockup-browser {
856
- position: relative;
857
- overflow: hidden;
858
- overflow-x: auto;
859
- }
860
- .mockup-browser pre[data-prefix]:before {
584
+ }
585
+ }
586
+ &-browser {
587
+ @apply relative overflow-hidden overflow-x-auto;
588
+ pre[data-prefix] {
589
+ &:before {
861
590
  content: attr(data-prefix);
862
- display: inline-block;
863
- text-align: right;
591
+ @apply inline-block text-right;
864
592
  }
593
+ }
594
+ }
595
+ }
865
596
  .modal {
866
597
  /* @apply pointer-events-none invisible fixed inset-0 flex justify-center opacity-0; */
867
- pointer-events: none;
868
- position: fixed;
869
- inset: 0px;
870
- margin: 0px;
871
- display: grid;
872
- height: 100%;
873
- max-height: none;
874
- width: 100%;
875
- max-width: none;
876
- justify-items: center;
877
- padding: 0px;
878
- opacity: 0;
598
+ @apply pointer-events-none fixed inset-0 m-0 grid h-full max-h-none w-full max-w-none justify-items-center p-0 opacity-0;
879
599
  overscroll-behavior: contain;
880
600
  z-index: 999;
881
601
  }
@@ -883,7 +603,7 @@
883
603
  overscroll-behavior: auto;
884
604
  }
885
605
  :where(.modal) {
886
- align-items: center;
606
+ @apply items-center;
887
607
  }
888
608
  .modal-box {
889
609
  max-height: calc(100vh - 5em);
@@ -892,30 +612,22 @@
892
612
  .modal:target,
893
613
  .modal-toggle:checked + .modal,
894
614
  .modal[open] {
895
- pointer-events: auto;
896
- visibility: visible;
897
- opacity: 1;
615
+ @apply pointer-events-auto visible opacity-100;
898
616
  }
899
617
  .modal-action {
900
- display: flex;
618
+ @apply flex;
901
619
  }
902
620
  .modal-toggle {
903
- position: fixed;
904
- height: 0px;
905
- width: 0px;
906
- appearance: none;
907
- opacity: 0;
621
+ @apply fixed h-0 w-0 appearance-none opacity-0;
908
622
  }
909
623
  :root:has(:is(.modal-open, .modal:target, .modal-toggle:checked + .modal, .modal[open])) {
910
- overflow: hidden;
624
+ @apply overflow-hidden;
911
625
  }
912
626
  .navbar {
913
- display: flex;
914
- align-items: center;
627
+ @apply flex items-center;
915
628
  }
916
629
  :where(.navbar > *) {
917
- display: inline-flex;
918
- align-items: center;
630
+ @apply inline-flex items-center;
919
631
  }
920
632
  .navbar-start {
921
633
  width: 50%;
@@ -929,42 +641,29 @@
929
641
  justify-content: flex-end;
930
642
  }
931
643
  .progress {
932
- position: relative;
933
- width: 100%;
934
- appearance: none;
935
- overflow: hidden
644
+ @apply relative w-full appearance-none overflow-hidden;
936
645
  }
937
646
  .radial-progress {
938
- position: relative;
939
- display: inline-grid;
940
- height: var(--size);
941
- width: var(--size);
942
- place-content: center;
943
- border-radius: 9999px;
944
- background-color: transparent;
647
+ @apply relative inline-grid h-[var(--size)] w-[var(--size)] place-content-center rounded-full bg-transparent;
945
648
  vertical-align: middle;
946
649
  box-sizing: content-box;
947
650
  }
948
651
  .radial-progress::-moz-progress-bar {
949
- appearance: none;
950
- background-color: transparent;
652
+ @apply appearance-none bg-transparent;
951
653
  }
952
654
  .radial-progress::-webkit-progress-value {
953
- appearance: none;
954
- background-color: transparent;
655
+ @apply appearance-none bg-transparent;
955
656
  }
956
657
  .radial-progress::-webkit-progress-bar {
957
- appearance: none;
958
- background-color: transparent;
658
+ @apply appearance-none bg-transparent;
959
659
  }
960
660
  .radial-progress:before,
961
661
  .radial-progress:after {
962
- position: absolute;
963
- border-radius: 9999px;
662
+ @apply absolute rounded-full;
964
663
  content: "";
965
664
  }
966
665
  .radial-progress:before {
967
- inset: 0px;
666
+ @apply inset-0;
968
667
  background:
969
668
  radial-gradient(farthest-side, currentColor 98%, #0000) top/var(--thickness) var(--thickness)
970
669
  no-repeat,
@@ -985,37 +684,23 @@
985
684
  transform: rotate(calc(var(--value) * 3.6deg - 90deg)) translate(calc(var(--size) / 2 - 50%));
986
685
  }
987
686
  .radio {
988
- flex-shrink: 0
687
+ @apply shrink-0;
989
688
  }
990
689
  .range {
991
- height: 1.5rem;
992
- width: 100%;
993
- cursor: pointer;
994
- }
995
- .range:focus {
690
+ @apply h-6 w-full cursor-pointer;
691
+ &:focus {
996
692
  outline: none;
997
693
  }
998
- .rating {
999
- position: relative;
1000
- display: inline-flex
1001
694
  }
1002
- .rating :where(input) {
1003
- cursor: pointer;
1004
- border-radius: 0px
695
+ .rating {
696
+ @apply relative inline-flex;
697
+ :where(input) {
698
+ @apply cursor-pointer rounded-none;
699
+ }
1005
700
  }
1006
701
  .select {
1007
- display: inline-flex;
1008
- cursor: pointer;
1009
- user-select: none;
1010
- appearance: none;
1011
- height: 3rem;
1012
- min-height: 3rem;
1013
- padding-left: 1rem;
1014
- padding-right: 2.5rem;
1015
- font-size: 0.875rem;
1016
- line-height: 1.25rem;
1017
- line-height: 2
1018
- }
702
+ @apply inline-flex cursor-pointer select-none appearance-none;
703
+ @apply h-12 min-h-[3rem] pl-4 pr-10 text-sm leading-loose;
1019
704
 
1020
705
  /* disabled */
1021
706
  /* &-disabled,
@@ -1023,220 +708,150 @@
1023
708
  @apply pointer-events-none;
1024
709
  } */
1025
710
  /* multiple */
1026
- .select[multiple] {
1027
- height: auto
711
+ &[multiple] {
712
+ @apply h-auto;
713
+ }
1028
714
  }
1029
715
  .stack {
1030
- display: inline-grid;
1031
- }
1032
- .stack > * {
1033
- grid-column-start: 1;
1034
- grid-row-start: 1;
716
+ @apply inline-grid;
717
+ & > * {
718
+ @apply col-start-1 row-start-1;
719
+ }
720
+ & > * {
1035
721
  transform: translateY(10%) scale(0.9);
1036
722
  z-index: 1;
1037
- }
1038
- .stack > *:nth-child(2) {
723
+ }
724
+ & > *:nth-child(2) {
1039
725
  transform: translateY(5%) scale(0.95);
1040
726
  z-index: 2;
1041
727
  }
1042
- .stack > *:nth-child(1) {
728
+ & > *:nth-child(1) {
1043
729
  transform: translateY(0) scale(1);
1044
730
  z-index: 3;
1045
731
  }
732
+ }
1046
733
  .stats {
1047
- display: inline-grid
734
+ @apply inline-grid;
1048
735
  }
1049
736
  :where(.stats) {
1050
- grid-auto-flow: column
737
+ @apply grid-flow-col;
1051
738
  }
1052
739
  .stat {
1053
- display: inline-grid;
1054
- width: 100%;
1055
- grid-template-columns: repeat(1, 1fr)
1056
- }
1057
- .stat-figure {
1058
- grid-column-start: 2;
1059
- grid-row: span 3 / span 3;
1060
- grid-row-start: 1;
1061
- place-self: center;
1062
- justify-self: end
1063
- }
1064
- .stat-title {
1065
- grid-column-start: 1;
1066
- white-space: nowrap
1067
- }
1068
- .stat-value {
1069
- grid-column-start: 1;
1070
- white-space: nowrap
1071
- }
1072
- .stat-desc {
1073
- grid-column-start: 1;
1074
- white-space: nowrap
1075
- }
1076
- .stat-actions {
1077
- grid-column-start: 1;
1078
- white-space: nowrap
740
+ @apply inline-grid w-full;
741
+ grid-template-columns: repeat(1, 1fr);
742
+ &-figure {
743
+ @apply col-start-2 row-span-3 row-start-1 place-self-center justify-self-end;
744
+ }
745
+ &-title {
746
+ @apply col-start-1 whitespace-nowrap;
747
+ }
748
+ &-value {
749
+ @apply col-start-1 whitespace-nowrap;
750
+ }
751
+ &-desc {
752
+ @apply col-start-1 whitespace-nowrap;
753
+ }
754
+ &-actions {
755
+ @apply col-start-1 whitespace-nowrap;
756
+ }
1079
757
  }
1080
758
  /* .stats.grid-flow-row {
1081
759
  @apply auto-rows-fr;
1082
760
  } */
1083
761
  .steps {
1084
- display: inline-grid;
1085
- grid-auto-flow: column;
1086
- overflow: hidden;
1087
- overflow-x: auto;
762
+ @apply inline-grid grid-flow-col overflow-hidden overflow-x-auto;
1088
763
  counter-reset: step;
1089
- grid-auto-columns: 1fr
1090
- }
1091
- .steps .step {
1092
- display: grid;
1093
- grid-template-columns: repeat(1, minmax(0, 1fr));
1094
- grid-template-rows: repeat(2, minmax(0, 1fr));
1095
- place-items: center;
1096
- text-align: center
764
+ grid-auto-columns: 1fr;
765
+ .step {
766
+ @apply grid grid-cols-1 grid-rows-2 place-items-center text-center;
767
+ }
1097
768
  }
1098
769
  .swap {
1099
-
1100
- position: relative;
1101
-
1102
- display: inline-grid;
1103
-
1104
- user-select: none;
1105
-
1106
- place-content: center
770
+ @apply relative inline-grid select-none place-content-center;
1107
771
  }
1108
772
 
1109
773
  .swap > * {
1110
-
1111
- grid-column-start: 1;
1112
-
1113
- grid-row-start: 1
774
+ @apply col-start-1 row-start-1;
1114
775
  }
1115
776
 
1116
777
  .swap input {
1117
-
1118
- appearance: none
778
+ @apply appearance-none;
1119
779
  }
1120
780
 
1121
781
  .swap .swap-on,
1122
782
  .swap .swap-indeterminate,
1123
783
  .swap input:indeterminate ~ .swap-on {
1124
-
1125
- opacity: 0
784
+ @apply opacity-0;
1126
785
  }
1127
786
 
1128
787
  .swap input:checked ~ .swap-off,
1129
788
  .swap-active .swap-off,
1130
789
  .swap input:indeterminate ~ .swap-off {
1131
-
1132
- opacity: 0
790
+ @apply opacity-0;
1133
791
  }
1134
792
 
1135
793
  .swap input:checked ~ .swap-on,
1136
794
  .swap-active .swap-on,
1137
795
  .swap input:indeterminate ~ .swap-indeterminate {
1138
-
1139
- opacity: 1
796
+ @apply opacity-100;
1140
797
  }
1141
798
  .tabs {
1142
- display: grid;
1143
- align-items: flex-end;
799
+ @apply grid items-end;
1144
800
  }
1145
- .tabs-lifted:has(.tab-content[class^="rounded-"]) .tab:first-child:not(.tab-active),
1146
- .tabs-lifted:has(.tab-content[class*=" rounded-"]) .tab:first-child:not(.tab-active) {
1147
- border-bottom-color: transparent;
801
+ .tabs-lifted {
802
+ &:has(.tab-content[class^="rounded-"]) .tab:first-child:not(.tab-active),
803
+ &:has(.tab-content[class*=" rounded-"]) .tab:first-child:not(.tab-active) {
804
+ @apply border-b-transparent;
805
+ }
1148
806
  }
1149
807
  .tab {
1150
- position: relative;
1151
- grid-row-start: 1;
1152
- display: inline-flex;
1153
- height: 2rem;
1154
- cursor: pointer;
1155
- user-select: none;
1156
- appearance: none;
1157
- flex-wrap: wrap;
1158
- align-items: center;
1159
- justify-content: center;
1160
- text-align: center;
1161
- font-size: 0.875rem;
1162
- line-height: 1.25rem;
1163
- line-height: 2;
808
+ @apply relative row-start-1 inline-flex h-8 cursor-pointer select-none appearance-none flex-wrap items-center justify-center text-center text-sm leading-loose;
1164
809
  --tab-padding: 1rem;
1165
- }
1166
- .tab:is(input[type="radio"]):after {
810
+ &:is(input[type="radio"]):after {
1167
811
  --tw-content: attr(aria-label);
1168
812
  content: var(--tw-content);
1169
813
  }
1170
- .tab:not(input):empty {
1171
- cursor: default;
814
+ &:not(input):empty {
815
+ @apply cursor-default;
1172
816
  grid-column-start: span 9999;
817
+ }
1173
818
  }
1174
819
  .tab-content {
1175
- grid-column: 1 / -1;
1176
- grid-column-end: span 9999;
1177
- grid-row-start: 2;
1178
- margin-top: calc(var(--tab-border) * -1);
1179
- display: none;
1180
- border-color: transparent;
820
+ @apply col-span-full col-end-[span_9999] row-start-2 -mt-[--tab-border] hidden border-transparent;
1181
821
  border-width: var(--tab-border, 0);
1182
- }
1183
- :checked + .tab-content:nth-child(2),
1184
- .tab-active + .tab-content:nth-child(2) {
1185
- border-start-start-radius: 0px;
822
+ :checked + &:nth-child(2),
823
+ .tab-active + &:nth-child(2) {
824
+ @apply rounded-ss-none;
825
+ }
1186
826
  }
1187
827
  input.tab:checked + .tab-content,
1188
828
  .tab-active + .tab-content {
1189
- display: block;
829
+ @apply block;
1190
830
  }
1191
831
  .table {
1192
- position: relative;
1193
- width: 100%
1194
- }
1195
- .table :where(.table-pin-rows thead tr) {
1196
- position: sticky;
1197
- top: 0px;
1198
- z-index: 1;
1199
- --tw-bg-opacity: 1;
1200
- background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)))
1201
- }
1202
- .table :where(.table-pin-rows tfoot tr) {
1203
- position: sticky;
1204
- bottom: 0px;
1205
- z-index: 1;
1206
- --tw-bg-opacity: 1;
1207
- background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)))
1208
- }
1209
- .table :where(.table-pin-cols tr th) {
1210
- position: sticky;
1211
- left: 0px;
1212
- right: 0px;
1213
- --tw-bg-opacity: 1;
1214
- background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)))
1215
- }
1216
- .table-zebra tbody tr:nth-child(even) :where(.table-pin-cols tr th) {
1217
- --tw-bg-opacity: 1;
1218
- background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)))
832
+ @apply relative w-full;
833
+ :where(.table-pin-rows thead tr) {
834
+ @apply bg-base-100 sticky top-0 z-[1];
835
+ }
836
+ :where(.table-pin-rows tfoot tr) {
837
+ @apply bg-base-100 sticky bottom-0 z-[1];
838
+ }
839
+ :where(.table-pin-cols tr th) {
840
+ @apply bg-base-100 sticky left-0 right-0;
841
+ }
842
+ &-zebra tbody tr:nth-child(even) :where(.table-pin-cols tr th) {
843
+ @apply bg-base-200;
844
+ }
1219
845
  }
1220
846
  .textarea {
1221
- min-height: 3rem;
1222
- flex-shrink: 1;
1223
- padding-left: 1rem;
1224
- padding-right: 1rem;
1225
- padding-top: 0.5rem;
1226
- padding-bottom: 0.5rem;
1227
- font-size: 0.875rem;
1228
- line-height: 1.25rem;
1229
- line-height: 2
847
+ @apply min-h-[3rem] flex-shrink;
848
+ @apply px-4 py-2 text-sm leading-loose;
1230
849
  }
1231
850
  .timeline {
1232
- position: relative;
1233
- display: flex
851
+ @apply relative flex;
1234
852
  }
1235
853
  :where(.timeline > li) {
1236
- position: relative;
1237
- display: grid;
1238
- flex-shrink: 0;
1239
- align-items: center;
854
+ @apply relative grid shrink-0 items-center;
1240
855
  grid-template-rows: var(--timeline-row-start, minmax(0, 1fr)) auto var(
1241
856
  --timeline-row-end,
1242
857
  minmax(0, 1fr)
@@ -1244,51 +859,32 @@ input.tab:checked + .tab-content,
1244
859
  grid-template-columns: var(--timeline-col-start, minmax(0, 1fr)) auto var(
1245
860
  --timeline-col-end,
1246
861
  minmax(0, 1fr)
1247
- )
862
+ );
1248
863
  }
1249
864
  .timeline > li > hr {
1250
- width: 100%;
1251
- border-width: 0px
1252
- }
1253
- :where(.timeline > li > hr):first-child {
1254
- grid-column-start: 1;
1255
- grid-row-start: 2
865
+ @apply w-full border-0;
1256
866
  }
1257
- :where(.timeline > li > hr):last-child {
1258
- grid-column-start: 3;
1259
- grid-column-end: none;
1260
- grid-row-start: 2;
1261
- grid-row-end: auto
867
+ :where(.timeline > li > hr) {
868
+ &:first-child {
869
+ @apply col-start-1 row-start-2;
870
+ }
871
+ &:last-child {
872
+ @apply col-start-3 col-end-[none] row-start-2 row-end-auto;
873
+ }
1262
874
  }
875
+
1263
876
  .timeline-start {
1264
- grid-column-start: 1;
1265
- grid-column-end: 4;
1266
- grid-row-start: 1;
1267
- grid-row-end: 2;
1268
- margin: 0.25rem;
1269
- align-self: flex-end;
1270
- justify-self: center
877
+ @apply col-start-1 col-end-4 row-start-1 row-end-2 m-1 self-end justify-self-center;
1271
878
  }
1272
879
  .timeline-middle {
1273
- grid-column-start: 2;
1274
- grid-row-start: 2
880
+ @apply col-start-2 row-start-2;
1275
881
  }
1276
882
  .timeline-end {
1277
- grid-column-start: 1;
1278
- grid-column-end: 4;
1279
- grid-row-start: 3;
1280
- grid-row-end: 4;
1281
- margin: 0.25rem;
1282
- align-self: flex-start;
1283
- justify-self: center
883
+ @apply col-start-1 col-end-4 row-start-3 row-end-4 m-1 self-start justify-self-center;
1284
884
  }
1285
885
  .toast {
1286
- position: fixed;
1287
- display: flex;
1288
- min-width: fit-content;
1289
- flex-direction: column;
1290
- white-space: nowrap
886
+ @apply fixed flex min-w-fit flex-col whitespace-nowrap;
1291
887
  }
1292
888
  .toggle {
1293
- flex-shrink: 0
889
+ @apply shrink-0;
1294
890
  }