@duskmoon-dev/core 1.3.0 → 1.3.2

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 CHANGED
@@ -355,6 +355,47 @@ html {
355
355
  }
356
356
 
357
357
 
358
+ /* Custom utilities */
359
+ /**
360
+ * Custom utility classes
361
+ * Extends Tailwind CSS v4 with additional utilities
362
+ */
363
+
364
+ /* Responsive grid utilities with auto-fill/auto-fit */
365
+ @utility grid-cols-auto-fill-* {
366
+ grid-template-columns: repeat(auto-fill, minmax(min(calc(--value(integer) * 0.25rem), 100%), 1fr));
367
+ }
368
+
369
+ @utility grid-cols-auto-fit-* {
370
+ grid-template-columns: repeat(auto-fit, minmax(min(calc(--value(integer) * 0.25rem), 100%), 1fr));
371
+ }
372
+
373
+ /* Screen reader only utility - visually hidden but accessible */
374
+ .sr-only {
375
+ position: absolute;
376
+ width: 1px;
377
+ height: 1px;
378
+ padding: 0;
379
+ margin: -1px;
380
+ overflow: hidden;
381
+ clip: rect(0, 0, 0, 0);
382
+ white-space: nowrap;
383
+ border: 0;
384
+ }
385
+
386
+ /* Undo sr-only for focus states (useful for skip links) */
387
+ .not-sr-only {
388
+ position: static;
389
+ width: auto;
390
+ height: auto;
391
+ padding: 0;
392
+ margin: 0;
393
+ overflow: visible;
394
+ clip: auto;
395
+ white-space: normal;
396
+ }
397
+
398
+
358
399
 
359
400
  /* Built-in themes */
360
401
  /**
@@ -376,22 +417,22 @@ html {
376
417
  * ============================================ */
377
418
 
378
419
  /* Primary Color Family - Warm Orange */
379
- --color-primary: oklch(72% 0.165 55);
380
- --color-primary-content: oklch(100% 0 0);
381
- --color-primary-container: oklch(95% 0.04 55);
382
- --color-on-primary-container: oklch(35% 0.10 55);
420
+ --color-primary: oklch(95.86% 0.0693 95.91);
421
+ --color-primary-content: oklch(20% 0 0);
422
+ --color-primary-container: oklch(95% 0.035 95.91);
423
+ --color-on-primary-container: oklch(25% 0.03 95.91);
383
424
 
384
425
  /* Secondary Color Family - Coral Pink */
385
- --color-secondary: oklch(68% 0.18 360);
386
- --color-secondary-content: oklch(100% 0 0);
387
- --color-secondary-container: oklch(95% 0.04 360);
388
- --color-on-secondary-container: oklch(40% 0.12 360);
426
+ --color-secondary: oklch(87.42% 0.143 87.01);
427
+ --color-secondary-content: oklch(27.42% 0.143 87.01);
428
+ --color-secondary-container: oklch(94% 0.05 87.01);
429
+ --color-on-secondary-container: oklch(25% 0.05 87.01);
389
430
 
390
431
  /* Tertiary Color Family - Violet */
391
- --color-tertiary: oklch(62% 0.18 300);
392
- --color-tertiary-content: oklch(100% 0 0);
393
- --color-tertiary-container: oklch(95% 0.04 300);
394
- --color-on-tertiary-container: oklch(38% 0.12 300);
432
+ --color-tertiary: oklch(80% 0.085 235);
433
+ --color-tertiary-content: oklch(18% 0.010 235);
434
+ --color-tertiary-container: oklch(95% 0.035 235);
435
+ --color-on-tertiary-container: oklch(22% 0.012 235);
395
436
 
396
437
  /* ============================================
397
438
  * SURFACE COLORS
@@ -413,26 +454,26 @@ html {
413
454
  * ============================================ */
414
455
 
415
456
  /* Info - Sky Blue */
416
- --color-info: oklch(68% 0.15 235);
417
- --color-info-content: oklch(100% 0 0);
457
+ --color-info: oklch(41.94% 0.114 254.39);
458
+ --color-info-content: oklch(91.94% 0.114 254.39);
418
459
  --color-info-container: oklch(95% 0.03 235);
419
460
  --color-on-info-container: oklch(35% 0.08 235);
420
461
 
421
462
  /* Success - Green */
422
- --color-success: oklch(58% 0.14 150);
423
- --color-success-content: oklch(100% 0 0);
463
+ --color-success: oklch(67.21% 0.19 133.55);
464
+ --color-success-content: oklch(27.21% 0.19 133.55);
424
465
  --color-success-container: oklch(93% 0.04 150);
425
466
  --color-on-success-container: oklch(30% 0.08 150);
426
467
 
427
468
  /* Warning - Amber */
428
- --color-warning: oklch(80% 0.16 80);
429
- --color-warning-content: oklch(20% 0 0);
469
+ --color-warning: oklch(68.19% 0.203 42.44);
470
+ --color-warning-content: oklch(18.19% 0.6 42);
430
471
  --color-warning-container: oklch(93% 0.05 80);
431
472
  --color-on-warning-container: oklch(38% 0.10 80);
432
473
 
433
474
  /* Error - Red */
434
- --color-error: oklch(60% 0.20 25);
435
- --color-error-content: oklch(100% 0 0);
475
+ --color-error: oklch(61.17% 0.237 28.15);
476
+ --color-error-content: oklch(90.01% 0.153 84.78);
436
477
  --color-error-container: oklch(93% 0.04 25);
437
478
  --color-on-error-container: oklch(32% 0.10 25);
438
479
 
