@howssatoshi/quantumcss 1.8.0 → 1.10.1

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,12 +1,8 @@
1
1
  /*!
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.
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
10
6
  */
11
7
 
12
8
  @import 'https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap';
@@ -33,29 +29,6 @@
33
29
  --q-color-error: #ef4444;
34
30
  --q-color-neutral: #6b7280;
35
31
 
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
-
59
32
  /* Typography */
60
33
  --q-font-sans: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
61
34
  --q-font-serif: Georgia, Cambria, serif;
@@ -94,18 +67,19 @@
94
67
  --q-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 8px 10px -6px rgb(0 0 0 / 10%);
95
68
  --q-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 25%);
96
69
 
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
-
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;
104
79
  --q-ease-linear: linear;
105
80
  --q-ease-in: cubic-bezier(0.4, 0, 1, 1);
106
81
  --q-ease-out: cubic-bezier(0, 0, 0.2, 1);
107
82
  --q-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
108
- --q-ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
109
83
 
110
84
  /* --- Starlight Specific Tokens --- */
111
85
  --q-color-starlight: var(--q-color-starlight-blue);
@@ -138,9 +112,9 @@
138
112
  --q-glass-blur: blur(16px);
139
113
 
140
114
  /* Transitions */
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
+ --q-transition-fast: 150ms ease-in-out;
116
+ --q-transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
117
+ --q-transition-slow: 400ms ease-in-out;
144
118
  }
145
119
 
146
120
  /* High Contrast (Accessibility) Mode Support */
@@ -201,7 +175,7 @@ html {
201
175
  font-size: 16px;
202
176
  -webkit-font-smoothing: antialiased;
203
177
  -moz-osx-font-smoothing: grayscale;
204
- background-color: var(--q-color-starlight-deep);
178
+ background-color: var(--q-bg-primary);
205
179
  scrollbar-width: thin;
206
180
  scrollbar-color: var(--q-color-starlight-blue) transparent;
207
181
  }
