@howssatoshi/quantumcss 1.0.1 → 1.1.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.
@@ -189,12 +189,41 @@
189
189
  transition: all var(--duration-150) var(--ease-in-out);
190
190
  }
191
191
 
192
+ textarea.input {
193
+ min-height: 100px;
194
+ }
195
+
192
196
  .input:focus {
193
197
  outline: none;
194
198
  border-color: var(--color-primary);
195
199
  box-shadow: 0 0 0 3px var(--color-primary);
196
200
  }
197
201
 
202
+ /* Date & Time Input Specifics */
203
+ input[type="date"].input,
204
+ input[type="datetime-local"].input,
205
+ input[type="time"].input {
206
+ appearance: none;
207
+ -webkit-appearance: none;
208
+ min-height: 2.5rem;
209
+ display: inline-flex;
210
+ align-items: center;
211
+ }
212
+
213
+ /* Ensure dark-mode calendar picker */
214
+ .glass input[type="date"],
215
+ .starlight-card input[type="date"],
216
+ [class*="dark"] input[type="date"] {
217
+ color-scheme: dark;
218
+ }
219
+
220
+ /* Fix for alignment in flex containers */
221
+ input[type="date"]::-webkit-calendar-picker-indicator {
222
+ cursor: pointer;
223
+ filter: invert(0.5);
224
+ margin-left: 0.5rem;
225
+ }
226
+
198
227
  .input:disabled {
199
228
  background-color: #f3f4f6;
200
229
  color: #6b7280;
@@ -214,37 +243,45 @@
214
243
  .badge {
215
244
  display: inline-flex;
216
245
  align-items: center;
217
- padding: var(--space-1) var(--space-2);
218
- border-radius: var(--radius-full);
246
+ padding: 0.25rem 0.75rem;
247
+ border-radius: 0.375rem;
219
248
  font-size: 0.75rem;
220
- font-weight: 500;
249
+ font-weight: 600;
221
250
  text-transform: uppercase;
222
251
  letter-spacing: 0.05em;
252
+ border: 1px solid;
253
+ backdrop-filter: blur(4px);
254
+ -webkit-backdrop-filter: blur(4px);
223
255
  }
224
256
 
225
257
  .badge-primary {
226
- background-color: var(--color-primary-100);
227
- color: var(--color-primary-800);
258
+ background-color: rgba(0, 212, 255, 0.15);
259
+ color: #00d4ff;
260
+ border-color: rgba(0, 212, 255, 0.3);
228
261
  }
229
262
 
230
263
  .badge-secondary {
231
- background-color: #e5e7eb;
232
- color: #374151;
264
+ background-color: rgba(255, 255, 255, 0.05);
265
+ color: rgba(255, 255, 255, 0.8);
266
+ border-color: rgba(255, 255, 255, 0.1);
233
267
  }
234
268
 
235
269
  .badge-success {
236
- background-color: #d1fae5;
237
- color: #065f46;
270
+ background-color: rgba(16, 185, 129, 0.15);
271
+ color: #10b981;
272
+ border-color: rgba(16, 185, 129, 0.3);
238
273
  }
239
274
 
240
275
  .badge-warning {
241
- background-color: #fed7aa;
242
- color: #92400e;
276
+ background-color: rgba(245, 158, 11, 0.15);
277
+ color: #f59e0b;
278
+ border-color: rgba(245, 158, 11, 0.3);
243
279
  }
244
280
 
245
281
  .badge-error {
246
- background-color: #fee2e2;
247
- color: #991b1b;
282
+ background-color: rgba(239, 68, 68, 0.15);
283
+ color: #ef4444;
284
+ border-color: rgba(239, 68, 68, 0.3);
248
285
  }
249
286
 
250
287
  /* Alert Component */
@@ -303,8 +340,8 @@
303
340
  display: inline-block;
304
341
  width: 1.5rem;
305
342
  height: 1.5rem;
306
- border: 2px solid transparent;
307
- border-top-color: currentColor;
343
+ border: 2px solid rgba(255, 255, 255, 0.1);
344
+ border-top-color: var(--color-primary);
308
345
  border-radius: 50%;
309
346
  animation: spin 1s linear infinite;
310
347
  }
@@ -313,29 +350,24 @@
313
350
  to { transform: rotate(360deg); }