@@ -440,16 +481,16 @@ html {
440
481
  * NEUTRAL COLORS (Base Scale)
441
482
  * ============================================ */
442
483
 
443
- --color-base-100: oklch(100% 0 0);
444
- --color-base-200: oklch(98% 0.01 85);
445
- --color-base-300: oklch(96% 0.01 85);
446
- --color-base-400: oklch(91% 0.01 85);
447
- --color-base-500: oklch(80% 0.01 85);
448
- --color-base-600: oklch(62% 0.01 85);
449
- --color-base-700: oklch(50% 0.01 85);
450
- --color-base-800: oklch(35% 0.01 85);
451
- --color-base-900: oklch(23% 0.01 85);
452
- --color-base-content: oklch(27% 0.02 260);
484
+ --color-base-100: oklch(100% 0.1 255);
485
+ --color-base-200: oklch(85% 0.1 255);
486
+ --color-base-300: oklch(70% 0.1 255);
487
+ --color-base-400: oklch(55% 0.06 255);
488
+ --color-base-500: oklch(45% 0.05 255);
489
+ --color-base-600: oklch(35% 0.04 255);
490
+ --color-base-700: oklch(25% 0.03 255);
491
+ --color-base-800: oklch(18% 0.02 255);
492
+ --color-base-900: oklch(12% 0.01 255);
493
+ --color-base-content: oklch(10% 0 255);
453
494
 
454
495
  /* ============================================
455
496
  * OUTLINE COLORS
@@ -457,6 +498,55 @@ html {
457
498
 
458
499
  --color-outline: oklch(75% 0.01 260);
459
500
  --color-outline-variant: oklch(85% 0.01 260);
501
+
502
+ /* ============================================
503
+ * ACCENT COLORS
504
+ * ============================================ */
505
+
506
+ --color-accent: oklch(85.23% 0.14 327);
507
+ --color-accent-content: oklch(41% 0.112 45.904);
508
+
509
+ /* ============================================
510
+ * NEUTRAL COLORS
511
+ * ============================================ */
512
+
513
+ --color-neutral: oklch(0% 0 0);
514
+ --color-neutral-content: oklch(80% 0.1 50);
515
+ --color-neutral-variant: oklch(50% 0.02 260);
516
+
517
+ /* ============================================
518
+ * SHAPE & DEPTH
519
+ * ============================================ */
520
+
521
+ --radius-selector: 0rem;
522
+ --radius-field: 0.5rem;
523
+ --radius-box: 2rem;
524
+ --size-selector: 0.1875rem;
525
+ --size-field: 0.1875rem;
526
+ --border: 0.5px;
527
+ --depth: 1;
528
+ --noise: 1;
529
+
530
+ /* ============================================
531
+ * SURFACE VARIANT
532
+ * ============================================ */
533
+
534
+ --color-surface-variant: oklch(94% 0.02 85);
535
+
536
+ /* ============================================
537
+ * INVERSE COLORS
538
+ * ============================================ */
539
+
540
+ --color-inverse-surface: oklch(25% 0.02 260);
541
+ --color-inverse-on-surface: oklch(95% 0.01 260);
542
+ --color-inverse-primary: oklch(80% 0.14 55);
543
+
544
+ /* ============================================
545
+ * SHADOW & SCRIM
546
+ * ============================================ */
547
+
548
+ --color-shadow: oklch(0% 0 0);
549
+ --color-scrim: oklch(0% 0 0 / 50%);
460
550
  }
461
551
 
462
552
  /* Default theme - applies sunshine when no data-theme is set */
