santycss 1.1.0 → 1.2.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.
@@ -590,6 +590,226 @@
590
590
  .dropdown-divider { height: 1px; background-color: #e5e7eb; margin: 4px 0; }
591
591
  .dropdown-header { padding: 6px 12px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #9ca3af; }
592
592
 
593
+ /* ── Component Variant System ──────────────────────────────────────────── */
594
+ /* Usage: make-button style-success size-large shape-pill */
595
+
596
+ /* make-button */
597
+ .make-button {
598
+ display:inline-flex; align-items:center; justify-content:center;
599
+ gap:8px; padding:9px 20px; font-size:14px; font-weight:600;
600
+ border-radius:8px; border:2px solid transparent; cursor:pointer;
601
+ text-decoration:none; transition:all 0.2s; line-height:1.25; white-space:nowrap;
602
+ }
603
+ .make-button:disabled { opacity:.5; cursor:not-allowed; }
604
+ .make-button.style-primary { background:#3b82f6; color:#fff; border-color:#3b82f6; }
605
+ .make-button.style-primary:hover { background:#2563eb; border-color:#2563eb; }
606
+ .make-button.style-secondary { background:#6b7280; color:#fff; border-color:#6b7280; }
607
+ .make-button.style-secondary:hover { background:#4b5563; border-color:#4b5563; }
608
+ .make-button.style-success { background:#22c55e; color:#fff; border-color:#22c55e; }
609
+ .make-button.style-success:hover { background:#16a34a; border-color:#16a34a; }
610
+ .make-button.style-danger { background:#ef4444; color:#fff; border-color:#ef4444; }
611
+ .make-button.style-danger:hover { background:#dc2626; border-color:#dc2626; }
612
+ .make-button.style-warning { background:#f59e0b; color:#fff; border-color:#f59e0b; }
613
+ .make-button.style-warning:hover { background:#d97706; border-color:#d97706; }
614
+ .make-button.style-info { background:#06b6d4; color:#fff; border-color:#06b6d4; }
615
+ .make-button.style-info:hover { background:#0891b2; border-color:#0891b2; }
616
+ .make-button.style-outline { background:transparent; border-color:currentColor; }
617
+ .make-button.style-outline:hover { background:rgba(0,0,0,.05); }
618
+ .make-button.style-ghost { background:transparent; border-color:transparent; }
619
+ .make-button.style-ghost:hover { background:rgba(0,0,0,.05); }
620
+ .make-button.style-dark { background:#1e293b; color:#f1f5f9; border-color:#1e293b; }
621
+ .make-button.style-dark:hover { background:#0f172a; border-color:#0f172a; }
622
+ .make-button.style-light { background:#f3f4f6; color:#374151; border-color:#e5e7eb; }
623
+ .make-button.style-light:hover { background:#e5e7eb; }
624
+ .make-button.size-tiny { padding:2px 8px; font-size:11px; border-radius:4px; }
625
+ .make-button.size-small { padding:5px 14px; font-size:12px; border-radius:6px; }
626
+ .make-button.size-large { padding:12px 28px; font-size:16px; border-radius:10px; }
627
+ .make-button.size-xl { padding:16px 36px; font-size:18px; border-radius:12px; }
628
+ .make-button.size-full { width:100%; justify-content:center; }
629
+ .make-button.shape-pill { border-radius:9999px; }
630
+ .make-button.shape-square { border-radius:0; }
631
+ .make-button.shape-rounded { border-radius:14px; }
632
+
633
+ /* make-card */
634
+ .make-card { background:#fff; border-radius:12px; box-shadow:var(--santy-shadow); overflow:hidden; }
635
+ .make-card.style-bordered { border:1px solid #e5e7eb; box-shadow:none; }
636
+ .make-card.style-elevated { box-shadow:0 10px 40px -8px rgba(0,0,0,.15); }
637
+ .make-card.style-flat { box-shadow:none; }
638
+ .make-card.style-dark { background:#1e293b; color:#f1f5f9; }
639
+ .make-card.shape-pill { border-radius:9999px; }
640
+ .make-card.shape-square { border-radius:0; }
641
+ .make-card.shape-rounded { border-radius:20px; }
642
+ .make-card.size-small { border-radius:8px; }
643
+ .make-card.size-large { border-radius:20px; }
644
+
645
+ /* make-badge */
646
+ .make-badge { display:inline-flex; align-items:center; gap:4px; padding:3px 10px; font-size:12px; font-weight:600; border-radius:9999px; line-height:1.4; }
647
+ .make-badge.style-primary { background:#dbeafe; color:#1d4ed8; }
648
+ .make-badge.style-secondary { background:#f3f4f6; color:#374151; }
649
+ .make-badge.style-success { background:#dcfce7; color:#15803d; }
650
+ .make-badge.style-danger { background:#fee2e2; color:#b91c1c; }
651
+ .make-badge.style-warning { background:#fef3c7; color:#b45309; }
652
+ .make-badge.style-info { background:#cffafe; color:#0e7490; }
653
+ .make-badge.style-dark { background:#1e293b; color:#f1f5f9; }
654
+ .make-badge.style-outline { background:transparent; border:1.5px solid currentColor; }
655
+ .make-badge.size-small { padding:1px 7px; font-size:10px; }
656
+ .make-badge.size-large { padding:5px 14px; font-size:14px; }
657
+ .make-badge.shape-square { border-radius:4px; }
658
+ .make-badge.shape-rounded { border-radius:6px; }
659
+
660
+ /* make-alert */
661
+ .make-alert { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border-radius:10px; font-size:14px; border:1px solid transparent; line-height:1.5; }
662
+ .make-alert.style-info { background:#eff6ff; border-color:#bfdbfe; color:#1d4ed8; }
663
+ .make-alert.style-success { background:#f0fdf4; border-color:#bbf7d0; color:#15803d; }
664
+ .make-alert.style-warning { background:#fffbeb; border-color:#fde68a; color:#b45309; }
665
+ .make-alert.style-danger { background:#fef2f2; border-color:#fecaca; color:#b91c1c; }
666
+ .make-alert.style-dark { background:#1e293b; border-color:#334155; color:#f1f5f9; }
667
+ .make-alert.size-small { padding:10px 12px; font-size:13px; border-radius:8px; }
668
+ .make-alert.size-large { padding:20px; font-size:16px; border-radius:12px; }
669
+ .make-alert.shape-square { border-radius:0; }
670
+ .make-alert.shape-pill { border-radius:9999px; padding-left:24px; }
671
+
672
+ /* make-input */
673
+ .make-input { display:block; width:100%; padding:9px 12px; font-size:14px; font-family:inherit; color:#111827; background:#fff; border:1.5px solid #d1d5db; border-radius:8px; transition:border-color .15s,box-shadow .15s; outline:none; line-height:1.5; }
674
+ .make-input:focus { border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.2); }
675
+ .make-input.style-error { border-color:#ef4444; }
676
+ .make-input.style-error:focus { box-shadow:0 0 0 3px rgba(239,68,68,.2); }
677
+ .make-input.style-success { border-color:#22c55e; }
678
+ .make-input.size-small { padding:4px 8px; font-size:12px; border-radius:6px; }
679
+ .make-input.size-large { padding:12px 16px; font-size:16px; border-radius:10px; }
680
+ .make-input.shape-pill { border-radius:9999px; padding-left:20px; }
681
+ .make-input.shape-square { border-radius:0; }
682
+
683
+ /* make-avatar */
684
+ .make-avatar { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:#e5e7eb; color:#374151; font-weight:600; font-size:14px; overflow:hidden; flex-shrink:0; }
685
+ .make-avatar img { width:100%; height:100%; object-fit:cover; }
686
+ .make-avatar.size-tiny { width:24px; height:24px; font-size:10px; }
687
+ .make-avatar.size-small { width:32px; height:32px; font-size:12px; }
688
+ .make-avatar.size-large { width:56px; height:56px; font-size:18px; }
689
+ .make-avatar.size-xl { width:80px; height:80px; font-size:24px; }
690
+ .make-avatar.shape-square { border-radius:8px; }
691
+ .make-avatar.shape-rounded { border-radius:12px; }
692
+ .make-avatar.style-primary { background:#dbeafe; color:#1d4ed8; }
693
+ .make-avatar.style-success { background:#dcfce7; color:#15803d; }
694
+ .make-avatar.style-danger { background:#fee2e2; color:#b91c1c; }
695
+ .make-avatar.style-warning { background:#fef3c7; color:#b45309; }
696
+ .make-avatar.style-dark { background:#1e293b; color:#f1f5f9; }
697
+
698
+ /* make-spinner */
699
+ .make-spinner { display:inline-block; width:24px; height:24px; border:3px solid #e5e7eb; border-top-color:#3b82f6; border-radius:50%; animation:santy-spin .75s linear infinite; }
700
+ .make-spinner.size-tiny { width:14px; height:14px; border-width:2px; }
701
+ .make-spinner.size-small { width:18px; height:18px; border-width:2px; }
702
+ .make-spinner.size-large { width:40px; height:40px; border-width:4px; }
703
+ .make-spinner.size-xl { width:56px; height:56px; border-width:5px; }
704
+ .make-spinner.style-success { border-top-color:#22c55e; }
705
+ .make-spinner.style-danger { border-top-color:#ef4444; }
706
+ .make-spinner.style-warning { border-top-color:#f59e0b; }
707
+ .make-spinner.style-dark { border-color:#334155; border-top-color:#f1f5f9; }
708
+
709
+ /* make-skeleton */
710
+ .make-skeleton { background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%); background-size:200% 100%; animation:santy-shimmer 1.5s infinite; border-radius:6px; }
711
+ .make-skeleton.shape-circle { border-radius:50%; }
712
+ .make-skeleton.shape-pill { border-radius:9999px; }
713
+ .make-skeleton.shape-square { border-radius:0; }
714
+ .make-skeleton.size-small { height:12px; }
715
+ .make-skeleton.size-large { height:24px; }
716
+
717
+ /* make-progress */
718
+ .make-progress { width:100%; background:#e5e7eb; border-radius:9999px; overflow:hidden; }
719
+ .make-progress > .bar { height:8px; background:#3b82f6; border-radius:9999px; transition:width .4s ease; }
720
+ .make-progress.style-success > .bar { background:#22c55e; }
721
+ .make-progress.style-danger > .bar { background:#ef4444; }
722
+ .make-progress.style-warning > .bar { background:#f59e0b; }
723
+ .make-progress.style-dark > .bar { background:#1e293b; }
724
+ .make-progress.size-small > .bar { height:4px; }
725
+ .make-progress.size-large > .bar { height:14px; }
726
+ .make-progress.shape-square { border-radius:0; }
727
+ .make-progress.shape-square > .bar { border-radius:0; }
728
+
729
+ /* make-table */
730
+ .make-table { width:100%; border-collapse:collapse; font-size:14px; }
731
+ .make-table th,.make-table td { padding:10px 12px; text-align:left; border-bottom:1px solid #e5e7eb; }
732
+ .make-table thead tr { background:#f9fafb; }
733
+ .make-table thead th { font-weight:600; color:#374151; font-size:12px; text-transform:uppercase; letter-spacing:.05em; }
734
+ .make-table.style-striped tbody tr:nth-child(even) { background:#f9fafb; }
735
+ .make-table.style-bordered { border:1px solid #e5e7eb; }
736
+ .make-table.style-bordered th,.make-table.style-bordered td { border:1px solid #e5e7eb; }
737
+ .make-table.style-hover tbody tr:hover { background:#f3f4f6; cursor:pointer; }
738
+ .make-table.style-dark { background:#1e293b; color:#f1f5f9; }
739
+ .make-table.style-dark th,.make-table.style-dark td { border-color:#334155; }
740
+ .make-table.style-dark thead tr { background:#0f172a; }
741
+ .make-table.size-small th,.make-table.size-small td { padding:6px 10px; font-size:13px; }
742
+ .make-table.size-large th,.make-table.size-large td { padding:14px 16px; font-size:15px; }
743
+
744
+ /* make-navbar */
745
+ .make-navbar { display:flex; align-items:center; justify-content:space-between; padding:12px 24px; background:#fff; border-bottom:1px solid #e5e7eb; gap:16px; }
746
+ .make-navbar.style-dark { background:#1e293b; border-color:#334155; color:#f1f5f9; }
747
+ .make-navbar.style-glass { background:rgba(255,255,255,.8); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
748
+ .make-navbar.style-transparent { background:transparent; border-color:transparent; }
749
+ .make-navbar.style-dark.style-glass { background:rgba(15,23,42,.85); }
750
+ .make-navbar.size-small { padding:8px 16px; }
751
+ .make-navbar.size-large { padding:20px 32px; }
752
+ .make-navbar.shape-sticky { position:sticky; top:0; z-index:50; }
753
+
754
+ /* make-tooltip */
755
+ .make-tooltip { position:relative; display:inline-block; }
756
+ .make-tooltip .tip { visibility:hidden; opacity:0; position:absolute; z-index:100; background:#1f2937; color:#f9fafb; font-size:12px; padding:5px 10px; border-radius:6px; white-space:nowrap; pointer-events:none; transition:opacity .15s; line-height:1.4; }
757
+ .make-tooltip:hover .tip { visibility:visible; opacity:1; }
758
+ .make-tooltip.style-top .tip { bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); }
759
+ .make-tooltip.style-bottom .tip { top:calc(100% + 8px); left:50%; transform:translateX(-50%); }
760
+ .make-tooltip.style-left .tip { right:calc(100% + 8px); top:50%; transform:translateY(-50%); }
761
+ .make-tooltip.style-right .tip { left:calc(100% + 8px); top:50%; transform:translateY(-50%); }
762
+ .make-tooltip.style-light .tip { background:#fff; color:#111827; box-shadow:0 4px 12px rgba(0,0,0,.15); }
763
+
764
+ /* make-notification */
765
+ .make-notification { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border-radius:10px; font-size:14px; border:1px solid transparent; line-height:1.4; }
766
+ .make-notification.style-info { background:#eff6ff; border-color:#bfdbfe; color:#1d4ed8; }
767
+ .make-notification.style-success { background:#f0fdf4; border-color:#bbf7d0; color:#15803d; }
768
+ .make-notification.style-warning { background:#fffbeb; border-color:#fde68a; color:#b45309; }
769
+ .make-notification.style-danger { background:#fef2f2; border-color:#fecaca; color:#b91c1c; }
770
+ .make-notification.style-dark { background:#1e293b; border-color:#334155; color:#f1f5f9; }
771
+ .make-notification.size-small { padding:10px 12px; font-size:13px; }
772
+ .make-notification.size-large { padding:20px; font-size:15px; }
773
+
774
+ /* make-modal */
775
+ .make-modal { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:200; display:none; align-items:center; justify-content:center; padding:16px; }
776
+ .make-modal:target { display:flex; }
777
+ .make-modal > .box { background:#fff; border-radius:16px; box-shadow:0 25px 50px -12px rgba(0,0,0,.25); max-width:560px; width:100%; max-height:90vh; overflow-y:auto; animation:santy-zoom-in .25s ease; }
778
+ .make-modal.size-small > .box { max-width:400px; }
779
+ .make-modal.size-large > .box { max-width:768px; }
780
+ .make-modal.size-xl > .box { max-width:1024px; }
781
+ .make-modal.size-full > .box { max-width:100%; height:100vh; border-radius:0; max-height:100vh; }
782
+ .make-modal.shape-square > .box { border-radius:0; }
783
+ .make-modal.style-dark > .box { background:#1e293b; color:#f1f5f9; }
784
+
785
+ /* make-drawer */
786
+ .make-drawer { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:200; display:none; }
787
+ .make-drawer:target { display:block; }
788
+ .make-drawer > .panel { position:fixed; top:0; bottom:0; left:0; width:300px; background:#fff; z-index:201; overflow-y:auto; box-shadow:4px 0 24px rgba(0,0,0,.12); transform:translateX(-100%); transition:transform .3s ease; }
789
+ .make-drawer:target > .panel { transform:translateX(0); }
790
+ .make-drawer.style-right > .panel { left:auto; right:0; transform:translateX(100%); box-shadow:-4px 0 24px rgba(0,0,0,.12); }
791
+ .make-drawer:target.style-right > .panel { transform:translateX(0); }
792
+ .make-drawer.style-dark > .panel { background:#1e293b; color:#f1f5f9; }
793
+ .make-drawer.size-small > .panel { width:220px; }
794
+ .make-drawer.size-large > .panel { width:420px; }
795
+
796
+ /* make-accordion */
797
+ .make-accordion { border:1px solid #e5e7eb; border-radius:10px; overflow:hidden; }
798
+ .make-accordion.style-flush { border:none; border-radius:0; }
799
+ .make-accordion.style-dark { background:#1e293b; border-color:#334155; color:#f1f5f9; }
800
+ .make-accordion.shape-square { border-radius:0; }
801
+ .make-accordion.shape-rounded { border-radius:16px; }
802
+
803
+ /* make-dropdown */
804
+ .make-dropdown { position:relative; display:inline-block; }
805
+ .make-dropdown > .menu { display:none; position:absolute; top:calc(100% + 4px); left:0; min-width:180px; background:#fff; border:1px solid #e5e7eb; border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.1); z-index:100; overflow:hidden; padding:4px; }
806
+ .make-dropdown.open > .menu { display:block; }
807
+ .make-dropdown.style-right > .menu { left:auto; right:0; }
808
+ .make-dropdown.style-top > .menu { top:auto; bottom:calc(100% + 4px); }
809
+ .make-dropdown.style-dark > .menu { background:#1e293b; border-color:#334155; }
810
+ .make-dropdown.size-small > .menu { min-width:140px; font-size:13px; }
811
+ .make-dropdown.size-large > .menu { min-width:240px; font-size:15px; }
812
+
593
813
  /* ── Dark Mode Component Variants ── */
594
814
  @media (prefers-color-scheme: dark) {
595
815
  .dark-auto .card { background-color: #1e293b; }