@@ -584,6 +558,7 @@ textarea {
584
558
  .font-semibold { font-weight: 600; }
585
559
  .font-bold { font-weight: 700; }
586
560
  .font-extrabold { font-weight: 800; }
561
+ .font-black { font-weight: 900; }
587
562
 
588
563
  .text-left { text-align: left; }
589
564
  .text-center { text-align: center; }
@@ -591,8 +566,10 @@ textarea {
591
566
  .text-justify { text-align: justify; }
592
567
 
593
568
  /* Color Utilities */
594
- .text-primary { color: var(--q-color-primary); }
595
- .text-secondary { color: var(--q-color-secondary); }
569
+ .text-primary { color: var(--q-text-primary); }
570
+ .text-secondary { color: var(--q-text-secondary); }
571
+ .text-muted { color: var(--q-text-muted); }
572
+ .text-accent { color: var(--q-color-primary); }
596
573
  .text-success { color: var(--q-color-success); }
597
574
  .text-warning { color: var(--q-color-warning); }
598
575
  .text-error { color: var(--q-color-error); }
@@ -600,7 +577,9 @@ textarea {
600
577
  .text-white { color: #fff; }
601
578
  .text-black { color: #000; }
602
579
 
603
- .bg-primary { background-color: var(--q-color-primary); }
580
+ .bg-primary { background-color: var(--q-bg-primary); }
581
+ .bg-surface { background-color: var(--q-color-surface); }
582
+ .bg-accent { background-color: var(--q-color-primary); }
604
583
  .bg-secondary { background-color: var(--q-color-secondary); }
605
584
  .bg-success { background-color: var(--q-color-success); }
606
585
  .bg-warning { background-color: var(--q-color-warning); }
@@ -772,13 +751,13 @@ textarea {
772
751
  .transition-all {
773
752
  transition-property: all;
774
753
  transition-timing-function: var(--q-ease-in-out);
775
- transition-duration: var(--q-duration-fast);
754
+ transition-duration: var(--q-duration-150);
776
755
  }
777
756
 
778
757
  .transition-colors {
779
758
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
780
759
  transition-timing-function: var(--q-ease-in-out);
781
- transition-duration: var(--q-duration-fast);
760
+ transition-duration: var(--q-duration-150);
782
761
  }
783
762
 
784
763
  /* Transform Utilities */
@@ -832,6 +811,8 @@ textarea {
832
811
 
833
812
  /* Z-Index Utilities */
834
813
  .z-auto { z-index: auto; }
814
+ .z-n10 { z-index: -10; }
815
+ .z-n1 { z-index: -1; }
835
816
  .z-0 { z-index: 0; }
836
817
  .z-10 { z-index: 10; }
837
818
  .z-20 { z-index: 20; }
@@ -885,12 +866,14 @@ textarea {
885
866
  color: var(--q-color-primary-600);
886
867
  }
887
868
 
888
- /* Reduced Motion Compliance Layer */
869
+ /* Reduced Motion Support */
889
870
  @media (prefers-reduced-motion: reduce) {
890
- * {
891
- animation-duration: 0ms !important;
871
+ *,
872
+ *::before,
873
+ *::after {
874
+ animation-duration: 0.01ms !important;
892
875
  animation-iteration-count: 1 !important;
893
- transition-duration: 0ms !important;
876
+ transition-duration: 0.01ms !important;
894
877
  scroll-behavior: auto !important;
895
878
  }
896
879
  }
@@ -937,6 +920,39 @@ html[data-theme="light"] {
937
920
  --q-text-primary: var(--q-light-text);
938
921
  --q-text-secondary: var(--q-light-text-muted);
939
922
  --q-text-muted: var(--q-light-text-muted);
923
+
924
+ --q-card-bg: color-mix(in srgb, #fff, transparent 5%);
925
+ --q-card-border: color-mix(in srgb, #000, transparent 90%);
926
+ --q-card-shadow: 0 10px 40px rgb(0 0 0 / 10%);
927
+
928
+ --q-btn-primary-bg: linear-gradient(135deg, var(--q-color-starlight-peach) 40%, var(--q-color-starlight-blue) 100%);
929
+ --q-btn-primary-hover-bg: linear-gradient(135deg, var(--q-color-starlight-peach) 50%, var(--q-color-starlight-blue) 110%);
930
+ --q-btn-primary-color: #fff;
931
+
932
+ --q-input-bg: #fff;
933
+ --q-input-border: #cbd5e1;
934
+
935
+ --q-dropdown-bg: rgba(255, 255, 255, 0.98);
936
+ --q-dropdown-border: color-mix(in srgb, #000, transparent 82%);
937
+ --q-dropdown-shadow: 0 15px 50px rgba(0, 0, 0, 0.12);
938
+
939
+ --q-glass-bg: color-mix(in srgb, #fff, transparent 15%);
940
+ --q-glass-border: color-mix(in srgb, #000, transparent 82%);
941
+
942
+ --q-color-bg: var(--q-bg-primary);
943
+ --q-color-surface: var(--q-card-bg);
944
+ --q-color-border: var(--q-card-border);
945
+ --q-color-border-strong: color-mix(in srgb, var(--q-color-border), black 15%);
946
+ --q-color-text: var(--q-text-primary);
947
+
948
+ --q-color-bg-muted: color-mix(in srgb, var(--q-color-bg), black 10%);
949
+
950
+ --q-skeleton-bg: color-mix(in srgb, var(--q-color-bg), black 10%);
951
+ --q-skeleton-shimmer: color-mix(in srgb, var(--q-color-bg), black 5%);
952
+
953
+ /* Highlights & Highlights Transparency */
954
+ --q-highlight-bg: color-mix(in srgb, var(--q-color-primary), transparent 80%);
955
+ --q-highlight-border: color-mix(in srgb, var(--q-color-primary), transparent 60%);
940
956
 
941
957
  scrollbar-color: var(--q-color-starlight-blue) transparent;
942
958
  }
@@ -946,16 +962,49 @@ html[data-theme="dark"] {
946
962
 
947
963
  --q-bg-primary: var(--q-color-starlight-deep);
948
964
  --q-text-primary: #f1f5f9;
965
+
966
+ --q-card-bg: color-mix(in srgb, #fff, transparent 94%);
967
+ --q-card-border: color-mix(in srgb, #fff, transparent 88%);
968
+ --q-card-shadow: 0 25px 50px -12px rgb(0 0 0 / 60%);
969
+
970
+ --q-btn-primary-bg: #00d4ff;
971
+ --q-btn-primary-hover-bg: #00b8e6;
972
+ --q-btn-primary-color: #fff;
973
+
974
+ --q-input-bg: color-mix(in srgb, #fff, transparent 92%);
975
+ --q-input-border: color-mix(in srgb, #fff, transparent 75%);
976
+
977
+ --q-dropdown-bg: color-mix(in srgb, #08081a, transparent 15%);
978
+ --q-dropdown-border: color-mix(in srgb, #fff, transparent 80%);
979
+ --q-dropdown-shadow: 0 30px 60px rgba(0, 0, 0, 0.5);
980
+
981
+ --q-glass-bg: color-mix(in srgb, #fff, transparent 90%);
982
+ --q-glass-border: color-mix(in srgb, #fff, transparent 85%);
983
+
984
+ --q-color-bg: var(--q-bg-primary);
985
+ --q-color-surface: var(--q-card-bg);
986
+ --q-color-border: var(--q-card-border);
987
+ --q-color-border-strong: color-mix(in srgb, var(--q-color-border), white 15%);
988
+ --q-color-text: var(--q-text-primary);
989
+
990
+ --q-color-bg-muted: color-mix(in srgb, var(--q-color-bg), white 10%);
991
+
992
+ --q-skeleton-bg: color-mix(in srgb, var(--q-color-surface), white 5%);
993
+ --q-skeleton-shimmer: color-mix(in srgb, var(--q-color-surface), white 10%);
994
+
995
+ /* Highlights & Highlights Transparency */
996
+ --q-highlight-bg: color-mix(in srgb, var(--q-color-primary), transparent 60%);
997
+ --q-highlight-border: color-mix(in srgb, var(--q-color-primary), transparent 40%);
949
998
  }
950
999
 
951
1000
  /* Force theme colors on body to override template-specific hardcoded styles */
952
1001
  html[data-theme="light"] body {
953
- background: var(--q-light-bg) !important;
1002
+ background-color: var(--q-light-bg) !important;
954
1003
  color: var(--q-light-text);
955
1004
  }
956
1005
 
957
1006
  html[data-theme="dark"] body {
958
- background: var(--q-color-starlight-deep) !important;
1007
+ background-color: var(--q-color-starlight-deep) !important;
959
1008
  color: #f1f5f9;
960
1009
  }
961
1010
 
@@ -1000,12 +1049,11 @@ html[data-theme="light"] :focus, html[data-theme="light"] :focus-visible {
1000
1049
  body {
1001
1050
  margin: 0;
1002
1051
  min-height: 100vh;
1003
- background-color: var(--q-bg-primary);
1052
+ background-color: transparent;
1004
1053
  color: var(--q-text-primary);
1005
1054
  transition: background-color var(--q-transition-slow), color var(--q-transition-slow);
1006
-
1007
-
1008
-
1055
+ position: relative;
1056
+ z-index: 1;
1009
1057
  }
1010
1058
 
1011
1059