@@ -464,20 +554,20 @@ html {
464
554
  color-scheme: light;
465
555
 
466
556
  /* Brand Colors */
467
- --color-primary: oklch(72% 0.165 55);
468
- --color-primary-content: oklch(100% 0 0);
469
- --color-primary-container: oklch(95% 0.04 55);
470
- --color-on-primary-container: oklch(35% 0.10 55);
557
+ --color-primary: oklch(95.86% 0.0693 95.91);
558
+ --color-primary-content: oklch(20% 0 0);
559
+ --color-primary-container: oklch(95% 0.035 95.91);
560
+ --color-on-primary-container: oklch(25% 0.03 95.91);
471
561
 
472
- --color-secondary: oklch(68% 0.18 360);
473
- --color-secondary-content: oklch(100% 0 0);
474
- --color-secondary-container: oklch(95% 0.04 360);
475
- --color-on-secondary-container: oklch(40% 0.12 360);
562
+ --color-secondary: oklch(87.42% 0.143 87.01);
563
+ --color-secondary-content: oklch(27.42% 0.143 87.01);
564
+ --color-secondary-container: oklch(94% 0.05 87.01);
565
+ --color-on-secondary-container: oklch(25% 0.05 87.01);
476
566
 
477
- --color-tertiary: oklch(62% 0.18 300);
478
- --color-tertiary-content: oklch(100% 0 0);
479
- --color-tertiary-container: oklch(95% 0.04 300);
480
- --color-on-tertiary-container: oklch(38% 0.12 300);
567
+ --color-tertiary: oklch(80% 0.085 235);
568
+ --color-tertiary-content: oklch(18% 0.010 235);
569
+ --color-tertiary-container: oklch(95% 0.035 235);
570
+ --color-on-tertiary-container: oklch(22% 0.012 235);
481
571
 
482
572
  /* Surface Colors */
483
573
  --color-surface: oklch(100% 0 0);
@@ -492,41 +582,76 @@ html {
492
582
  --color-on-surface-variant: oklch(50% 0.02 260);
493
583
 
494
584
  /* Semantic Colors */
495
- --color-info: oklch(68% 0.15 235);
496
- --color-info-content: oklch(100% 0 0);
585
+ --color-info: oklch(41.94% 0.114 254.39);
586
+ --color-info-content: oklch(91.94% 0.114 254.39);
497
587
  --color-info-container: oklch(95% 0.03 235);
498
588
  --color-on-info-container: oklch(35% 0.08 235);
499
589
 
500
- --color-success: oklch(58% 0.14 150);
501
- --color-success-content: oklch(100% 0 0);
590
+ --color-success: oklch(67.21% 0.19 133.55);
591
+ --color-success-content: oklch(27.21% 0.19 133.55);
502
592
  --color-success-container: oklch(93% 0.04 150);
503
593
  --color-on-success-container: oklch(30% 0.08 150);
504
594
 
505
- --color-warning: oklch(80% 0.16 80);
506
- --color-warning-content: oklch(20% 0 0);
595
+ --color-warning: oklch(68.19% 0.203 42.44);
596
+ --color-warning-content: oklch(18.19% 0.6 42);
507
597
  --color-warning-container: oklch(93% 0.05 80);
508
598
  --color-on-warning-container: oklch(38% 0.10 80);
509
599
 
510
- --color-error: oklch(60% 0.20 25);
511
- --color-error-content: oklch(100% 0 0);
600
+ --color-error: oklch(61.17% 0.237 28.15);
601
+ --color-error-content: oklch(90.01% 0.153 84.78);
512
602
  --color-error-container: oklch(93% 0.04 25);
513
603
  --color-on-error-container: oklch(32% 0.10 25);
514
604
 
515
605
  /* Neutral Colors */
516
- --color-base-100: oklch(100% 0 0);
517
- --color-base-200: oklch(98% 0.01 85);
518
- --color-base-300: oklch(96% 0.01 85);
519
- --color-base-400: oklch(91% 0.01 85);
520
- --color-base-500: oklch(80% 0.01 85);
521
- --color-base-600: oklch(62% 0.01 85);
522
- --color-base-700: oklch(50% 0.01 85);
523
- --color-base-800: oklch(35% 0.01 85);
524
- --color-base-900: oklch(23% 0.01 85);
525
- --color-base-content: oklch(27% 0.02 260);
606
+ --color-base-100: oklch(100% 0.1 255);
607
+ --color-base-200: oklch(85% 0.1 255);
608
+ --color-base-300: oklch(70% 0.1 255);
609
+ --color-base-400: oklch(55% 0.06 255);
610
+ --color-base-500: oklch(45% 0.05 255);
611
+ --color-base-600: oklch(35% 0.04 255);
612
+ --color-base-700: oklch(25% 0.03 255);
613
+ --color-base-800: oklch(18% 0.02 255);
614
+ --color-base-900: oklch(12% 0.01 255);
615
+ --color-base-content: oklch(10% 0 255);
526
616
 
527
617
  /* Outline Colors */
528
618
  --color-outline: oklch(75% 0.01 260);
529
619
  --color-outline-variant: oklch(85% 0.01 260);
620
+
621
+ /* Accent Colors */
622
+ --color-accent: oklch(85.23% 0.14 327);
623
+ --color-accent-content: oklch(41% 0.112 45.904);
624
+
625
+ /* Neutral Colors */
626
+ --color-neutral: oklch(0% 0 0);
627
+ --color-neutral-content: oklch(80% 0.1 50);
628
+ --color-neutral-variant: oklch(50% 0.02 260);
629
+
630
+ /* ============================================
631
+ * SHAPE & DEPTH
632
+ * ============================================ */
633
+
634
+ --radius-selector: 0rem;
635
+ --radius-field: 0.5rem;
636
+ --radius-box: 2rem;
637
+ --size-selector: 0.1875rem;
638
+ --size-field: 0.1875rem;
639
+ --border: 0.5px;
640
+ --depth: 1;
641
+ --noise: 1;
642
+
643
+ /* Surface Variant */
644
+ --color-surface-variant: oklch(94% 0.02 85);
645
+
646
+
647
+ /* Inverse Colors */
648
+ --color-inverse-surface: oklch(25% 0.02 260);
649
+ --color-inverse-on-surface: oklch(95% 0.01 260);
650
+ --color-inverse-primary: oklch(80% 0.14 55);
651
+
652
+ /* Shadow & Scrim */
653
+ --color-shadow: oklch(0% 0 0);
654
+ --color-scrim: oklch(0% 0 0 / 50%);
530
655
  }
531
656
 
532
657
  /**
@@ -543,22 +668,22 @@ html {
543
668
  * ============================================ */
544
669
 
545
670
  /* Primary Color Family - Cool Blue */
546
- --color-primary: oklch(68% 0.18 255);
547
- --color-primary-content: oklch(100% 0 0);
548
- --color-primary-container: oklch(35% 0.08 255);
549
- --color-on-primary-container: oklch(88% 0.08 255);
671
+ --color-primary: oklch(85.45% 0 0);
672
+ --color-primary-content: oklch(14.94% 0.031 39.947);
673
+ --color-primary-container: oklch(25% 0.01 0);
674
+ --color-on-primary-container: oklch(85% 0.01 0);
550
675
 
551
676
  /* Secondary Color Family - Soft Teal */
552
- --color-secondary: oklch(72% 0.10 190);
553
- --color-secondary-content: oklch(20% 0 0);
554
- --color-secondary-container: oklch(32% 0.05 190);
555
- --color-on-secondary-container: oklch(85% 0.06 190);
677
+ --color-secondary: oklch(83.33% 0.0981 73.78);
678
+ --color-secondary-content: oklch(14.507% 0.035 2.72);
679
+ --color-secondary-container: oklch(28% 0.03 73.78);
680
+ --color-on-secondary-container: oklch(88% 0.03 73.78);
556
681
 
557
682
  /* Tertiary Color Family - Lavender */
558
- --color-tertiary: oklch(72% 0.14 310);
559
- --color-tertiary-content: oklch(20% 0 0);
560
- --color-tertiary-container: oklch(35% 0.08 310);
561
- --color-on-tertiary-container: oklch(88% 0.06 310);
683
+ --color-tertiary: oklch(72% 0.090 255);
684
+ --color-tertiary-content: oklch(14% 0.012 255);
685
+ --color-tertiary-container: oklch(28% 0.030 255);
686
+ --color-on-tertiary-container: oklch(88% 0.010 255);
562
687
 
563
688
  /* ============================================
564
689
  * SURFACE COLORS
@@ -580,26 +705,26 @@ html {
580
705
  * ============================================ */
581
706
 
582
707
  /* Info - Light Blue */
583
- --color-info: oklch(72% 0.12 235);
584
- --color-info-content: oklch(20% 0 0);
708
+ --color-info: oklch(82.42% 0.09757279812867503 240.7677443360475);
709
+ --color-info-content: oklch(17.111% 0.017 206.015);
585
710
  --color-info-container: oklch(32% 0.06 235);
586
711
  --color-on-info-container: oklch(88% 0.06 235);
587
712
 
588
713
  /* Success - Mint Green */
589
- --color-success: oklch(65% 0.12 150);
590
- --color-success-content: oklch(20% 0 0);
714
+ --color-success: oklch(82.19% 0.0621 133.3);
715
+ --color-success-content: oklch(17.112% 0.017 144.778);
591
716
  --color-success-container: oklch(30% 0.05 150);
592
717
  --color-on-success-container: oklch(85% 0.06 150);
593
718
 
594
719
  /* Warning - Warm Amber */
595
- --color-warning: oklch(82% 0.14 80);
596
- --color-warning-content: oklch(20% 0 0);
720
+ --color-warning: oklch(76.36% 0.1752731353930708 61.96388739129725);
721
+ --color-warning-content: oklch(17.113% 0.016 74.427);
597
722
  --color-warning-container: oklch(35% 0.06 80);
598
723
  --color-on-warning-container: oklch(90% 0.06 80);
599
724
 
600
725
  /* Error - Soft Red */
601
- --color-error: oklch(62% 0.18 25);
602
- --color-error-content: oklch(100% 0 0);
726
+ --color-error: oklch(46.38% 0.1898 29.17);
727
+ --color-error-content: oklch(86.38% 0.298 39.17);
603
728
  --color-error-container: oklch(30% 0.08 25);
604
729
  --color-on-error-container: oklch(88% 0.06 25);
605
730
 
@@ -607,16 +732,17 @@ html {
607
732
  * NEUTRAL COLORS (Base Scale)
608
733
  * ============================================ */
609
734
 
610
- --color-base-100: oklch(20% 0.02 260);
611
- --color-base-200: oklch(23% 0.02 260);
612
- --color-base-300: oklch(26% 0.02 260);
613
- --color-base-400: oklch(32% 0.01 260);
614
- --color-base-500: oklch(44% 0.01 260);
615
- --color-base-600: oklch(58% 0.01 260);
616
- --color-base-700: oklch(70% 0.01 260);
617
- --color-base-800: oklch(84% 0.01 260);
618
- --color-base-900: oklch(94% 0.01 260);
619
- --color-base-content: oklch(95% 0.01 260);
735
+ --color-base-100: oklch(22% 0.019 237.69);
736
+ --color-base-200: oklch(20% 0.019 237.69);
737
+ --color-base-300: oklch(18% 0.019 237.69);
738
+ --color-base-400: oklch(26% 0.019 237.69);
739
+ --color-base-500: oklch(32% 0.019 237.69);
740
+ --color-base-600: oklch(40% 0.018 237.69);
741
+ --color-base-700: oklch(55% 0.017 237.69);
742
+ --color-base-800: oklch(70% 0.016 237.69);
743
+ --color-base-900: oklch(85% 0.015 237.69);
744
+ --color-base-content: oklch(77.383% 0.043 245.096);
745
+
620
746
 
621
747
  /* ============================================
622
748
  * OUTLINE COLORS
@@ -624,6 +750,55 @@ html {
624
750
 
625
751
  --color-outline: oklch(44% 0.01 260);
626
752
  --color-outline-variant: oklch(35% 0.01 260);
753
+
754
+ /* ============================================
755
+ * ACCENT COLORS
756
+ * ============================================ */
757
+
758
+ --color-accent: oklch(75.65% 0.1303 335.51);
759
+ --color-accent-content: oklch(14.258% 0.033 299.844);
760
+
761
+ /* ============================================
762
+ * NEUTRAL COLORS
763
+ * ============================================ */
764
+
765
+ --color-neutral: oklch(23% 0 0);
766
+ --color-neutral-content: oklch(52.43% 0 0);
767
+ --color-neutral-variant: oklch(55% 0.01 260);
768
+
769
+ /* ============================================
770
+ * SHAPE & DEPTH
771
+ * ============================================ */
772
+
773
+ --radius-selector: 0rem;
774
+ --radius-field: 0.5rem;
775
+ --radius-box: 2rem;
776
+ --size-selector: 0.1875rem;
777
+ --size-field: 0.1875rem;
778
+ --border: 0.5px;
779
+ --depth: 1;
780
+ --noise: 1;
781
+
782
+ /* ============================================
783
+ * SURFACE VARIANT
784
+ * ============================================ */
785
+
786
+ --color-surface-variant: oklch(30% 0.02 260);
787
+
788
+ /* ============================================
789
+ * INVERSE COLORS
790
+ * ============================================ */
791
+
792
+ --color-inverse-surface: oklch(95% 0.01 260);
793
+ --color-inverse-on-surface: oklch(25% 0.02 260);
794
+ --color-inverse-primary: oklch(55% 0.16 255);
795
+
796
+ /* ============================================
797
+ * SHADOW & SCRIM
798
+ * ============================================ */
799
+
800
+ --color-shadow: oklch(0% 0 0);
801
+ --color-scrim: oklch(0% 0 0 / 60%);
627
802
  }
628
803
 
629
804
  /* System preference: prefers-color-scheme dark */
@@ -632,20 +807,20 @@ html {
632
807
  color-scheme: dark;
633
808
 
634
809
  /* Brand Colors */
635
- --color-primary: oklch(68% 0.18 255);
636
- --color-primary-content: oklch(100% 0 0);
637
- --color-primary-container: oklch(35% 0.08 255);
638
- --color-on-primary-container: oklch(88% 0.08 255);
810
+ --color-primary: oklch(85.45% 0 0);
811
+ --color-primary-content: oklch(14.94% 0.031 39.947);
812
+ --color-primary-container: oklch(25% 0.01 0);
813
+ --color-on-primary-container: oklch(85% 0.01 0);
639
814
 
640
- --color-secondary: oklch(72% 0.10 190);
641
- --color-secondary-content: oklch(20% 0 0);
642
- --color-secondary-container: oklch(32% 0.05 190);
643
- --color-on-secondary-container: oklch(85% 0.06 190);
815
+ --color-secondary: oklch(83.33% 0.0981 73.78);
816
+ --color-secondary-content: oklch(14.507% 0.035 2.72);
817
+ --color-secondary-container: oklch(28% 0.03 73.78);
818
+ --color-on-secondary-container: oklch(88% 0.03 73.78);
644
819
 
645
- --color-tertiary: oklch(72% 0.14 310);
646
- --color-tertiary-content: oklch(20% 0 0);
647
- --color-tertiary-container: oklch(35% 0.08 310);
648
- --color-on-tertiary-container: oklch(88% 0.06 310);
820
+ --color-tertiary: oklch(72% 0.090 255);
821
+ --color-tertiary-content: oklch(14% 0.012 255);
822
+ --color-tertiary-container: oklch(28% 0.030 255);
823
+ --color-on-tertiary-container: oklch(88% 0.010 255);
649
824
 
650
825
  /* Surface Colors */
651
826
  --color-surface: oklch(20% 0.02 260);
@@ -660,46 +835,81 @@ html {
660
835
  --color-on-surface-variant: oklch(75% 0.01 260);
661
836
 
662
837
  /* Semantic Colors */
663
- --color-info: oklch(72% 0.12 235);
664
- --color-info-content: oklch(20% 0 0);
838
+ --color-info: oklch(82.42% 0.09757279812867503 240.7677443360475);
839
+ --color-info-content: oklch(17.111% 0.017 206.015);
665
840
  --color-info-container: oklch(32% 0.06 235);
666
841
  --color-on-info-container: oklch(88% 0.06 235);
667
842
 
668
- --color-success: oklch(65% 0.12 150);
669
- --color-success-content: oklch(20% 0 0);
843
+ --color-success: oklch(82.19% 0.0621 133.3);
844
+ --color-success-content: oklch(17.112% 0.017 144.778);
670
845
  --color-success-container: oklch(30% 0.05 150);
671
846
  --color-on-success-container: oklch(85% 0.06 150);
672
847
 
673
- --color-warning: oklch(82% 0.14 80);
674
- --color-warning-content: oklch(20% 0 0);
848
+ --color-warning: oklch(76.36% 0.1752731353930708 61.96388739129725);
849
+ --color-warning-content: oklch(17.113% 0.016 74.427);
675
850
  --color-warning-container: oklch(35% 0.06 80);
676
851
  --color-on-warning-container: oklch(90% 0.06 80);
677
852
 
678
- --color-error: oklch(62% 0.18 25);
679
- --color-error-content: oklch(100% 0 0);
853
+ --color-error: oklch(46.38% 0.1898 29.17);
854
+ --color-error-content: oklch(86.38% 0.298 39.17);
680
855
  --color-error-container: oklch(30% 0.08 25);
681
856
  --color-on-error-container: oklch(88% 0.06 25);
682
857
 
683
858
  /* Neutral Colors */
684
- --color-base-100: oklch(20% 0.02 260);
685
- --color-base-200: oklch(23% 0.02 260);
686
- --color-base-300: oklch(26% 0.02 260);
687
- --color-base-400: oklch(32% 0.01 260);
688
- --color-base-500: oklch(44% 0.01 260);
689
- --color-base-600: oklch(58% 0.01 260);
690
- --color-base-700: oklch(70% 0.01 260);
691
- --color-base-800: oklch(84% 0.01 260);
692
- --color-base-900: oklch(94% 0.01 260);
693
- --color-base-content: oklch(95% 0.01 260);
859
+ --color-base-100: oklch(22% 0.019 237.69);
860
+ --color-base-200: oklch(20% 0.019 237.69);
861
+ --color-base-300: oklch(18% 0.019 237.69);
862
+ --color-base-400: oklch(26% 0.019 237.69);
863
+ --color-base-500: oklch(32% 0.019 237.69);
864
+ --color-base-600: oklch(40% 0.018 237.69);
865
+ --color-base-700: oklch(55% 0.017 237.69);
866
+ --color-base-800: oklch(70% 0.016 237.69);
867
+ --color-base-900: oklch(85% 0.015 237.69);
868
+ --color-base-content: oklch(77.383% 0.043 245.096);
694
869
 
695
870
  /* Outline Colors */
696
871
  --color-outline: oklch(44% 0.01 260);
697
872
  --color-outline-variant: oklch(35% 0.01 260);
873
+
874
+ /* Accent Colors */
875
+ --color-accent: oklch(75.65% 0.1303 335.51);
876
+ --color-accent-content: oklch(14.258% 0.033 299.844);
877
+
878
+ /* Neutral Colors */
879
+ --color-neutral: oklch(23% 0 0);
880
+ --color-neutral-content: oklch(52.43% 0 0);
881
+ --color-neutral-variant: oklch(55% 0.01 260);
882
+
883
+ /* ============================================
884
+ * SHAPE & DEPTH
885
+ * ============================================ */
886
+
887
+ --radius-selector: 0rem;
888
+ --radius-field: 0.5rem;
889
+ --radius-box: 2rem;
890
+ --size-selector: 0.1875rem;
891
+ --size-field: 0.1875rem;
892
+ --border: 0.5px;
893
+ --depth: 1;
894
+ --noise: 1;
895
+
896
+ /* Surface Variant */
897
+ --color-surface-variant: oklch(30% 0.02 260);
898
+
899
+ /* Inverse Colors */
900
+ --color-inverse-surface: oklch(95% 0.01 260);
901
+ --color-inverse-on-surface: oklch(25% 0.02 260);
902
+ --color-inverse-primary: oklch(55% 0.16 255);
903
+
904
+ /* Shadow & Scrim */
905
+ --color-shadow: oklch(0% 0 0);
906
+ --color-scrim: oklch(0% 0 0 / 60%);
698
907
  }
699
908
  }
700
909
 
701
910
 
702
911
 
912
+
703
913
  /* Component styles */
704
914
  /**
705
915
  * DuskMoonUI Components
@@ -4358,6 +4568,425 @@ html {
4358
4568
  }
4359
4569
  }
4360
4570
 
4571
+ /**
4572
+ * Cascader Component Styles
4573
+ * DuskMoonUI - Multi-level dropdown selection with horizontal panels
4574
+ */
4575
+
4576
+ @layer components {
4577
+ /* Base Cascader */
4578
+ .cascader {
4579
+ position: relative;
4580
+ display: inline-flex;
4581
+ flex-direction: column;
4582
+ width: 100%;
4583
+ }
4584
+
4585
+ /* Cascader Trigger */
4586
+ .cascader-trigger {
4587
+ display: flex;
4588
+ align-items: center;
4589
+ justify-content: space-between;
4590
+ width: 100%;
4591
+ padding: 0.75rem 1rem;
4592
+ font-size: 1rem;
4593
+ line-height: 1.5rem;
4594
+ color: var(--color-on-surface);
4595
+ background-color: var(--color-surface);
4596
+ border: 1px solid var(--color-outline);
4597
+ border-radius: 0.5rem;
4598
+ cursor: pointer;
4599
+ transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
4600
+ }
4601
+
4602
+ .cascader-trigger:hover:not(:disabled) {
4603
+ border-color: var(--color-on-surface-variant);
4604
+ }
4605
+
4606
+ .cascader-trigger:focus {
4607
+ outline: none;
4608
+ border-color: var(--color-primary);
4609
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 10%, transparent);
4610
+ }
4611
+
4612
+ .cascader-trigger:disabled {
4613
+ cursor: not-allowed;
4614
+ opacity: 0.5;
4615
+ background-color: var(--color-surface-container);
4616
+ }
4617
+
4618
+ /* Value Display */
4619
+ .cascader-value {
4620
+ flex: 1;
4621
+ display: flex;
4622
+ align-items: center;
4623
+ gap: 0.5rem;
4624
+ overflow: hidden;
4625
+ text-overflow: ellipsis;
4626
+ white-space: nowrap;
4627
+ color: var(--color-on-surface);
4628
+ }
4629
+
4630
+ /* Placeholder */
4631
+ .cascader-placeholder {
4632
+ color: var(--color-on-surface-variant);
4633
+ }
4634
+
4635
+ /* Path Display (breadcrumb-style) */
4636
+ .cascader-path {
4637
+ display: flex;
4638
+ align-items: center;
4639
+ gap: 0.25rem;
4640
+ overflow: hidden;
4641
+ text-overflow: ellipsis;
4642
+ white-space: nowrap;
4643
+ }
4644
+
4645
+ .cascader-path-separator {
4646
+ color: var(--color-on-surface-variant);
4647
+ font-size: 0.875rem;
4648
+ }
4649
+
4650
+ /* Dropdown Arrow */
4651
+ .cascader-arrow {
4652
+ display: flex;
4653
+ align-items: center;
4654
+ justify-content: center;
4655
+ width: 1.25rem;
4656
+ height: 1.25rem;
4657
+ color: var(--color-on-surface-variant);
4658
+ flex-shrink: 0;
4659
+ transition: transform 150ms ease-in-out;
4660
+ }
4661
+
4662
+ .cascader-open .cascader-arrow {
4663
+ transform: rotate(180deg);
4664
+ }
4665
+
4666
+ /* Clear Button */
4667
+ .cascader-clear {
4668
+ display: flex;
4669
+ align-items: center;
4670
+ justify-content: center;
4671
+ width: 1.25rem;
4672
+ height: 1.25rem;
4673
+ padding: 0;
4674
+ color: var(--color-on-surface-variant);
4675
+ background-color: transparent;
4676
+ border: none;
4677
+ border-radius: 50%;
4678
+ cursor: pointer;
4679
+ flex-shrink: 0;
4680
+ transition: background-color 150ms ease-in-out;
4681
+ }
4682
+
4683
+ .cascader-clear:hover {
4684
+ background-color: var(--color-surface-container-high);
4685
+ }
4686
+
4687
+ /* Cascader Dropdown */
4688
+ .cascader-dropdown {
4689
+ position: absolute;
4690
+ top: 100%;
4691
+ left: 0;
4692
+ z-index: 50;
4693
+ display: none;
4694
+ margin-top: 0.25rem;
4695
+ background-color: var(--color-surface);
4696
+ border: 1px solid var(--color-outline-variant);
4697
+ border-radius: 0.5rem;
4698
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
4699
+ overflow: hidden;
4700
+ }
4701
+
4702
+ .cascader-open .cascader-dropdown {
4703
+ display: flex;
4704
+ }
4705
+
4706
+ /* Popover API Support */
4707
+ .cascader-dropdown[popover] {
4708
+ inset: unset;
4709
+ margin: 0;
4710
+ border: 1px solid var(--color-outline-variant);
4711
+ }
4712
+
4713
+ .cascader-dropdown[popover]:popover-open {
4714
+ display: flex;
4715
+ }
4716
+
4717
+ /* CSS Anchor Positioning for modern browsers */
4718
+ @supports (anchor-name: --anchor) {
4719
+ .cascader-trigger {
4720
+ anchor-name: --cascader-anchor;
4721
+ }
4722
+
4723
+ .cascader-dropdown[popover] {
4724
+ position-anchor: --cascader-anchor;
4725
+ top: anchor(bottom);
4726
+ left: anchor(left);
4727
+ margin-top: 0.25rem;
4728
+ position-try-fallbacks: flip-block;
4729
+ }
4730
+ }
4731
+
4732
+ /* Fallback for browsers without anchor positioning */
4733
+ @supports not (anchor-name: --anchor) {
4734
+ .cascader {
4735
+ position: relative;
4736
+ }
4737
+
4738
+ .cascader-dropdown[popover]:popover-open {
4739
+ position: absolute;
4740
+ top: 100%;
4741
+ left: 0;
4742
+ margin-top: 0.25rem;
4743
+ }
4744
+ }
4745
+
4746
+ /* Panels Container (horizontal layout) */
4747
+ .cascader-panels {
4748
+ display: flex;
4749
+ max-height: 16rem;
4750
+ }
4751
+
4752
+ /* Individual Panel */
4753
+ .cascader-panel {
4754
+ display: flex;
4755
+ flex-direction: column;
4756
+ min-width: 10rem;
4757
+ max-width: 14rem;
4758
+ overflow-y: auto;
4759
+ border-right: 1px solid var(--color-outline-variant);
4760
+ }
4761
+
4762
+ .cascader-panel:last-child {
4763
+ border-right: none;
4764
+ }
4765
+
4766
+ /* Panel Header (optional) */
4767
+ .cascader-panel-header {
4768
+ padding: 0.5rem 0.75rem;
4769
+ font-size: 0.75rem;
4770
+ font-weight: 600;
4771
+ color: var(--color-on-surface-variant);
4772
+ text-transform: uppercase;
4773
+ letter-spacing: 0.05em;
4774
+ background-color: var(--color-surface-container);
4775
+ border-bottom: 1px solid var(--color-outline-variant);
4776
+ }
4777
+
4778
+ /* Panel Options */
4779
+ .cascader-options {
4780
+ display: flex;
4781
+ flex-direction: column;
4782
+ padding: 0.25rem;
4783
+ flex: 1;
4784
+ overflow-y: auto;
4785
+ }
4786
+
4787
+ /* Cascader Option */
4788
+ .cascader-option {
4789
+ display: flex;
4790
+ align-items: center;
4791
+ justify-content: space-between;
4792
+ gap: 0.5rem;
4793
+ padding: 0.5rem 0.75rem;
4794
+ font-size: 0.875rem;
4795
+ color: var(--color-on-surface);
4796
+ background-color: transparent;
4797
+ border: none;
4798
+ border-radius: 0.375rem;
4799
+ cursor: pointer;
4800
+ text-align: left;
4801
+ width: 100%;
4802
+ transition: background-color 150ms ease-in-out;
4803
+ }
4804
+
4805
+ .cascader-option:hover {
4806
+ background-color: var(--color-surface-container);
4807
+ }
4808
+
4809
+ .cascader-option-active {
4810
+ background-color: var(--color-surface-container-high);
4811
+ }
4812
+
4813
+ .cascader-option-selected {
4814
+ background-color: var(--color-primary-container);
4815
+ color: var(--color-on-primary-container);
4816
+ }
4817
+
4818
+ .cascader-option-selected:hover {
4819
+ background-color: color-mix(in oklch, var(--color-primary-container), black 5%);
4820
+ }
4821
+
4822
+ .cascader-option-disabled {
4823
+ opacity: 0.5;
4824
+ cursor: not-allowed;
4825
+ }
4826
+
4827
+ .cascader-option-disabled:hover {
4828
+ background-color: transparent;
4829
+ }
4830
+
4831
+ /* Option Label */
4832
+ .cascader-option-label {
4833
+ flex: 1;
4834
+ overflow: hidden;
4835
+ text-overflow: ellipsis;
4836
+ white-space: nowrap;
4837
+ }
4838
+
4839
+ /* Option Arrow (indicates has children) */
4840
+ .cascader-option-arrow {
4841
+ display: flex;
4842
+ align-items: center;
4843
+ justify-content: center;
4844
+ width: 1rem;
4845
+ height: 1rem;
4846
+ color: var(--color-on-surface-variant);
4847
+ flex-shrink: 0;
4848
+ }
4849
+
4850
+ .cascader-option-selected .cascader-option-arrow {
4851
+ color: var(--color-on-primary-container);
4852
+ }
4853
+
4854
+ /* Search Input */
4855
+ .cascader-search {
4856
+ display: flex;
4857
+ padding: 0.5rem;
4858
+ border-bottom: 1px solid var(--color-outline-variant);
4859
+ }
4860
+
4861
+ .cascader-search-input {
4862
+ flex: 1;
4863
+ padding: 0.5rem 0.75rem;
4864
+ font-size: 0.875rem;
4865
+ color: var(--color-on-surface);
4866
+ background-color: var(--color-surface-container);
4867
+ border: none;
4868
+ border-radius: 0.375rem;
4869
+ outline: none;
4870
+ }
4871
+
4872
+ .cascader-search-input:focus {
4873
+ background-color: var(--color-surface-container-high);
4874
+ }
4875
+
4876
+ .cascader-search-input::placeholder {
4877
+ color: var(--color-on-surface-variant);
4878
+ }
4879
+
4880
+ /* Empty State */
4881
+ .cascader-empty {
4882
+ padding: 1.5rem;
4883
+ text-align: center;
4884
+ color: var(--color-on-surface-variant);
4885
+ font-size: 0.875rem;
4886
+ }
4887
+
4888
+ /* Size Variants */
4889
+ .cascader-sm .cascader-trigger {
4890
+ padding: 0.5rem 0.75rem;
4891
+ font-size: 0.875rem;
4892
+ border-radius: 0.375rem;
4893
+ }
4894
+
4895
+ .cascader-sm .cascader-panel {
4896
+ min-width: 8rem;
4897
+ max-width: 12rem;
4898
+ }
4899
+
4900
+ .cascader-sm .cascader-option {
4901
+ padding: 0.375rem 0.5rem;
4902
+ font-size: 0.8125rem;
4903
+ }
4904
+
4905
+ .cascader-lg .cascader-trigger {
4906
+ padding: 1rem 1.25rem;
4907
+ font-size: 1.125rem;
4908
+ border-radius: 0.625rem;
4909
+ }
4910
+
4911
+ .cascader-lg .cascader-panel {
4912
+ min-width: 12rem;
4913
+ max-width: 16rem;
4914
+ }
4915
+
4916
+ .cascader-lg .cascader-option {
4917
+ padding: 0.625rem 1rem;
4918
+ font-size: 1rem;
4919
+ }
4920
+
4921
+ /* Outlined Variant (Default) */
4922
+ .cascader-outlined .cascader-trigger {
4923
+ background-color: var(--color-surface);
4924
+ border: 1px solid var(--color-outline);
4925
+ }
4926
+
4927
+ /* Filled Variant */
4928
+ .cascader-filled .cascader-trigger {
4929
+ background-color: var(--color-surface-container);
4930
+ border: none;
4931
+ border-bottom: 2px solid var(--color-outline);
4932
+ border-radius: 0.5rem 0.5rem 0 0;
4933
+ }
4934
+
4935
+ .cascader-filled .cascader-trigger:focus {
4936
+ border-bottom-color: var(--color-primary);
4937
+ box-shadow: none;
4938
+ }
4939
+
4940
+ /* Error State */
4941
+ .cascader-error .cascader-trigger {
4942
+ border-color: var(--color-error);
4943
+ }
4944
+
4945
+ .cascader-error .cascader-trigger:focus {
4946
+ border-color: var(--color-error);
4947
+ box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-error) 10%, transparent);
4948
+ }
4949
+
4950
+ /* Disabled State */
4951
+ .cascader-disabled .cascader-trigger {
4952
+ cursor: not-allowed;
4953
+ opacity: 0.5;
4954
+ background-color: var(--color-surface-container);
4955
+ }
4956
+
4957
+ /* Loading State */
4958
+ .cascader-loading .cascader-trigger {
4959
+ cursor: wait;
4960
+ }
4961
+
4962
+ .cascader-spinner {
4963
+ display: inline-block;
4964
+ width: 1rem;
4965
+ height: 1rem;
4966
+ border: 2px solid var(--color-outline);
4967
+ border-top-color: var(--color-primary);
4968
+ border-radius: 50%;
4969
+ animation: cascader-spin 0.8s linear infinite;
4970
+ }
4971
+
4972
+ @keyframes cascader-spin {
4973
+ to { transform: rotate(360deg); }
4974
+ }
4975
+
4976
+ /* Reduce Motion */
4977
+ @media (prefers-reduced-motion: reduce) {
4978
+ .cascader-trigger,
4979
+ .cascader-arrow,
4980
+ .cascader-option,
4981
+ .cascader-clear {
4982
+ transition: none;
4983
+ }
4984
+ .cascader-spinner {
4985
+ animation: none;
4986
+ }
4987
+ }
4988
+ }
4989
+
4361
4990
  /**
4362
4991
  * Checkbox Component Styles
4363
4992
  * DuskMoonUI - Material Design 3 inspired checkbox