@howssatoshi/quantumcss 1.7.5 → 1.8.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.
@@ -1,8 +1,12 @@
1
1
  /*!
2
- * QuantumCSS + Starlight UI
3
- * Advanced utility-first framework with ethereal cosmic aesthetics
4
- * Version: 1.7.3
5
- * Features: Modern CSS, JIT Engine, Starlight Components, Dark Mode
2
+ * QuantumCSS Core
3
+ * Layer: Core / Tokens & Base
4
+ *
5
+ * ARCHITECTURAL CONTRACT:
6
+ * 1. Core layer MUST NEVER reference brand-specific tokens (e.g., --q-color-starlight).
7
+ * 2. Core layer MUST ONLY use semantic tokens (e.g., --q-color-primary, --q-color-bg).
8
+ * 3. Aesthetics (gradients, specific colors) are injected by the Theme layer.
9
+ * 4. This file contains the non-optional compliance and reset layers.
6
10
  */
7
11
 
8
12
  @import 'https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap';
@@ -29,6 +33,29 @@
29
33
  --q-color-error: #ef4444;
30
34
  --q-color-neutral: #6b7280;
31
35
 
36
+ /* Semantic Color Tokens (Core Layer) */
37
+ --q-color-bg: var(--q-bg-primary);
38
+ --q-color-bg-muted: color-mix(in srgb, var(--q-color-bg), var(--q-color-neutral) 5%);
39
+ --q-color-surface: var(--q-card-bg);
40
+ --q-color-surface-elevated: color-mix(in srgb, var(--q-color-surface), white 2%);
41
+ --q-color-border: var(--q-card-border);
42
+ --q-color-border-strong: color-mix(in srgb, var(--q-color-border), white 10%);
43
+
44
+ --q-color-text: var(--q-text-primary);
45
+ --q-color-text-muted: var(--q-text-secondary);
46
+ --q-color-text-inverse: #000;
47
+
48
+ --q-color-primary-hover: var(--q-color-primary-600);
49
+ --q-color-success-soft: color-mix(in srgb, var(--q-color-success) 15%, transparent);
50
+ --q-color-warning-soft: color-mix(in srgb, var(--q-color-warning) 15%, transparent);
51
+ --q-color-danger: var(--q-color-error);
52
+ --q-color-danger-soft: color-mix(in srgb, var(--q-color-danger) 15%, transparent);
53
+ --q-color-info: var(--q-color-primary);
54
+ --q-color-info-soft: color-mix(in srgb, var(--q-color-info) 15%, transparent);
55
+
56
+ --q-color-link: var(--q-color-primary);
57
+ --q-color-link-hover: var(--q-color-primary-hover);
58
+
32
59
  /* Typography */
33
60
  --q-font-sans: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
34
61
  --q-font-serif: Georgia, Cambria, serif;
@@ -67,21 +94,21 @@
67
94
  --q-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 8px 10px -6px rgb(0 0 0 / 10%);
68
95
  --q-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 25%);
69
96
 
70
- /* Animation */
71
- --q-duration-75: 75ms;
72
- --q-duration-100: 100ms;
73
- --q-duration-150: 150ms;
74
- --q-duration-200: 200ms;
75
- --q-duration-300: 300ms;
76
- --q-duration-500: 500ms;
77
- --q-duration-700: 700ms;
78
- --q-duration-1000: 1000ms;
97
+ /* Animation & Motion Tokens */
98
+ --q-duration-instant: 0ms;
99
+ --q-duration-fast: 150ms;
100
+ --q-duration-base: 250ms;
101
+ --q-duration-slow: 400ms;
102
+ --q-duration-slower: 700ms;
103
+
79
104
  --q-ease-linear: linear;
80
105
  --q-ease-in: cubic-bezier(0.4, 0, 1, 1);
81
106
  --q-ease-out: cubic-bezier(0, 0, 0.2, 1);
82
107
  --q-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
108
+ --q-ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
83
109
 
84
110
  /* --- Starlight Specific Tokens --- */
111
+ --q-color-starlight: var(--q-color-starlight-blue);
85
112
  --q-color-starlight-blue: #00d4ff;
86
113
  --q-color-starlight-peach: #ffb38a;
87
114
  --q-color-starlight-orange: #ff7e5f;
@@ -90,6 +117,8 @@
90
117
 
91
118
  /* Semantic Background Colors */
92
119
  --q-bg-primary: var(--q-color-starlight-deep);
120
+ --q-card-bg: rgba(255 255 255 / 5%);
121
+ --q-card-border: rgba(255 255 255 / 8%);
93
122
 
94
123
  /* Semantic Text Colors */
95
124
  --q-text-primary: #f1f5f9;
@@ -109,9 +138,9 @@
109
138
  --q-glass-blur: blur(16px);
110
139
 
111
140
  /* Transitions */
