@lindaui/tokens 0.2.2 → 0.3.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/index.css +18 -226
- package/llms.txt +3 -0
- package/package.json +19 -2
- package/src/theme.css +214 -0
package/dist/index.css
CHANGED
|
@@ -247,15 +247,9 @@
|
|
|
247
247
|
.top-0 {
|
|
248
248
|
top: 0;
|
|
249
249
|
}
|
|
250
|
-
.top-3 {
|
|
251
|
-
top: calc(var(--spacing) * 3);
|
|
252
|
-
}
|
|
253
250
|
.top-4 {
|
|
254
251
|
top: calc(var(--spacing) * 4);
|
|
255
252
|
}
|
|
256
|
-
.right-3 {
|
|
257
|
-
right: calc(var(--spacing) * 3);
|
|
258
|
-
}
|
|
259
253
|
.right-4 {
|
|
260
254
|
right: calc(var(--spacing) * 4);
|
|
261
255
|
}
|
|
@@ -283,9 +277,6 @@
|
|
|
283
277
|
.z-\[60\] {
|
|
284
278
|
z-index: 60;
|
|
285
279
|
}
|
|
286
|
-
.col-span-12 {
|
|
287
|
-
grid-column: span 12 / span 12;
|
|
288
|
-
}
|
|
289
280
|
.container {
|
|
290
281
|
width: 100%;
|
|
291
282
|
@media (width >= 40rem) {
|
|
@@ -337,9 +328,6 @@
|
|
|
337
328
|
.mt-10 {
|
|
338
329
|
margin-top: calc(var(--spacing) * 10);
|
|
339
330
|
}
|
|
340
|
-
.mt-auto {
|
|
341
|
-
margin-top: auto;
|
|
342
|
-
}
|
|
343
331
|
.-mr-1 {
|
|
344
332
|
margin-right: calc(var(--spacing) * -1);
|
|
345
333
|
}
|
|
@@ -382,9 +370,6 @@
|
|
|
382
370
|
.table {
|
|
383
371
|
display: table;
|
|
384
372
|
}
|
|
385
|
-
.aspect-square {
|
|
386
|
-
aspect-ratio: 1 / 1;
|
|
387
|
-
}
|
|
388
373
|
.aspect-video {
|
|
389
374
|
aspect-ratio: var(--aspect-video);
|
|
390
375
|
}
|
|
@@ -396,18 +381,6 @@
|
|
|
396
381
|
width: calc(var(--spacing) * 4);
|
|
397
382
|
height: calc(var(--spacing) * 4);
|
|
398
383
|
}
|
|
399
|
-
.size-5 {
|
|
400
|
-
width: calc(var(--spacing) * 5);
|
|
401
|
-
height: calc(var(--spacing) * 5);
|
|
402
|
-
}
|
|
403
|
-
.size-6 {
|
|
404
|
-
width: calc(var(--spacing) * 6);
|
|
405
|
-
height: calc(var(--spacing) * 6);
|
|
406
|
-
}
|
|
407
|
-
.size-8 {
|
|
408
|
-
width: calc(var(--spacing) * 8);
|
|
409
|
-
height: calc(var(--spacing) * 8);
|
|
410
|
-
}
|
|
411
384
|
.size-11 {
|
|
412
385
|
width: calc(var(--spacing) * 11);
|
|
413
386
|
height: calc(var(--spacing) * 11);
|
|
@@ -454,12 +427,6 @@
|
|
|
454
427
|
.h-16 {
|
|
455
428
|
height: calc(var(--spacing) * 16);
|
|
456
429
|
}
|
|
457
|
-
.h-24 {
|
|
458
|
-
height: calc(var(--spacing) * 24);
|
|
459
|
-
}
|
|
460
|
-
.h-64 {
|
|
461
|
-
height: calc(var(--spacing) * 64);
|
|
462
|
-
}
|
|
463
430
|
.h-\[17px\] {
|
|
464
431
|
height: 17px;
|
|
465
432
|
}
|
|
@@ -472,24 +439,9 @@
|
|
|
472
439
|
.h-\[132px\] {
|
|
473
440
|
height: 132px;
|
|
474
441
|
}
|
|
475
|
-
.h-\[140px\] {
|
|
476
|
-
height: 140px;
|
|
477
|
-
}
|
|
478
|
-
.h-\[400px\] {
|
|
479
|
-
height: 400px;
|
|
480
|
-
}
|
|
481
|
-
.h-\[480px\] {
|
|
482
|
-
height: 480px;
|
|
483
|
-
}
|
|
484
|
-
.h-\[600px\] {
|
|
485
|
-
height: 600px;
|
|
486
|
-
}
|
|
487
442
|
.h-full {
|
|
488
443
|
height: 100%;
|
|
489
444
|
}
|
|
490
|
-
.h-screen {
|
|
491
|
-
height: 100vh;
|
|
492
|
-
}
|
|
493
445
|
.max-h-\[65\%\] {
|
|
494
446
|
max-height: 65%;
|
|
495
447
|
}
|
|
@@ -505,9 +457,6 @@
|
|
|
505
457
|
.min-h-\[72px\] {
|
|
506
458
|
min-height: 72px;
|
|
507
459
|
}
|
|
508
|
-
.min-h-\[200px\] {
|
|
509
|
-
min-height: 200px;
|
|
510
|
-
}
|
|
511
460
|
.min-h-dvh {
|
|
512
461
|
min-height: 100dvh;
|
|
513
462
|
}
|
|
@@ -562,12 +511,6 @@
|
|
|
562
511
|
.w-36 {
|
|
563
512
|
width: calc(var(--spacing) * 36);
|
|
564
513
|
}
|
|
565
|
-
.w-48 {
|
|
566
|
-
width: calc(var(--spacing) * 48);
|
|
567
|
-
}
|
|
568
|
-
.w-72 {
|
|
569
|
-
width: calc(var(--spacing) * 72);
|
|
570
|
-
}
|
|
571
514
|
.w-\[17px\] {
|
|
572
515
|
width: 17px;
|
|
573
516
|
}
|
|
@@ -580,54 +523,12 @@
|
|
|
580
523
|
.w-\[132px\] {
|
|
581
524
|
width: 132px;
|
|
582
525
|
}
|
|
583
|
-
.w-\[200px\] {
|
|
584
|
-
width: 200px;
|
|
585
|
-
}
|
|
586
|
-
.w-\[260px\] {
|
|
587
|
-
width: 260px;
|
|
588
|
-
}
|
|
589
|
-
.w-\[280px\] {
|
|
590
|
-
width: 280px;
|
|
591
|
-
}
|
|
592
|
-
.w-\[320px\] {
|
|
593
|
-
width: 320px;
|
|
594
|
-
}
|
|
595
|
-
.w-\[360px\] {
|
|
596
|
-
width: 360px;
|
|
597
|
-
}
|
|
598
|
-
.w-\[380px\] {
|
|
599
|
-
width: 380px;
|
|
600
|
-
}
|
|
601
|
-
.w-\[400px\] {
|
|
602
|
-
width: 400px;
|
|
603
|
-
}
|
|
604
|
-
.w-\[420px\] {
|
|
605
|
-
width: 420px;
|
|
606
|
-
}
|
|
607
|
-
.w-\[460px\] {
|
|
608
|
-
width: 460px;
|
|
609
|
-
}
|
|
610
|
-
.w-\[480px\] {
|
|
611
|
-
width: 480px;
|
|
612
|
-
}
|
|
613
|
-
.w-\[520px\] {
|
|
614
|
-
width: 520px;
|
|
615
|
-
}
|
|
616
|
-
.w-\[560px\] {
|
|
617
|
-
width: 560px;
|
|
618
|
-
}
|
|
619
|
-
.w-\[600px\] {
|
|
620
|
-
width: 600px;
|
|
621
|
-
}
|
|
622
526
|
.w-full {
|
|
623
527
|
width: 100%;
|
|
624
528
|
}
|
|
625
529
|
.max-w-2xl {
|
|
626
530
|
max-width: var(--container-2xl);
|
|
627
531
|
}
|
|
628
|
-
.max-w-\[240px\] {
|
|
629
|
-
max-width: 240px;
|
|
630
|
-
}
|
|
631
532
|
.max-w-\[270px\] {
|
|
632
533
|
max-width: 270px;
|
|
633
534
|
}
|
|
@@ -670,12 +571,6 @@
|
|
|
670
571
|
.shrink-0 {
|
|
671
572
|
flex-shrink: 0;
|
|
672
573
|
}
|
|
673
|
-
.scale-125 {
|
|
674
|
-
--tw-scale-x: 125%;
|
|
675
|
-
--tw-scale-y: 125%;
|
|
676
|
-
--tw-scale-z: 125%;
|
|
677
|
-
scale: var(--tw-scale-x) var(--tw-scale-y);
|
|
678
|
-
}
|
|
679
574
|
.transform {
|
|
680
575
|
transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
|
|
681
576
|
}
|
|
@@ -688,18 +583,12 @@
|
|
|
688
583
|
.grid-cols-2 {
|
|
689
584
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
690
585
|
}
|
|
691
|
-
.grid-cols-12 {
|
|
692
|
-
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
693
|
-
}
|
|
694
586
|
.flex-col {
|
|
695
587
|
flex-direction: column;
|
|
696
588
|
}
|
|
697
589
|
.flex-col-reverse {
|
|
698
590
|
flex-direction: column-reverse;
|
|
699
591
|
}
|
|
700
|
-
.flex-row {
|
|
701
|
-
flex-direction: row;
|
|
702
|
-
}
|
|
703
592
|
.flex-wrap {
|
|
704
593
|
flex-wrap: wrap;
|
|
705
594
|
}
|
|
@@ -715,9 +604,6 @@
|
|
|
715
604
|
.items-start {
|
|
716
605
|
align-items: flex-start;
|
|
717
606
|
}
|
|
718
|
-
.items-stretch {
|
|
719
|
-
align-items: stretch;
|
|
720
|
-
}
|
|
721
607
|
.justify-between {
|
|
722
608
|
justify-content: space-between;
|
|
723
609
|
}
|
|
@@ -786,9 +672,6 @@
|
|
|
786
672
|
text-overflow: ellipsis;
|
|
787
673
|
white-space: nowrap;
|
|
788
674
|
}
|
|
789
|
-
.overflow-auto {
|
|
790
|
-
overflow: auto;
|
|
791
|
-
}
|
|
792
675
|
.overflow-hidden {
|
|
793
676
|
overflow: hidden;
|
|
794
677
|
}
|
|
@@ -801,9 +684,6 @@
|
|
|
801
684
|
.rounded-2xl {
|
|
802
685
|
border-radius: calc(var(--radius) * 1.8);
|
|
803
686
|
}
|
|
804
|
-
.rounded-3xl {
|
|
805
|
-
border-radius: calc(var(--radius) * 2.2);
|
|
806
|
-
}
|
|
807
687
|
.rounded-\[2px\] {
|
|
808
688
|
border-radius: 2px;
|
|
809
689
|
}
|
|
@@ -963,12 +843,6 @@
|
|
|
963
843
|
.bg-viewer-bg {
|
|
964
844
|
background-color: var(--viewer-bg);
|
|
965
845
|
}
|
|
966
|
-
.bg-viewer-foreground\/12 {
|
|
967
|
-
background-color: var(--viewer-foreground);
|
|
968
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
969
|
-
background-color: color-mix(in oklab, var(--viewer-foreground) 12%, transparent);
|
|
970
|
-
}
|
|
971
|
-
}
|
|
972
846
|
.bg-white {
|
|
973
847
|
background-color: var(--color-white);
|
|
974
848
|
}
|
|
@@ -1002,15 +876,6 @@
|
|
|
1002
876
|
.object-contain {
|
|
1003
877
|
object-fit: contain;
|
|
1004
878
|
}
|
|
1005
|
-
.object-cover {
|
|
1006
|
-
object-fit: cover;
|
|
1007
|
-
}
|
|
1008
|
-
.p-1 {
|
|
1009
|
-
padding: var(--spacing);
|
|
1010
|
-
}
|
|
1011
|
-
.p-2 {
|
|
1012
|
-
padding: calc(var(--spacing) * 2);
|
|
1013
|
-
}
|
|
1014
879
|
.p-3 {
|
|
1015
880
|
padding: calc(var(--spacing) * 3);
|
|
1016
881
|
}
|
|
@@ -1080,9 +945,6 @@
|
|
|
1080
945
|
.py-5 {
|
|
1081
946
|
padding-block: calc(var(--spacing) * 5);
|
|
1082
947
|
}
|
|
1083
|
-
.py-12 {
|
|
1084
|
-
padding-block: calc(var(--spacing) * 12);
|
|
1085
|
-
}
|
|
1086
948
|
.py-16 {
|
|
1087
949
|
padding-block: calc(var(--spacing) * 16);
|
|
1088
950
|
}
|
|
@@ -1104,9 +966,6 @@
|
|
|
1104
966
|
.pr-3 {
|
|
1105
967
|
padding-right: calc(var(--spacing) * 3);
|
|
1106
968
|
}
|
|
1107
|
-
.pr-8 {
|
|
1108
|
-
padding-right: calc(var(--spacing) * 8);
|
|
1109
|
-
}
|
|
1110
969
|
.pb-2 {
|
|
1111
970
|
padding-bottom: calc(var(--spacing) * 2);
|
|
1112
971
|
}
|
|
@@ -1172,9 +1031,6 @@
|
|
|
1172
1031
|
.text-\[9px\] {
|
|
1173
1032
|
font-size: 9px;
|
|
1174
1033
|
}
|
|
1175
|
-
.text-\[10px\] {
|
|
1176
|
-
font-size: 10px;
|
|
1177
|
-
}
|
|
1178
1034
|
.text-\[11px\] {
|
|
1179
1035
|
font-size: 11px;
|
|
1180
1036
|
}
|
|
@@ -1187,10 +1043,6 @@
|
|
|
1187
1043
|
.text-\[28px\] {
|
|
1188
1044
|
font-size: 28px;
|
|
1189
1045
|
}
|
|
1190
|
-
.leading-none {
|
|
1191
|
-
--tw-leading: 1;
|
|
1192
|
-
line-height: 1;
|
|
1193
|
-
}
|
|
1194
1046
|
.leading-relaxed {
|
|
1195
1047
|
--tw-leading: var(--leading-relaxed);
|
|
1196
1048
|
line-height: var(--leading-relaxed);
|
|
@@ -1256,18 +1108,6 @@
|
|
|
1256
1108
|
.text-background {
|
|
1257
1109
|
color: var(--background);
|
|
1258
1110
|
}
|
|
1259
|
-
.text-black {
|
|
1260
|
-
color: var(--color-black);
|
|
1261
|
-
}
|
|
1262
|
-
.text-black\/60 {
|
|
1263
|
-
color: color-mix(in srgb, #000 60%, transparent);
|
|
1264
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
1265
|
-
color: color-mix(in oklab, var(--color-black) 60%, transparent);
|
|
1266
|
-
}
|
|
1267
|
-
}
|
|
1268
|
-
.text-chart-1 {
|
|
1269
|
-
color: var(--chart-1);
|
|
1270
|
-
}
|
|
1271
1111
|
.text-danger {
|
|
1272
1112
|
color: var(--danger);
|
|
1273
1113
|
}
|
|
@@ -1280,9 +1120,6 @@
|
|
|
1280
1120
|
.text-green-800 {
|
|
1281
1121
|
color: var(--color-green-800);
|
|
1282
1122
|
}
|
|
1283
|
-
.text-muted {
|
|
1284
|
-
color: var(--muted);
|
|
1285
|
-
}
|
|
1286
1123
|
.text-muted-foreground {
|
|
1287
1124
|
color: var(--muted-foreground);
|
|
1288
1125
|
}
|
|
@@ -1298,9 +1135,6 @@
|
|
|
1298
1135
|
.text-primary {
|
|
1299
1136
|
color: var(--primary);
|
|
1300
1137
|
}
|
|
1301
|
-
.text-primary-foreground {
|
|
1302
|
-
color: var(--primary-foreground);
|
|
1303
|
-
}
|
|
1304
1138
|
.text-red-800 {
|
|
1305
1139
|
color: var(--color-red-800);
|
|
1306
1140
|
}
|
|
@@ -1322,9 +1156,6 @@
|
|
|
1322
1156
|
.text-yellow-800 {
|
|
1323
1157
|
color: var(--color-yellow-800);
|
|
1324
1158
|
}
|
|
1325
|
-
.capitalize {
|
|
1326
|
-
text-transform: capitalize;
|
|
1327
|
-
}
|
|
1328
1159
|
.uppercase {
|
|
1329
1160
|
text-transform: uppercase;
|
|
1330
1161
|
}
|
|
@@ -1393,10 +1224,6 @@
|
|
|
1393
1224
|
--tw-ease: var(--ease-in-out);
|
|
1394
1225
|
transition-timing-function: var(--ease-in-out);
|
|
1395
1226
|
}
|
|
1396
|
-
.select-none {
|
|
1397
|
-
-webkit-user-select: none;
|
|
1398
|
-
user-select: none;
|
|
1399
|
-
}
|
|
1400
1227
|
.hover\:bg-accent\/50 {
|
|
1401
1228
|
&:hover {
|
|
1402
1229
|
@media (hover: hover) {
|
|
@@ -1429,11 +1256,6 @@
|
|
|
1429
1256
|
left: calc(var(--spacing) * 4);
|
|
1430
1257
|
}
|
|
1431
1258
|
}
|
|
1432
|
-
.sm\:col-span-6 {
|
|
1433
|
-
@media (width >= 40rem) {
|
|
1434
|
-
grid-column: span 6 / span 6;
|
|
1435
|
-
}
|
|
1436
|
-
}
|
|
1437
1259
|
.sm\:grid {
|
|
1438
1260
|
@media (width >= 40rem) {
|
|
1439
1261
|
display: grid;
|
|
@@ -1454,11 +1276,6 @@
|
|
|
1454
1276
|
height: 108px;
|
|
1455
1277
|
}
|
|
1456
1278
|
}
|
|
1457
|
-
.sm\:h-\[120px\] {
|
|
1458
|
-
@media (width >= 40rem) {
|
|
1459
|
-
height: 120px;
|
|
1460
|
-
}
|
|
1461
|
-
}
|
|
1462
1279
|
.sm\:h-\[168px\] {
|
|
1463
1280
|
@media (width >= 40rem) {
|
|
1464
1281
|
height: 168px;
|
|
@@ -1484,11 +1301,6 @@
|
|
|
1484
1301
|
width: 108px;
|
|
1485
1302
|
}
|
|
1486
1303
|
}
|
|
1487
|
-
.sm\:w-\[120px\] {
|
|
1488
|
-
@media (width >= 40rem) {
|
|
1489
|
-
width: 120px;
|
|
1490
|
-
}
|
|
1491
|
-
}
|
|
1492
1304
|
.sm\:w-\[168px\] {
|
|
1493
1305
|
@media (width >= 40rem) {
|
|
1494
1306
|
width: 168px;
|
|
@@ -1514,21 +1326,11 @@
|
|
|
1514
1326
|
flex-direction: row;
|
|
1515
1327
|
}
|
|
1516
1328
|
}
|
|
1517
|
-
.sm\:items-center {
|
|
1518
|
-
@media (width >= 40rem) {
|
|
1519
|
-
align-items: center;
|
|
1520
|
-
}
|
|
1521
|
-
}
|
|
1522
1329
|
.sm\:items-start {
|
|
1523
1330
|
@media (width >= 40rem) {
|
|
1524
1331
|
align-items: flex-start;
|
|
1525
1332
|
}
|
|
1526
1333
|
}
|
|
1527
|
-
.sm\:justify-between {
|
|
1528
|
-
@media (width >= 40rem) {
|
|
1529
|
-
justify-content: space-between;
|
|
1530
|
-
}
|
|
1531
|
-
}
|
|
1532
1334
|
.sm\:justify-end {
|
|
1533
1335
|
@media (width >= 40rem) {
|
|
1534
1336
|
justify-content: flex-end;
|
|
@@ -1628,16 +1430,6 @@
|
|
|
1628
1430
|
font-size: 46px;
|
|
1629
1431
|
}
|
|
1630
1432
|
}
|
|
1631
|
-
.md\:max-w-\[136px\] {
|
|
1632
|
-
@media (width >= 48rem) {
|
|
1633
|
-
max-width: 136px;
|
|
1634
|
-
}
|
|
1635
|
-
}
|
|
1636
|
-
.md\:flex-row {
|
|
1637
|
-
@media (width >= 48rem) {
|
|
1638
|
-
flex-direction: row;
|
|
1639
|
-
}
|
|
1640
|
-
}
|
|
1641
1433
|
.lg\:mt-6 {
|
|
1642
1434
|
@media (width >= 64rem) {
|
|
1643
1435
|
margin-top: calc(var(--spacing) * 6);
|
|
@@ -12989,21 +12781,6 @@
|
|
|
12989
12781
|
.ti-fade {
|
|
12990
12782
|
animation: ti-fade 0.25s ease both;
|
|
12991
12783
|
}
|
|
12992
|
-
@property --tw-scale-x {
|
|
12993
|
-
syntax: "*";
|
|
12994
|
-
inherits: false;
|
|
12995
|
-
initial-value: 1;
|
|
12996
|
-
}
|
|
12997
|
-
@property --tw-scale-y {
|
|
12998
|
-
syntax: "*";
|
|
12999
|
-
inherits: false;
|
|
13000
|
-
initial-value: 1;
|
|
13001
|
-
}
|
|
13002
|
-
@property --tw-scale-z {
|
|
13003
|
-
syntax: "*";
|
|
13004
|
-
inherits: false;
|
|
13005
|
-
initial-value: 1;
|
|
13006
|
-
}
|
|
13007
12784
|
@property --tw-rotate-x {
|
|
13008
12785
|
syntax: "*";
|
|
13009
12786
|
inherits: false;
|
|
@@ -13254,6 +13031,21 @@
|
|
|
13254
13031
|
inherits: false;
|
|
13255
13032
|
initial-value: 0;
|
|
13256
13033
|
}
|
|
13034
|
+
@property --tw-scale-x {
|
|
13035
|
+
syntax: "*";
|
|
13036
|
+
inherits: false;
|
|
13037
|
+
initial-value: 1;
|
|
13038
|
+
}
|
|
13039
|
+
@property --tw-scale-y {
|
|
13040
|
+
syntax: "*";
|
|
13041
|
+
inherits: false;
|
|
13042
|
+
initial-value: 1;
|
|
13043
|
+
}
|
|
13044
|
+
@property --tw-scale-z {
|
|
13045
|
+
syntax: "*";
|
|
13046
|
+
inherits: false;
|
|
13047
|
+
initial-value: 1;
|
|
13048
|
+
}
|
|
13257
13049
|
@property --tw-outline-style {
|
|
13258
13050
|
syntax: "*";
|
|
13259
13051
|
inherits: false;
|
|
@@ -13368,9 +13160,6 @@
|
|
|
13368
13160
|
@layer properties {
|
|
13369
13161
|
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
|
|
13370
13162
|
*, ::before, ::after, ::backdrop {
|
|
13371
|
-
--tw-scale-x: 1;
|
|
13372
|
-
--tw-scale-y: 1;
|
|
13373
|
-
--tw-scale-z: 1;
|
|
13374
13163
|
--tw-rotate-x: initial;
|
|
13375
13164
|
--tw-rotate-y: initial;
|
|
13376
13165
|
--tw-rotate-z: initial;
|
|
@@ -13445,6 +13234,9 @@
|
|
|
13445
13234
|
--tw-translate-x: 0;
|
|
13446
13235
|
--tw-translate-y: 0;
|
|
13447
13236
|
--tw-translate-z: 0;
|
|
13237
|
+
--tw-scale-x: 1;
|
|
13238
|
+
--tw-scale-y: 1;
|
|
13239
|
+
--tw-scale-z: 1;
|
|
13448
13240
|
--tw-outline-style: solid;
|
|
13449
13241
|
--tw-border-spacing-x: 0;
|
|
13450
13242
|
--tw-border-spacing-y: 0;
|
package/llms.txt
CHANGED
|
@@ -79,6 +79,9 @@ Toggle with `document.documentElement.dataset.theme = "ocean"` + the `.dark` cla
|
|
|
79
79
|
## Exports & notes for agents
|
|
80
80
|
|
|
81
81
|
- `@lindaui/tokens/css` → the compiled stylesheet (the only thing you import for runtime).
|
|
82
|
+
- `@lindaui/tokens/theme.css` → the raw theme source (tokens + `@theme inline`). Only for
|
|
83
|
+
apps that run their own Tailwind pass and need the custom utilities to resolve there too;
|
|
84
|
+
normal consumers never import this.
|
|
82
85
|
- `@lindaui/tokens/theme-template.css` → commented theme template to copy (not imported).
|
|
83
86
|
- No JS entry point. `@lindaui/ui` and `@lindaui/blocks` declare this as a peer.
|
|
84
87
|
- If a layout looks unstyled ("just text"), the consumer usually forgot the `/css` import.
|
package/package.json
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lindaui/tokens",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Brand design tokens (OKLCH light/dark) + HeroUI v3 + Tailwind v4 compiled into a single CSS bundle.",
|
|
5
5
|
"author": "Franco Carballar <francocarballar@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"homepage": "https://github.com/francocarballar/lindaui#readme",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://github.com/francocarballar/lindaui/issues"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"design-tokens",
|
|
13
|
+
"css",
|
|
14
|
+
"tailwindcss",
|
|
15
|
+
"oklch",
|
|
16
|
+
"theme"
|
|
17
|
+
],
|
|
7
18
|
"repository": {
|
|
8
19
|
"type": "git",
|
|
9
20
|
"url": "git+https://github.com/francocarballar/lindaui.git",
|
|
@@ -15,15 +26,21 @@
|
|
|
15
26
|
"type": "module",
|
|
16
27
|
"exports": {
|
|
17
28
|
"./css": "./dist/index.css",
|
|
18
|
-
"./theme
|
|
29
|
+
"./theme.css": "./src/theme.css",
|
|
30
|
+
"./theme-template.css": "./theme-template.css",
|
|
31
|
+
"./package.json": "./package.json"
|
|
19
32
|
},
|
|
20
33
|
"files": [
|
|
21
34
|
"dist",
|
|
35
|
+
"src/theme.css",
|
|
22
36
|
"LICENSE",
|
|
23
37
|
"README.md",
|
|
24
38
|
"llms.txt",
|
|
25
39
|
"theme-template.css"
|
|
26
40
|
],
|
|
41
|
+
"sideEffects": [
|
|
42
|
+
"*.css"
|
|
43
|
+
],
|
|
27
44
|
"devDependencies": {
|
|
28
45
|
"tailwindcss": "^4.0.0",
|
|
29
46
|
"@tailwindcss/cli": "^4.0.0",
|
package/src/theme.css
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Design system — tema ThinkInformes (clínico/médico, teal).
|
|
3
|
+
Valores: poc_generator DESIGN.md (OKLCH; light en :root, dark en .dark).
|
|
4
|
+
|
|
5
|
+
── TRES SISTEMAS DE NOMBRES (no mezclarlos) ──
|
|
6
|
+
A) CANÓNICOS (shadcn-style): única fuente de verdad de color. SOLO estos
|
|
7
|
+
cambian en dark. Ej: --background, --foreground, --primary, --card.
|
|
8
|
+
B) HeroUI v3 (CONTRATO — no renombrar): nombres que @heroui/styles LEE para
|
|
9
|
+
pintar sus componentes. Acá son refs a (A). Ej: --accent, --surface,
|
|
10
|
+
--default, --muted, --danger, --focus.
|
|
11
|
+
C) Utilities Tailwind (CONTRATO — no renombrar): los --color-* del bloque
|
|
12
|
+
@theme inline definen las clases bg-* / text-* / border-* que usan los
|
|
13
|
+
blocks. Ej: --color-primary → bg-primary; --color-muted-foreground →
|
|
14
|
+
text-muted-foreground.
|
|
15
|
+
|
|
16
|
+
── COLISIONES DE NOMBRE (la fuente de confusión — leer) ──
|
|
17
|
+
--accent = MARCA primaria teal (semántica HeroUI), NO el "accent" neutro
|
|
18
|
+
de shadcn.
|
|
19
|
+
--default = superficie/botón NEUTRO (== --secondary), NO el primario.
|
|
20
|
+
--muted = TEXTO atenuado (== --muted-foreground), NO una superficie.
|
|
21
|
+
La utility text-muted pinta ese gris (CardDescription, etc).
|
|
22
|
+
--secondary = superficie NEUTRA clara (utility bg-secondary). Su texto va
|
|
23
|
+
con text-muted / text-muted-foreground.
|
|
24
|
+
--surface = --card · --overlay = --popover (superficies, nombres HeroUI).
|
|
25
|
+
============================================================ */
|
|
26
|
+
|
|
27
|
+
:root {
|
|
28
|
+
/* ════════ A) CANÓNICOS (light) — fuente de verdad ════════ */
|
|
29
|
+
|
|
30
|
+
/* Superficies + texto base */
|
|
31
|
+
--background: oklch(1 0 0);
|
|
32
|
+
--foreground: oklch(0.145 0 0);
|
|
33
|
+
--card: oklch(1 0 0);
|
|
34
|
+
--card-foreground: oklch(0.145 0 0);
|
|
35
|
+
--popover: oklch(1 0 0);
|
|
36
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
37
|
+
--secondary: oklch(0.97 0 0); /* superficie neutra */
|
|
38
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
39
|
+
--muted-foreground: oklch(0.556 0 0); /* texto atenuado */
|
|
40
|
+
|
|
41
|
+
/* Marca */
|
|
42
|
+
--primary: oklch(0.47 0.097 183); /* teal-700 #0F766E */
|
|
43
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
44
|
+
|
|
45
|
+
/* Estado */
|
|
46
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
47
|
+
--success: oklch(0.59 0.163 148); /* green-600 */
|
|
48
|
+
--success-foreground: oklch(1 0 0);
|
|
49
|
+
--warning: oklch(0.56 0.14 58); /* amber-700 */
|
|
50
|
+
--warning-foreground: oklch(1 0 0);
|
|
51
|
+
|
|
52
|
+
/* Bordes / input / foco / radio */
|
|
53
|
+
--border: oklch(0.922 0 0);
|
|
54
|
+
--input: oklch(0.922 0 0);
|
|
55
|
+
--ring: oklch(0.47 0.097 183);
|
|
56
|
+
--radius: 0.625rem;
|
|
57
|
+
|
|
58
|
+
/* Visor PACS — oscuro SIEMPRE (también en light) */
|
|
59
|
+
--viewer-bg: oklch(0.22 0.027 214);
|
|
60
|
+
--viewer-foreground: oklch(0.88 0.012 220);
|
|
61
|
+
--viewer-border: oklch(0.3 0.025 214);
|
|
62
|
+
|
|
63
|
+
/* Paleta categórica de charts (anclada en la marca teal) */
|
|
64
|
+
--chart-1: oklch(0.55 0.12 183); /* teal (marca) */
|
|
65
|
+
--chart-2: oklch(0.6 0.12 220); /* azul */
|
|
66
|
+
--chart-3: oklch(0.65 0.14 150); /* verde */
|
|
67
|
+
--chart-4: oklch(0.72 0.15 80); /* ámbar */
|
|
68
|
+
--chart-5: oklch(0.62 0.19 25); /* coral */
|
|
69
|
+
|
|
70
|
+
/* ════════ B) HeroUI v3 (refs a A — CONTRATO, no renombrar) ════════
|
|
71
|
+
--background/--foreground/--border/--success/--warning/--radius comparten
|
|
72
|
+
nombre y significado con (A): HeroUI los lee directo, no se repiten acá. */
|
|
73
|
+
--surface: var(--card);
|
|
74
|
+
--surface-foreground: var(--card-foreground);
|
|
75
|
+
--overlay: var(--popover);
|
|
76
|
+
--overlay-foreground: var(--popover-foreground);
|
|
77
|
+
--accent: var(--primary); /* acción primaria = marca teal */
|
|
78
|
+
--accent-foreground: var(--primary-foreground);
|
|
79
|
+
--default: var(--secondary); /* superficie/botón neutro */
|
|
80
|
+
--default-foreground: var(--secondary-foreground);
|
|
81
|
+
--muted: var(--muted-foreground); /* texto atenuado / placeholder */
|
|
82
|
+
--danger: var(--destructive);
|
|
83
|
+
--danger-foreground: var(--primary-foreground);
|
|
84
|
+
--separator: var(--border);
|
|
85
|
+
--focus: var(--ring);
|
|
86
|
+
|
|
87
|
+
/* Campos de formulario (input/textarea/number/search/select/date...) — HeroUI
|
|
88
|
+
los LEE de estos --field-*. Son el ÚNICO punto de override de la superficie
|
|
89
|
+
de un field: los wrappers ergonómicos rechazan `className` a propósito
|
|
90
|
+
(caería en el wrapper RAC, no en el <input> → miss silencioso). Refs a los
|
|
91
|
+
canónicos → siguen la marca y el dark sale gratis. Un consumidor re-skina
|
|
92
|
+
todos los fields pisando estas vars (o los canónicos que referencian). */
|
|
93
|
+
--field-background: var(--background);
|
|
94
|
+
--field-foreground: var(--foreground);
|
|
95
|
+
--field-placeholder: var(--muted-foreground);
|
|
96
|
+
--field-border: var(--input);
|
|
97
|
+
--field-border-hover: var(--input);
|
|
98
|
+
--field-border-focus: var(--ring);
|
|
99
|
+
--field-focus: var(--ring);
|
|
100
|
+
--field-radius: var(--radius);
|
|
101
|
+
|
|
102
|
+
/* Variantes soft on-brand (HeroUI *-soft, ej. Button danger-soft) */
|
|
103
|
+
--accent-soft: color-mix(in oklch, var(--primary) 14%, var(--surface));
|
|
104
|
+
--accent-soft-foreground: var(--primary);
|
|
105
|
+
--danger-soft: color-mix(in oklch, var(--destructive) 14%, var(--surface));
|
|
106
|
+
--danger-soft-foreground: var(--destructive);
|
|
107
|
+
--success-soft: color-mix(in oklch, var(--success) 14%, var(--surface));
|
|
108
|
+
--success-soft-foreground: var(--success);
|
|
109
|
+
--warning-soft: color-mix(in oklch, var(--warning) 16%, var(--surface));
|
|
110
|
+
--warning-soft-foreground: var(--warning);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* ════════ Dark: SOLO redefine los canónicos (A). Las refs HeroUI (B) siguen. ════════ */
|
|
114
|
+
.dark {
|
|
115
|
+
--background: oklch(0.145 0 0);
|
|
116
|
+
--foreground: oklch(0.985 0 0);
|
|
117
|
+
--card: oklch(0.205 0 0);
|
|
118
|
+
--card-foreground: oklch(0.985 0 0);
|
|
119
|
+
--popover: oklch(0.205 0 0);
|
|
120
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
121
|
+
--secondary: oklch(0.269 0 0);
|
|
122
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
123
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
124
|
+
--primary: oklch(0.79 0.12 181); /* teal-400, más brillante en dark */
|
|
125
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
126
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
127
|
+
--success: oklch(0.7 0.16 150);
|
|
128
|
+
--success-foreground: oklch(0.205 0 0);
|
|
129
|
+
--warning: oklch(0.75 0.14 70);
|
|
130
|
+
--warning-foreground: oklch(0.205 0 0);
|
|
131
|
+
--border: oklch(1 0 0 / 10%);
|
|
132
|
+
--input: oklch(1 0 0 / 15%);
|
|
133
|
+
--ring: oklch(0.79 0.12 181);
|
|
134
|
+
/* viewer-* sin cambios: el visor queda oscuro en ambos modos */
|
|
135
|
+
/* charts: más brillantes para contraste sobre fondo oscuro */
|
|
136
|
+
--chart-1: oklch(0.7 0.13 183);
|
|
137
|
+
--chart-2: oklch(0.7 0.13 220);
|
|
138
|
+
--chart-3: oklch(0.72 0.15 150);
|
|
139
|
+
--chart-4: oklch(0.78 0.15 80);
|
|
140
|
+
--chart-5: oklch(0.7 0.18 25);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* ════════ C) Utilities Tailwind (@theme inline — CONTRATO de clases) ════════
|
|
144
|
+
Cada --color-X habilita bg-X / text-X / border-X. HeroUI ya mapea las suyas
|
|
145
|
+
(background/foreground/surface/accent/default/muted/...) vía @heroui/styles;
|
|
146
|
+
acá agregamos las shadcn que el consumidor usa y HeroUI no expone igual. */
|
|
147
|
+
@theme inline {
|
|
148
|
+
/* Marca / superficies / estado */
|
|
149
|
+
--color-primary: var(--primary);
|
|
150
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
151
|
+
--color-secondary: var(--secondary);
|
|
152
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
153
|
+
--color-card: var(--card);
|
|
154
|
+
--color-card-foreground: var(--card-foreground);
|
|
155
|
+
--color-popover: var(--popover);
|
|
156
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
157
|
+
--color-destructive: var(--destructive);
|
|
158
|
+
--color-input: var(--input);
|
|
159
|
+
--color-ring: var(--ring);
|
|
160
|
+
|
|
161
|
+
/* Texto atenuado → text-muted-foreground.
|
|
162
|
+
NO declarar --color-muted: HeroUI ya lo usa para `text-muted` (= var(--muted)
|
|
163
|
+
= gris legible). Pisarlo con una superficie deja el texto invisible. Para
|
|
164
|
+
superficie neutra usar bg-secondary; texto secundario = text-muted/-foreground. */
|
|
165
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
166
|
+
|
|
167
|
+
/* Visor: bg-viewer-bg / text-viewer-foreground / border-viewer-border
|
|
168
|
+
(mismos nombres que el source del poc → migra verbatim). */
|
|
169
|
+
--color-viewer-bg: var(--viewer-bg);
|
|
170
|
+
--color-viewer-foreground: var(--viewer-foreground);
|
|
171
|
+
--color-viewer-border: var(--viewer-border);
|
|
172
|
+
|
|
173
|
+
/* Charts: fill-chart-1 / stroke-chart-1 / bg-chart-1 ... (paleta categórica) */
|
|
174
|
+
--color-chart-1: var(--chart-1);
|
|
175
|
+
--color-chart-2: var(--chart-2);
|
|
176
|
+
--color-chart-3: var(--chart-3);
|
|
177
|
+
--color-chart-4: var(--chart-4);
|
|
178
|
+
--color-chart-5: var(--chart-5);
|
|
179
|
+
|
|
180
|
+
/* Radius (escala DESIGN.md) */
|
|
181
|
+
--radius-sm: calc(var(--radius) * 0.6);
|
|
182
|
+
--radius-md: calc(var(--radius) * 0.8);
|
|
183
|
+
--radius-lg: var(--radius);
|
|
184
|
+
--radius-xl: calc(var(--radius) * 1.4);
|
|
185
|
+
--radius-2xl: calc(var(--radius) * 1.8);
|
|
186
|
+
--radius-3xl: calc(var(--radius) * 2.2);
|
|
187
|
+
--radius-4xl: calc(var(--radius) * 2.6);
|
|
188
|
+
|
|
189
|
+
/* Tipografía (el consumidor inyecta --font-* vía next/font; fallbacks acá) */
|
|
190
|
+
--font-sans: var(--font-atkinson, var(--font-lato, ui-sans-serif, system-ui, sans-serif));
|
|
191
|
+
--font-mono: var(--font-geist-mono, ui-monospace, monospace);
|
|
192
|
+
--font-heading: var(--font-sans);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* Base raíz 18px (público médico 60+); todo el escalado rem sube proporcional. */
|
|
196
|
+
@layer base {
|
|
197
|
+
html {
|
|
198
|
+
font-size: 18px;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* ════════ Animaciones de recording-overlay (idénticas al source poc_generator) ════════
|
|
203
|
+
El block @lindaui/blocks/recording-overlay consume estas animaciones POR NOMBRE:
|
|
204
|
+
ti-rec-pulse / ti-rec-blink como clases, ti-wf inline en el waveform (usa --wfmax),
|
|
205
|
+
ti-fade en el root. Sin estos @keyframes el overlay se renderiza estático (las
|
|
206
|
+
clases existen pero no hay animación). Van unlayered para no depender del escaneo
|
|
207
|
+
Tailwind (son CSS literal, no utilities). */
|
|
208
|
+
@keyframes ti-rec-pulse { 0% { transform: scale(0.62); opacity: 0.7; } 100% { transform: scale(1.25); opacity: 0; } }
|
|
209
|
+
@keyframes ti-rec-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.25; } }
|
|
210
|
+
@keyframes ti-wf { 0%, 100% { height: 4px; } 50% { height: var(--wfmax); } }
|
|
211
|
+
@keyframes ti-fade { from { opacity: 0; } }
|
|
212
|
+
.ti-rec-pulse { animation: ti-rec-pulse 1.8s ease-out infinite; }
|
|
213
|
+
.ti-rec-blink { animation: ti-rec-blink 1.2s ease-in-out infinite; }
|
|
214
|
+
.ti-fade { animation: ti-fade 0.25s ease both; }
|