314
351
  }
315
352
 
316
- .spinner-sm {
317
- width: 1rem;
318
- height: 1rem;
319
- }
320
-
321
- .spinner-lg {
322
- width: 2rem;
323
- height: 2rem;
324
- }
325
-
326
353
  /* Skeleton Loading */
327
354
  .skeleton {
328
- background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
355
+ background: linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0.05) 75%);
329
356
  background-size: 200% 100%;
330
- animation: loading 1.5s infinite;
357
+ animation: shimmer 2s infinite;
331
358
  border-radius: var(--radius-md);
332
359
  }
333
360
 
334
- @keyframes loading {
361
+ @keyframes shimmer {
335
362
  0% { background-position: 200% 0; }
336
363
  100% { background-position: -200% 0; }
337
364
  }
338
365
 
366
+ body.light-mode .skeleton {
367
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
368
+ background-size: 200% 100%;
369
+ }
370
+
339
371
  /* Tooltip Component */
340
372
  .tooltip {
341
373
  position: relative;
@@ -140,6 +140,18 @@ body {
140
140
  line-height: inherit;
141
141
  }
142
142
 
143
+ input, textarea, select, button {
144
+ font-family: inherit;
145
+ font-size: inherit;
146
+ line-height: inherit;
147
+ color: inherit;
148
+ }
149
+
150
+ textarea {
151
+ resize: vertical;
152
+ min-height: 5rem;
153
+ }
154
+
143
155
  /* Layout Utilities */
144
156
  .container {
145
157
  width: 100%;
@@ -262,7 +274,7 @@ body {
262
274
  .text-2xl { font-size: 1.5rem; line-height: 2rem; }
263
275
  .text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
264
276
  .text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
265
- .text-5xl { font-size: 3rem; line-height: 1; }
277
+ .text-5xl { font-size: 3rem; line-height: 1.2; }
266
278
 
267
279
  .font-light { font-weight: 300; }
268
280
  .font-normal { font-weight: 400; }
@@ -844,19 +856,19 @@ body {
844
856
  }
845
857
 
846
858
  /* Utility for Quick Prototyping */
847
- .q-prose {
859
+ .prose {
848
860
  max-width: 65ch;
849
861
  line-height: 1.75;
850
862
  }
851
863
 
852
- .q-prose h1 {
864
+ .prose h1 {
853
865
  font-size: 2.25rem;
854
866
  font-weight: 700;
855
867
  line-height: 1.25;
856
868
  margin-bottom: 1rem;
857
869
  }
858
870
 
859
- .q-prose h2 {
871
+ .prose h2 {
860
872
  font-size: 1.875rem;
861
873
  font-weight: 600;
862
874
  line-height: 1.25;
@@ -864,16 +876,16 @@ body {
864
876
  margin-bottom: 1rem;
865
877
  }
866
878
 
867
- .q-prose p {
879
+ .prose p {
868
880
  margin-bottom: 1rem;
869
881
  }
870
882
 
871
- .q-prose a {
883
+ .prose a {
872
884
  color: var(--color-primary);
873
885
  text-decoration: underline;
874
886
  }
875
887
 
876
- .q-prose a:hover {
888
+ .prose a:hover {
877
889
  color: var(--color-primary-600);
878
890
  }
879
891
 
@@ -13,6 +13,31 @@
13
13
  gap: var(--space-8);
14
14
  }
15
15
 
16
+ /* Links */
17
+ a {
18
+ color: var(--color-starlight-blue);
19
+ text-decoration: none;
20
+ transition: all var(--transition-base);
21
+ position: relative;
22
+ }
23
+
24
+ a:hover {
25
+ color: var(--color-starlight-peach);
26
+ text-shadow: 0 0 8px rgba(255, 179, 138, 0.4);
27
+ }
28
+
29
+ a:active {
30
+ transform: scale(0.98);
31
+ }
32
+
33
+ body.light-mode a {
34
+ color: #2563eb;
35
+ }
36
+
37
+ body.light-mode a:hover {
38
+ color: #1d4ed8;
39
+ }
40
+
16
41
  /* 1. Starlight Card */
17
42
  .starlight-card {
18
43
  background: var(--glass-bg);
@@ -22,7 +47,6 @@
22
47
  backdrop-filter: var(--glass-blur);
23
48
  -webkit-backdrop-filter: var(--glass-blur);
24
49
  position: relative;
25
- z-index: 1;
26
50
  transition: border-color var(--transition-base), transform var(--transition-base), background-color var(--transition-base);
27
51
  }
28
52
 
@@ -30,10 +54,6 @@
30
54
  border-color: rgba(0, 212, 255, 0.3);
31
55
  }
32
56
 
33
- .starlight-card.has-open-menu {
34
- z-index: 1000;
35
- }
36
-
37
57
  body.light-mode .starlight-card {
38
58
  background: var(--light-card-bg);
39
59
  border-color: var(--light-card-border);
@@ -79,48 +99,37 @@ body.light-mode .starlight-card {
79
99
  border-radius: 50%;
80
100
  }
81
101
 
82
- body.light-mode .checkbox-starlight,
83
- body.light-mode .radio-starlight {
84
- background: #f1f5f9;
85
- border-color: #cbd5e1;
86
- }
87
-
88
102
  /* 3. Tooltips */
89
103
  .has-tooltip {
90
104
  position: relative;
91
105
  }
92
106
 
93
- .has-tooltip:hover {
94
- z-index: 2000;
107
+ .has-tooltip .tooltip {
108
+ position: absolute;
109
+ bottom: 125%;
110
+ left: 50%;
111
+ transform: translateX(-50%) translateY(10px);
112
+ padding: 0.5rem 0.75rem;
113
+ background-color: rgba(10, 10, 30, 0.98);
114
+ backdrop-filter: blur(12px);
115
+ border: 1px solid rgba(0, 212, 255, 0.3);
116
+ border-radius: 0.5rem;
117
+ color: #f1f5f9;
118
+ font-size: 0.75rem;
119
+ white-space: nowrap;
120
+ pointer-events: none;
121
+ opacity: 0;
122
+ transition: all 0.2s ease;
123
+ z-index: 800;
124
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
95
125
  }
96
126
 
97
127
  .has-tooltip:hover .tooltip {
98
128
  opacity: 1;
99
- transform: translateX(-50%) translateY(-10px);
100
- }
101
-
102
- body.light-mode .tooltip {
103
- background-color: #ffffff;
104
- border-color: var(--color-starlight-blue);
105
- color: var(--light-text);
106
- }
107
-
108
- /* 4. Skeletons */
109
- .skeleton {
110
- animation: shimmer 2s infinite;
111
- }
112
-
113
- @keyframes shimmer {
114
- 0% { background-position: -200% 0; }
115
- 100% { background-position: 200% 0; }
116
- }
117
-
118
- body.light-mode .skeleton {
119
- background-color: #cbd5e1;
120
- background-image: linear-gradient(90deg, transparent, #f1f5f9, transparent);
129
+ transform: translateX(-50%) translateY(0);
121
130
  }
122
131
 
123
- /* 5. Twinkling Background */
132
+ /* 4. Skeletons & Twinkle */
124
133
  .stars-container {
125
134
  position: fixed;
126
135
  top: 0; left: 0; width: 100%; height: 100%;
@@ -134,7 +143,7 @@ body.light-mode .skeleton {
134
143
  background: white;
135
144
  border-radius: 50%;
136
145
  opacity: 0.3;
137
- animation: twinkle var(--duration) infinite ease-in-out;
146
+ animation: twinkle var(--duration, 3s) infinite ease-in-out;
138
147
  }
139
148
 
140
149
  @keyframes twinkle {
@@ -142,29 +151,30 @@ body.light-mode .skeleton {
142
151
  50% { opacity: 1; transform: scale(1.2); }
143
152
  }
144
153
 
145
- /* 6. Form Select Overrides */
146
- select option {
147
- background-color: #1a1a2e;
148
- color: var(--text-primary);
149
- }
150
-
151
- body.light-mode select option {
152
- background-color: white;
153
- color: var(--light-text);
154
- }
155
-
156
- body.light-mode .input-starlight {
157
- background-color: #ffffff;
158
- border-color: #cbd5e1;
159
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23475569'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 9l4 4 4-4' /%3E%3C/svg%3E");
160
- background-repeat: no-repeat;
154
+ /* 5. Dialog & Overlays */
155
+ .dialog-overlay {
156
+ position: fixed;
157
+ inset: 0;
158
+ background: rgba(0, 0, 0, 0.6);
159
+ backdrop-filter: blur(12px);
160
+ display: flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ z-index: 400;
161
164
  }
162
165
 
163
- body.light-mode .btn-secondary {
164
- border-color: #cbd5e1;
166
+ .dialog-content {
167
+ background-color: rgba(10, 10, 20, 0.98);
168
+ backdrop-filter: blur(20px);
169
+ border: 1px solid rgba(255, 255, 255, 0.1);
170
+ border-radius: 1.5rem;
171
+ padding: 2rem;
172
+ max-width: 90%;
173
+ width: 600px;
174
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
175
+ position: relative;
165
176
  }
166
177
 
167
- /* 7. Dialog & Menu Theme Support */
168
178
  body.light-mode .dialog-overlay {
169
179
  background: rgba(255, 255, 255, 0.4);
170
180
  }
@@ -172,10 +182,44 @@ body.light-mode .dialog-overlay {
172
182
  body.light-mode .dialog-content {
173
183
  background-color: rgba(255, 255, 255, 0.98);
174
184
  border-color: rgba(0, 0, 0, 0.1);
175
- color: var(--light-text);
185
+ color: #1e293b;
176
186
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
177
187
  }
178
188
 
189
+ /* 6. Dropdown Menu */
190
+ .dropdown-menu {
191
+ position: absolute;
192
+ top: 100%;
193
+ left: 0;
194
+ background-color: rgba(15, 15, 30, 0.98);
195
+ backdrop-filter: blur(20px);
196
+ border: 1px solid rgba(255, 255, 255, 0.1);
197
+ border-radius: 0.75rem;
198
+ padding: 0.5rem;
199
+ margin-top: 0.5rem;
200
+ min-width: 200px;
201
+ z-index: 600;
202
+ box-shadow: 0 20px 40px rgba(0,0,0,0.4);
203
+ }
204
+
205
+ .dropdown-item {
206
+ display: block;
207
+ width: 100%;
208
+ padding: 0.625rem 1rem;
209
+ border-radius: 0.5rem;
210
+ color: rgba(255, 255, 255, 0.7);
211
+ transition: all 0.2s ease;
212
+ text-align: left;
213
+ background: transparent;
214
+ border: none;
215
+ cursor: pointer;
216
+ }
217
+
218
+ .dropdown-item:hover {
219
+ background-color: var(--color-starlight-blue);
220
+ color: black;
221
+ }
222
+
179
223
  body.light-mode .dropdown-menu {
180
224
  background-color: rgba(255, 255, 255, 0.99);
181
225
  border-color: #cbd5e1;
@@ -186,7 +230,155 @@ body.light-mode .dropdown-item {
186
230
  color: #475569;
187
231
  }
188
232
 
189
- .dropdown-item:hover {
190
- background-color: var(--color-starlight-blue) !important;
191
- color: #000000 !important;
233
+ body.light-mode .dropdown-item:hover {
234
+ background-color: #f1f5f9;
235
+ color: #1e293b;
236
+ }
237
+
238
+ /* 7. Textarea Fixes */
239
+ textarea.input-starlight, .textarea-starlight {
240
+ height: auto;
241
+ min-height: 120px;
242
+ padding: 1rem;
243
+ background-color: rgba(255, 255, 255, 0.04);
244
+ border: 1px solid rgba(255, 255, 255, 0.15);
245
+ border-radius: 0.75rem;
246
+ color: inherit;
247
+ width: 100%;
248
+ display: block;
249
+ }
250
+
251
+ body.light-mode textarea.input-starlight,
252
+ body.light-mode .textarea-starlight {
253
+ background-color: #ffffff;
254
+ border-color: #cbd5e1;
255
+ }
256
+
257
+ /* 9. Code Interface Window */
258
+ .code-window {
259
+ background: rgba(0, 0, 0, 0.4);
260
+ backdrop-filter: blur(20px);
261
+ -webkit-backdrop-filter: blur(20px);
262
+ border: 1px solid rgba(255, 255, 255, 0.1);
263
+ border-radius: var(--radius-xl);
264
+ overflow: hidden;
265
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
266
+ }
267
+
268
+ .code-window-header {
269
+ background: rgba(255, 255, 255, 0.05);
270
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
271
+ padding: 1rem 1.5rem;
272
+ display: flex;
273
+ align-items: center;
274
+ justify-content: space-between;
275
+ }
276
+
277
+ .code-window-controls {
278
+ display: flex;
279
+ gap: 0.5rem;
280
+ }
281
+
282
+ .code-window-dot {
283
+ width: 0.75rem;
284
+ height: 0.75rem;
285
+ border-radius: 50%;
286
+ opacity: 0.6;
287
+ }
288
+
289
+ .code-window-title {
290
+ font-size: 0.65rem;
291
+ font-weight: 800;
292
+ text-transform: uppercase;
293
+ letter-spacing: 0.15em;
294
+ color: rgba(255, 255, 255, 0.4);
295
+ }
296
+
297
+ body.light-mode .code-window {
298
+ background: #f8fafc;
299
+ border-color: #e2e8f0;
300
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
301
+ }
302
+
303
+ body.light-mode .code-window-header {
304
+ background: #f1f5f9;
305
+ border-color: #e2e8f0;
306
+ }
307
+
308
+ body.light-mode .code-window-title {
309
+ color: #94a3b8;
310
+ }
311
+
312
+ /* 10. Starlight Accordion */
313
+ .accordion-starlight.accordion-item {
314
+ background: rgba(255, 255, 255, 0.02);
315
+ backdrop-filter: blur(12px);
316
+ -webkit-backdrop-filter: blur(12px);
317
+ border: 1px solid rgba(255, 255, 255, 0.08);
318
+ border-radius: var(--radius-xl);
319
+ margin-bottom: var(--space-4);
320
+ transition: all var(--transition-base);
321
+ position: relative;
322
+ }
323
+
324
+ .accordion-starlight.accordion-item:hover {
325
+ border-color: rgba(0, 212, 255, 0.3);
326
+ background: rgba(255, 255, 255, 0.04);
327
+ box-shadow: 0 0 20px rgba(0, 212, 255, 0.05);
328
+ }
329
+
330
+ .accordion-starlight.accordion-item.active {
331
+ border-color: var(--color-starlight-blue);
332
+ background: rgba(0, 212, 255, 0.03);
333
+ box-shadow: 0 0 30px rgba(0, 212, 255, 0.1), inset 0 0 20px rgba(0, 212, 255, 0.05);
334
+ }
335
+
336
+ .accordion-starlight .accordion-header {
337
+ background: transparent !important;
338
+ padding: var(--space-6) var(--space-8);
339
+ color: white;
340
+ font-weight: 700;
341
+ letter-spacing: 0.02em;
342
+ font-size: 1.125rem;
343
+ }
344
+
345
+ .accordion-starlight.active .accordion-header {
346
+ background: linear-gradient(to right, rgba(255, 179, 138, 0.15), rgba(0, 212, 255, 0.15)) !important;
347
+ border-bottom: 1px solid rgba(0, 212, 255, 0.2);
348
+ }
349
+
350
+ .accordion-starlight .accordion-content {
351
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.1)) !important;
352
+ color: rgba(255, 255, 255, 0.6) !important;
353
+ font-size: 1rem;
354
+ line-height: 1.8;
355
+ padding: 0;
356
+ }
357
+
358
+ .accordion-starlight.active .accordion-content {
359
+ padding: var(--space-6) var(--space-8);
360
+ }
361
+
362
+ .accordion-starlight .accordion-icon {
363
+ color: var(--color-starlight-blue);
364
+ filter: drop-shadow(0 0 5px rgba(0, 212, 255, 0.5));
365
+ }
366
+
367
+ body.light-mode .accordion-starlight.accordion-item {
368
+ background: white;
369
+ border-color: #e2e8f0;
370
+ }
371
+
372
+ body.light-mode .accordion-starlight.accordion-item.active {
373
+ border-color: #3b82f6;
374
+ background: #f8fafc;
375
+ }
376
+
377
+ body.light-mode .accordion-starlight .accordion-header {
378
+ color: #1e293b;
379
+ }
380
+
381
+ body.light-mode .accordion-starlight .accordion-content {
382
+ background: #f1f5f9 !important;
383
+ color: #475569 !important;
192
384
  }