112
- --q-transition-fast: 150ms ease-in-out;
113
- --q-transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
114
- --q-transition-slow: 400ms ease-in-out;
141
+ --q-transition-fast: var(--q-duration-fast) var(--q-ease-in-out);
142
+ --q-transition-base: var(--q-duration-base) var(--q-ease-in-out);
143
+ --q-transition-slow: var(--q-duration-slow) var(--q-ease-in-out);
115
144
  }
116
145
 
117
146
  /* High Contrast (Accessibility) Mode Support */
@@ -165,6 +194,7 @@
165
194
  }
166
195
 
167
196
  html {
197
+ scroll-behavior: smooth;
168
198
  line-height: 1.6;
169
199
  -webkit-text-size-adjust: 100%;
170
200
  font-family: Inter, system-ui, -apple-system, sans-serif;
@@ -627,11 +657,113 @@ textarea {
627
657
  .w-screen { width: 100vw; }
628
658
  .w-fit { width: fit-content; }
629
659
 
660
+ /* Width Scale */
661
+ .w-0 { width: var(--q-space-0); }
662
+ .w-1 { width: var(--q-space-1); }
663
+ .w-2 { width: var(--q-space-2); }
664
+ .w-3 { width: var(--q-space-3); }
665
+ .w-4 { width: var(--q-space-4); }
666
+ .w-5 { width: var(--q-space-5); }
667
+ .w-6 { width: var(--q-space-6); }
668
+ .w-8 { width: var(--q-space-8); }
669
+ .w-10 { width: var(--q-space-10); }
670
+ .w-12 { width: var(--q-space-12); }
671
+ .w-16 { width: var(--q-space-16); }
672
+ .w-20 { width: var(--q-space-20); }
673
+ .w-24 { width: var(--q-space-24); }
674
+ .w-32 { width: var(--q-space-32); }
675
+
676
+ /* Height Scale */
630
677
  .h-auto { height: auto; }
631
678
  .h-full { height: 100%; }
632
679
  .h-screen { height: 100vh; }
633
680
  .h-fit { height: fit-content; }
634
681
 
682
+ .h-0 { height: var(--q-space-0); }
683
+ .h-1 { height: var(--q-space-1); }
684
+ .h-2 { height: var(--q-space-2); }
685
+ .h-3 { height: var(--q-space-3); }
686
+ .h-4 { height: var(--q-space-4); }
687
+ .h-5 { height: var(--q-space-5); }
688
+ .h-6 { height: var(--q-space-6); }
689
+ .h-8 { height: var(--q-space-8); }
690
+ .h-10 { height: var(--q-space-10); }
691
+ .h-12 { height: var(--q-space-12); }
692
+ .h-16 { height: var(--q-space-16); }
693
+ .h-20 { height: var(--q-space-20); }
694
+ .h-24 { height: var(--q-space-24); }
695
+ .h-32 { height: var(--q-space-32); }
696
+
697
+ /* Min Width Scale */
698
+ .min-w-0 { min-width: var(--q-space-0); }
699
+ .min-w-1 { min-width: var(--q-space-1); }
700
+ .min-w-2 { min-width: var(--q-space-2); }
701
+ .min-w-3 { min-width: var(--q-space-3); }
702
+ .min-w-4 { min-width: var(--q-space-4); }
703
+ .min-w-5 { min-width: var(--q-space-5); }
704
+ .min-w-6 { min-width: var(--q-space-6); }
705
+ .min-w-8 { min-width: var(--q-space-8); }
706
+ .min-w-10 { min-width: var(--q-space-10); }
707
+ .min-w-12 { min-width: var(--q-space-12); }
708
+ .min-w-16 { min-width: var(--q-space-16); }
709
+ .min-w-20 { min-width: var(--q-space-20); }
710
+ .min-w-24 { min-width: var(--q-space-24); }
711
+ .min-w-32 { min-width: var(--q-space-32); }
712
+ .min-w-full { min-width: 100%; }
713
+
714
+ /* Min Height Scale */
715
+ .min-h-0 { min-height: var(--q-space-0); }
716
+ .min-h-1 { min-height: var(--q-space-1); }
717
+ .min-h-2 { min-height: var(--q-space-2); }
718
+ .min-h-3 { min-height: var(--q-space-3); }
719
+ .min-h-4 { min-height: var(--q-space-4); }
720
+ .min-h-5 { min-height: var(--q-space-5); }
721
+ .min-h-6 { min-height: var(--q-space-6); }
722
+ .min-h-8 { min-height: var(--q-space-8); }
723
+ .min-h-10 { min-height: var(--q-space-10); }
724
+ .min-h-12 { min-height: var(--q-space-12); }
725
+ .min-h-16 { min-height: var(--q-space-16); }
726
+ .min-h-20 { min-height: var(--q-space-20); }
727
+ .min-h-24 { min-height: var(--q-space-24); }
728
+ .min-h-32 { min-height: var(--q-space-32); }
729
+ .min-h-full { min-height: 100%; }
730
+
731
+ /* Max Width Scale */
732
+ .max-w-0 { max-width: var(--q-space-0); }
733
+ .max-w-1 { max-width: var(--q-space-1); }
734
+ .max-w-2 { max-width: var(--q-space-2); }
735
+ .max-w-3 { max-width: var(--q-space-3); }
736
+ .max-w-4 { max-width: var(--q-space-4); }
737
+ .max-w-5 { max-width: var(--q-space-5); }
738
+ .max-w-6 { max-width: var(--q-space-6); }
739
+ .max-w-8 { max-width: var(--q-space-8); }
740
+ .max-w-10 { max-width: var(--q-space-10); }
741
+ .max-w-12 { max-width: var(--q-space-12); }
742
+ .max-w-16 { max-width: var(--q-space-16); }
743
+ .max-w-20 { max-width: var(--q-space-20); }
744
+ .max-w-24 { max-width: var(--q-space-24); }
745
+ .max-w-32 { max-width: var(--q-space-32); }
746
+ .max-w-full { max-width: 100%; }
747
+ .max-w-screen { max-width: 100vw; }
748
+
749
+ /* Max Height Scale */
750
+ .max-h-0 { max-height: var(--q-space-0); }
751
+ .max-h-1 { max-height: var(--q-space-1); }
752
+ .max-h-2 { max-height: var(--q-space-2); }
753
+ .max-h-3 { max-height: var(--q-space-3); }
754
+ .max-h-4 { max-height: var(--q-space-4); }
755
+ .max-h-5 { max-height: var(--q-space-5); }
756
+ .max-h-6 { max-height: var(--q-space-6); }
757
+ .max-h-8 { max-height: var(--q-space-8); }
758
+ .max-h-10 { max-height: var(--q-space-10); }
759
+ .max-h-12 { max-height: var(--q-space-12); }
760
+ .max-h-16 { max-height: var(--q-space-16); }
761
+ .max-h-20 { max-height: var(--q-space-20); }
762
+ .max-h-24 { max-height: var(--q-space-24); }
763
+ .max-h-32 { max-height: var(--q-space-32); }
764
+ .max-h-full { max-height: 100%; }
765
+ .max-h-screen { max-height: 100vh; }
766
+
635
767
  /* Transition Utilities */
636
768
  .transition-none {
637
769
  transition-property: none;
@@ -640,13 +772,13 @@ textarea {
640
772
  .transition-all {
641
773
  transition-property: all;
642
774
  transition-timing-function: var(--q-ease-in-out);
643
- transition-duration: var(--q-duration-150);
775
+ transition-duration: var(--q-duration-fast);
644
776
  }
645
777
 
646
778
  .transition-colors {
647
779
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
648
780
  transition-timing-function: var(--q-ease-in-out);
649
- transition-duration: var(--q-duration-150);
781
+ transition-duration: var(--q-duration-fast);
650
782
  }
651
783
 
652
784
  /* Transform Utilities */
@@ -753,14 +885,12 @@ textarea {
753
885
  color: var(--q-color-primary-600);
754
886
  }
755
887
 
756
- /* Reduced Motion Support */
888
+ /* Reduced Motion Compliance Layer */
757
889
  @media (prefers-reduced-motion: reduce) {
758
- *,
759
- *::before,
760
- *::after {
761
- animation-duration: 0.01ms !important;
890
+ * {
891
+ animation-duration: 0ms !important;
762
892
  animation-iteration-count: 1 !important;
763
- transition-duration: 0.01ms !important;
893
+ transition-duration: 0ms !important;
764
894
  scroll-behavior: auto !important;
765
895
  }
766
896
  }
@@ -800,8 +930,7 @@ textarea {
800
930
 
801
931
 
802
932
 
803
- html[data-theme="light"],
804
- body.light-mode {
933
+ html[data-theme="light"] {
805
934
  color-scheme: light;
806
935
 
807
936
  --q-bg-primary: var(--q-light-bg);
@@ -812,8 +941,7 @@ body.light-mode {
812
941
  scrollbar-color: var(--q-color-starlight-blue) transparent;
813
942
  }
814
943
 
815
- html[data-theme="dark"],
816
- body.dark-mode {
944
+ html[data-theme="dark"] {
817
945
  color-scheme: dark;
818
946
 
819
947
  --q-bg-primary: var(--q-color-starlight-deep);
@@ -821,14 +949,12 @@ body.dark-mode {
821
949
  }
822
950
 
823
951
  /* Force theme colors on body to override template-specific hardcoded styles */
824
- html[data-theme="light"] body,
825
- body.light-mode {
952
+ html[data-theme="light"] body {
826
953
  background: var(--q-light-bg) !important;
827
954
  color: var(--q-light-text);
828
955
  }
829
956
 
830
- html[data-theme="dark"] body,
831
- body.dark-mode {
957
+ html[data-theme="dark"] body {
832
958
  background: var(--q-color-starlight-deep) !important;
833
959
  color: #f1f5f9;
834
960
  }