@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.
- package/README.md +1 -1
- package/dist/index.html +232 -0
- package/dist/quantum.min.css +1 -1
- package/examples/admin-panel.html +10 -18
- package/examples/analytics-dashboard.html +30 -19
- package/examples/blog-template.html +20 -20
- package/examples/chat-messaging.html +13 -23
- package/examples/email-template.html +20 -28
- package/examples/gaming-template.html +13 -13
- package/examples/gradient-test.html +0 -5
- package/examples/index.html +15 -15
- package/examples/kitchen-sink.html +15 -26
- package/examples/music-streaming.html +21 -29
- package/examples/news-template.html +14 -14
- package/examples/portfolio-resume.html +14 -35
- package/examples/shopping/index.html +10 -24
- package/examples/starlight.html +5 -5
- package/examples/theme-test.html +0 -15
- package/examples/travel/index.html +15 -15
- package/examples/video-streaming.html +30 -16
- package/package.json +1 -1
- package/src/defaults.js +78 -3
- package/src/generator.js +2 -2
- package/src/starlight.js +0 -4
- package/src/styles/quantum-animations.css +13 -13
- package/src/styles/quantum-base.css +158 -32
- package/src/styles/quantum-components.css +259 -533
- package/src/styles/starlight.css +680 -45
package/src/styles/starlight.css
CHANGED
|
@@ -1,44 +1,60 @@
|
|
|
1
|
-
|
|
1
|
+
/*!
|
|
2
|
+
* QuantumCSS Theme Layer
|
|
3
|
+
* Theme: Starlight UI (Premium)
|
|
4
|
+
*
|
|
5
|
+
* ROLE:
|
|
6
|
+
* 1. Injects brand-specific aesthetics.
|
|
7
|
+
* 2. Maps brand tokens to semantic core layer.
|
|
8
|
+
* 3. Defines theme-specific layout extensions.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/* 1. Starlight Theme Layer (Brand Mapping) */
|
|
12
|
+
:root {
|
|
13
|
+
--q-color-primary: var(--q-color-starlight-blue);
|
|
14
|
+
--q-color-primary-hover: var(--q-color-starlight-peach);
|
|
15
|
+
--q-color-link: var(--q-color-starlight-blue);
|
|
16
|
+
--q-color-link-hover: var(--q-color-starlight-peach);
|
|
17
|
+
--q-gradient-primary: linear-gradient(135deg, var(--q-color-starlight-peach) 0%, var(--q-color-starlight-blue) 100%);
|
|
18
|
+
--q-color-text-inverse: #000;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
html[data-theme="light"] {
|
|
22
|
+
--q-color-text-inverse: #fff;
|
|
23
|
+
}
|
|
2
24
|
|
|
3
25
|
/* Links */
|
|
4
26
|
a {
|
|
5
|
-
color: var(--q-color-
|
|
27
|
+
color: var(--q-color-link);
|
|
6
28
|
text-decoration: none;
|
|
7
|
-
transition: all var(--q-
|
|
29
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
8
30
|
position: relative;
|
|
9
31
|
}
|
|
10
32
|
|
|
11
33
|
a:hover {
|
|
12
|
-
color: var(--q-color-
|
|
13
|
-
text-shadow: 0 0 8px
|
|
34
|
+
color: var(--q-color-link-hover);
|
|
35
|
+
text-shadow: 0 0 8px color-mix(in srgb, var(--q-color-link-hover), transparent 60%);
|
|
14
36
|
}
|
|
15
37
|
|
|
16
38
|
a:active {
|
|
17
39
|
transform: scale(0.98);
|
|
18
40
|
}
|
|
19
41
|
|
|
20
|
-
|
|
21
|
-
color: var(--q-color-starlight-blue);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
html[data-theme="light"] a:hover {
|
|
25
|
-
color: var(--q-color-starlight-peach);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/* 1. Starlight Card */
|
|
42
|
+
/* 2. Starlight Components Refactored to Semantic Tokens */
|
|
29
43
|
.starlight-card {
|
|
30
|
-
background: var(--q-
|
|
31
|
-
border: 1px solid var(--q-
|
|
44
|
+
background: var(--q-color-surface);
|
|
45
|
+
border: 1px solid var(--q-color-border);
|
|
32
46
|
border-radius: var(--q-radius-2xl);
|
|
33
47
|
padding: var(--q-space-10);
|
|
34
48
|
backdrop-filter: var(--q-glass-blur);
|
|
35
49
|
-webkit-backdrop-filter: var(--q-glass-blur);
|
|
36
50
|
position: relative;
|
|
37
|
-
transition: border-color var(--q-
|
|
51
|
+
transition: border-color var(--q-duration-base) var(--q-ease-in-out),
|
|
52
|
+
transform var(--q-duration-base) var(--q-ease-in-out),
|
|
53
|
+
background-color var(--q-duration-base) var(--q-ease-in-out);
|
|
38
54
|
}
|
|
39
55
|
|
|
40
56
|
.starlight-card:hover {
|
|
41
|
-
background-color:
|
|
57
|
+
background-color: var(--q-color-surface-elevated);
|
|
42
58
|
}
|
|
43
59
|
|
|
44
60
|
/* ... existing code ... */
|
|
@@ -71,7 +87,7 @@ html[data-theme="light"] .starlight-card {
|
|
|
71
87
|
border: 1px solid rgb(255 255 255 / 20%);
|
|
72
88
|
border-radius: 0.375rem;
|
|
73
89
|
cursor: pointer;
|
|
74
|
-
transition: all
|
|
90
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
75
91
|
display: inline-flex;
|
|
76
92
|
align-items: center;
|
|
77
93
|
justify-content: center;
|
|
@@ -126,7 +142,7 @@ html[data-theme="light"] .radio-starlight {
|
|
|
126
142
|
white-space: nowrap;
|
|
127
143
|
pointer-events: none;
|
|
128
144
|
opacity: 0;
|
|
129
|
-
transition: all
|
|
145
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
130
146
|
z-index: 800;
|
|
131
147
|
box-shadow: 0 4px 15px rgb(0 0 0 / 40%);
|
|
132
148
|
}
|
|
@@ -249,7 +265,7 @@ html[data-theme="light"] .starlight-dialog {
|
|
|
249
265
|
align-items: center;
|
|
250
266
|
justify-content: center;
|
|
251
267
|
cursor: pointer;
|
|
252
|
-
transition: all
|
|
268
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
253
269
|
padding: 0;
|
|
254
270
|
}
|
|
255
271
|
|
|
@@ -301,7 +317,7 @@ html[data-theme="light"] .dialog-content {
|
|
|
301
317
|
opacity: 0;
|
|
302
318
|
visibility: hidden;
|
|
303
319
|
transform: translateY(10px);
|
|
304
|
-
transition: all
|
|
320
|
+
transition: all var(--q-duration-slow) var(--q-ease-in-out);
|
|
305
321
|
pointer-events: none;
|
|
306
322
|
will-change: backdrop-filter, transform, opacity;
|
|
307
323
|
}
|
|
@@ -322,7 +338,7 @@ html[data-theme="light"] .dialog-content {
|
|
|
322
338
|
padding: 0.625rem 1rem;
|
|
323
339
|
border-radius: 0.5rem;
|
|
324
340
|
color: var(--q-text-primary, rgba(255, 255, 255, 0.7));
|
|
325
|
-
transition: all
|
|
341
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
326
342
|
text-align: left;
|
|
327
343
|
background: transparent;
|
|
328
344
|
border: none;
|
|
@@ -444,15 +460,15 @@ html[data-theme="light"] .code-window-title {
|
|
|
444
460
|
}
|
|
445
461
|
|
|
446
462
|
.accordion-starlight.accordion-item:hover {
|
|
447
|
-
border-color:
|
|
463
|
+
border-color: color-mix(in srgb, var(--q-color-starlight-blue), transparent 70%);
|
|
448
464
|
background: rgb(255 255 255 / 4%);
|
|
449
|
-
box-shadow: 0 0 20px
|
|
465
|
+
box-shadow: 0 0 20px color-mix(in srgb, var(--q-color-starlight-blue), transparent 95%);
|
|
450
466
|
}
|
|
451
467
|
|
|
452
468
|
.accordion-starlight.accordion-item.active {
|
|
453
469
|
border-color: var(--q-color-starlight-blue);
|
|
454
|
-
background:
|
|
455
|
-
box-shadow: 0 0 30px
|
|
470
|
+
background: color-mix(in srgb, var(--q-color-starlight-blue), transparent 97%);
|
|
471
|
+
box-shadow: 0 0 30px color-mix(in srgb, var(--q-color-starlight-blue), transparent 90%), inset 0 0 20px color-mix(in srgb, var(--q-color-starlight-blue), transparent 95%);
|
|
456
472
|
}
|
|
457
473
|
|
|
458
474
|
.accordion-starlight .accordion-header {
|
|
@@ -465,8 +481,8 @@ html[data-theme="light"] .code-window-title {
|
|
|
465
481
|
}
|
|
466
482
|
|
|
467
483
|
.accordion-starlight.active .accordion-header {
|
|
468
|
-
background: linear-gradient(to right,
|
|
469
|
-
border-bottom: 1px solid
|
|
484
|
+
background: linear-gradient(to right, color-mix(in srgb, var(--q-color-starlight-peach), transparent 55%), color-mix(in srgb, var(--q-color-starlight-blue), transparent 55%)) !important;
|
|
485
|
+
border-bottom: 1px solid color-mix(in srgb, var(--q-color-starlight-blue), transparent 80%);
|
|
470
486
|
}
|
|
471
487
|
|
|
472
488
|
.accordion-starlight .accordion-content {
|
|
@@ -575,7 +591,7 @@ html[data-theme="light"] .search-icon {
|
|
|
575
591
|
align-items: flex-end;
|
|
576
592
|
padding: 1rem;
|
|
577
593
|
opacity: 0;
|
|
578
|
-
transition: opacity
|
|
594
|
+
transition: opacity var(--q-duration-slow) var(--q-ease-in-out);
|
|
579
595
|
}
|
|
580
596
|
|
|
581
597
|
.gallery-item:hover .gallery-overlay {
|
|
@@ -680,7 +696,7 @@ html[data-theme="light"] .nav-glass {
|
|
|
680
696
|
font-size: 0.875rem;
|
|
681
697
|
font-weight: 500;
|
|
682
698
|
color: rgb(255 255 255 / 70%);
|
|
683
|
-
transition: all
|
|
699
|
+
transition: all var(--q-duration-slow) var(--q-ease-in-out);
|
|
684
700
|
position: relative;
|
|
685
701
|
padding: 0.5rem 0;
|
|
686
702
|
display: inline-flex;
|
|
@@ -711,7 +727,7 @@ html[data-theme="light"] .nav-glass {
|
|
|
711
727
|
width: 0;
|
|
712
728
|
height: 2px;
|
|
713
729
|
background: var(--q-color-starlight-blue);
|
|
714
|
-
transition: all
|
|
730
|
+
transition: all var(--q-duration-slow) var(--q-ease-in-out);
|
|
715
731
|
box-shadow: 0 0 10px var(--q-color-starlight-glow);
|
|
716
732
|
transform: translateX(-50%);
|
|
717
733
|
}
|
|
@@ -742,7 +758,7 @@ html[data-theme="light"] .nav-link:hover {
|
|
|
742
758
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
743
759
|
border-radius: 0.5rem;
|
|
744
760
|
padding: 0.5rem;
|
|
745
|
-
transition: all
|
|
761
|
+
transition: all var(--q-duration-slow) var(--q-ease-in-out);
|
|
746
762
|
}
|
|
747
763
|
|
|
748
764
|
html[data-theme="light"] .hamburger {
|
|
@@ -764,7 +780,7 @@ html[data-theme="light"] .hamburger:hover {
|
|
|
764
780
|
height: 2px;
|
|
765
781
|
background: white;
|
|
766
782
|
border-radius: 2px;
|
|
767
|
-
transition: all
|
|
783
|
+
transition: all var(--q-duration-slow) var(--q-ease-in-out);
|
|
768
784
|
transform-origin: center;
|
|
769
785
|
}
|
|
770
786
|
|
|
@@ -790,7 +806,7 @@ html[data-theme="light"] .hamburger span {
|
|
|
790
806
|
padding: 0 2rem;
|
|
791
807
|
max-height: 0;
|
|
792
808
|
overflow: hidden;
|
|
793
|
-
transition: all
|
|
809
|
+
transition: all var(--q-duration-slow) var(--q-ease-in-out);
|
|
794
810
|
opacity: 0;
|
|
795
811
|
pointer-events: none;
|
|
796
812
|
}
|
|
@@ -932,7 +948,7 @@ html[data-theme="light"] .range-starlight {
|
|
|
932
948
|
border-radius: 50%;
|
|
933
949
|
cursor: pointer;
|
|
934
950
|
box-shadow: 0 0 10px var(--q-color-starlight-glow);
|
|
935
|
-
transition: all
|
|
951
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
936
952
|
}
|
|
937
953
|
|
|
938
954
|
.range-starlight:-webkit-slider-thumb:hover {
|
|
@@ -974,11 +990,11 @@ html[data-theme="light"] .btn-starlight:hover,
|
|
|
974
990
|
html[data-theme="light"] .hover\:btn-starlight:hover,
|
|
975
991
|
html[data-theme="light"] .btn-primary,
|
|
976
992
|
html[data-theme="light"] .btn-primary:hover {
|
|
977
|
-
background: linear-gradient(135deg,
|
|
993
|
+
background: linear-gradient(135deg, var(--q-color-starlight-peach) 40%, var(--q-color-starlight-blue) 100%) !important;
|
|
978
994
|
}
|
|
979
995
|
|
|
980
996
|
html[data-theme="light"] .text-gradient-starlight {
|
|
981
|
-
background: linear-gradient(135deg,
|
|
997
|
+
background: linear-gradient(135deg, var(--q-color-starlight-peach) 40%, var(--q-color-starlight-blue) 100%) !important;
|
|
982
998
|
-webkit-background-clip: text !important;
|
|
983
999
|
-webkit-text-fill-color: transparent !important;
|
|
984
1000
|
}
|
|
@@ -993,7 +1009,7 @@ html[data-theme="light"] .dialog-content .bg-black_40 {
|
|
|
993
1009
|
|
|
994
1010
|
/* 18. Semantic Typography Utilities */
|
|
995
1011
|
.text-glow {
|
|
996
|
-
text-shadow: 0 0 10px rgb(0 212 255 / 50%), 0 0 20px rgb(0 212 255 /
|
|
1012
|
+
text-shadow: 0 0 10px rgb(0 212 255 / 50%), 0 0 20px rgb(0 212 255 / 60%);
|
|
997
1013
|
}
|
|
998
1014
|
|
|
999
1015
|
.text-glass {
|
|
@@ -1054,12 +1070,12 @@ html[data-theme="light"] .starlight-loading {
|
|
|
1054
1070
|
background: rgb(255 255 255 / 10%);
|
|
1055
1071
|
border: 1px solid rgb(255 255 255 / 5%);
|
|
1056
1072
|
border-radius: 10px;
|
|
1057
|
-
transition: all
|
|
1073
|
+
transition: all var(--q-duration-slow) var(--q-ease-in-out);
|
|
1058
1074
|
}
|
|
1059
1075
|
|
|
1060
1076
|
::-webkit-scrollbar-thumb:hover {
|
|
1061
1077
|
background: rgb(0 212 255 / 30%);
|
|
1062
|
-
box-shadow: 0 0 10px rgb(0 212 255 /
|
|
1078
|
+
box-shadow: 0 0 10px rgb(0 212 255 / 60%);
|
|
1063
1079
|
}
|
|
1064
1080
|
|
|
1065
1081
|
html[data-theme="light"] ::-webkit-scrollbar-track {
|
|
@@ -1103,8 +1119,8 @@ html[data-theme="light"] * {
|
|
|
1103
1119
|
}
|
|
1104
1120
|
|
|
1105
1121
|
.btn-starlight {
|
|
1106
|
-
background:
|
|
1107
|
-
color:
|
|
1122
|
+
background: var(--q-gradient-primary);
|
|
1123
|
+
color: var(--q-color-text-inverse);
|
|
1108
1124
|
font-weight: 700;
|
|
1109
1125
|
border: none;
|
|
1110
1126
|
border-radius: 0.5rem;
|
|
@@ -1112,8 +1128,8 @@ html[data-theme="light"] * {
|
|
|
1112
1128
|
align-items: center;
|
|
1113
1129
|
justify-content: center;
|
|
1114
1130
|
cursor: pointer;
|
|
1115
|
-
transition: all
|
|
1116
|
-
box-shadow: 0 0 20px
|
|
1131
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
1132
|
+
box-shadow: 0 0 20px color-mix(in srgb, var(--q-color-primary), transparent 70%);
|
|
1117
1133
|
text-decoration: none;
|
|
1118
1134
|
}
|
|
1119
1135
|
|
|
@@ -1136,3 +1152,622 @@ html[data-theme="light"] * {
|
|
|
1136
1152
|
html[data-theme="light"] .btn-starlight:focus-visible {
|
|
1137
1153
|
outline-color: var(--q-color-starlight-blue);
|
|
1138
1154
|
}}
|
|
1155
|
+
|
|
1156
|
+
/* ============================================
|
|
1157
|
+
LAYOUT PRESETS - Composable, Flexible
|
|
1158
|
+
============================================ */
|
|
1159
|
+
|
|
1160
|
+
/* Email 3-column layout */
|
|
1161
|
+
.email-nav {
|
|
1162
|
+
display: flex;
|
|
1163
|
+
flex-direction: column;
|
|
1164
|
+
height: 100%;
|
|
1165
|
+
background: rgb(0 0 0 / 40%);
|
|
1166
|
+
backdrop-filter: blur(24px);
|
|
1167
|
+
-webkit-backdrop-filter: blur(24px);
|
|
1168
|
+
border-right: 1px solid rgb(255 255 255 / 10%);
|
|
1169
|
+
padding: 1rem;
|
|
1170
|
+
overflow-y: auto;
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
.email-feed {
|
|
1174
|
+
display: flex;
|
|
1175
|
+
flex-direction: column;
|
|
1176
|
+
height: 100%;
|
|
1177
|
+
background: rgb(255 255 255 / 5%);
|
|
1178
|
+
backdrop-filter: blur(16px);
|
|
1179
|
+
-webkit-backdrop-filter: blur(16px);
|
|
1180
|
+
border-right: 1px solid rgb(255 255 255 / 10%);
|
|
1181
|
+
overflow-y: auto;
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
.email-content {
|
|
1185
|
+
display: flex;
|
|
1186
|
+
flex-direction: column;
|
|
1187
|
+
height: 100%;
|
|
1188
|
+
overflow-y: auto;
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
/* Music 2-column + footer layout */
|
|
1192
|
+
.music-nav {
|
|
1193
|
+
display: flex;
|
|
1194
|
+
flex-direction: column;
|
|
1195
|
+
height: 100%;
|
|
1196
|
+
background: rgb(0 0 0 / 40%);
|
|
1197
|
+
backdrop-filter: blur(24px);
|
|
1198
|
+
-webkit-backdrop-filter: blur(24px);
|
|
1199
|
+
border-right: 1px solid rgb(255 255 255 / 10%);
|
|
1200
|
+
padding: 1rem;
|
|
1201
|
+
overflow-y: auto;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
.music-content {
|
|
1205
|
+
display: flex;
|
|
1206
|
+
flex-direction: column;
|
|
1207
|
+
height: 100%;
|
|
1208
|
+
overflow-y: auto;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
.music-footer {
|
|
1212
|
+
display: flex;
|
|
1213
|
+
align-items: center;
|
|
1214
|
+
justify-content: space-between;
|
|
1215
|
+
padding: 1rem 1.5rem;
|
|
1216
|
+
background: rgb(0 0 0 / 40%);
|
|
1217
|
+
backdrop-filter: blur(24px);
|
|
1218
|
+
-webkit-backdrop-filter: blur(24px);
|
|
1219
|
+
border-top: 1px solid rgb(255 255 255 / 10%);
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1222
|
+
/* Chat 2-column layout */
|
|
1223
|
+
.chat-sidebar {
|
|
1224
|
+
display: flex;
|
|
1225
|
+
flex-direction: column;
|
|
1226
|
+
height: 100%;
|
|
1227
|
+
background: rgb(0 0 0 / 40%);
|
|
1228
|
+
backdrop-filter: blur(24px);
|
|
1229
|
+
-webkit-backdrop-filter: blur(24px);
|
|
1230
|
+
border-right: 1px solid rgb(255 255 255 / 10%);
|
|
1231
|
+
overflow: hidden;
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
.chat-content {
|
|
1235
|
+
display: flex;
|
|
1236
|
+
flex-direction: column;
|
|
1237
|
+
height: 100%;
|
|
1238
|
+
overflow: hidden;
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
/* Admin 2-column layout */
|
|
1242
|
+
.admin-sidebar {
|
|
1243
|
+
display: flex;
|
|
1244
|
+
flex-direction: column;
|
|
1245
|
+
height: 100%;
|
|
1246
|
+
background: rgb(0 0 0 / 40%);
|
|
1247
|
+
backdrop-filter: blur(24px);
|
|
1248
|
+
-webkit-backdrop-filter: blur(24px);
|
|
1249
|
+
border-right: 1px solid rgb(255 255 255 / 10%);
|
|
1250
|
+
padding: 1rem;
|
|
1251
|
+
overflow-y: auto;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
.admin-content {
|
|
1255
|
+
display: flex;
|
|
1256
|
+
flex-direction: column;
|
|
1257
|
+
height: 100%;
|
|
1258
|
+
overflow-y: auto;
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
/* Analytics 2-column layout */
|
|
1262
|
+
.analytics-sidebar {
|
|
1263
|
+
display: flex;
|
|
1264
|
+
flex-direction: column;
|
|
1265
|
+
height: 100%;
|
|
1266
|
+
background: rgb(0 0 0 / 40%);
|
|
1267
|
+
backdrop-filter: blur(24px);
|
|
1268
|
+
-webkit-backdrop-filter: blur(24px);
|
|
1269
|
+
border-right: 1px solid rgb(255 255 255 / 10%);
|
|
1270
|
+
padding: 1rem;
|
|
1271
|
+
overflow-y: auto;
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
.analytics-content {
|
|
1275
|
+
display: flex;
|
|
1276
|
+
flex-direction: column;
|
|
1277
|
+
height: 100%;
|
|
1278
|
+
overflow-y: auto;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
/* Layout container classes (use in parent grid) */
|
|
1282
|
+
.layout-email-3col {
|
|
1283
|
+
display: grid;
|
|
1284
|
+
height: 100vh;
|
|
1285
|
+
grid-template-columns: 280px 320px 1fr;
|
|
1286
|
+
overflow: hidden;
|
|
1287
|
+
}
|
|
1288
|
+
|
|
1289
|
+
.layout-music-2col {
|
|
1290
|
+
display: grid;
|
|
1291
|
+
height: 100vh;
|
|
1292
|
+
grid-template-rows: 1fr auto;
|
|
1293
|
+
overflow: hidden;
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
.layout-music-row {
|
|
1297
|
+
display: grid;
|
|
1298
|
+
grid-template-columns: 280px 1fr;
|
|
1299
|
+
overflow: hidden;
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
.layout-chat-2col {
|
|
1303
|
+
display: grid;
|
|
1304
|
+
height: 100vh;
|
|
1305
|
+
grid-template-columns: 320px 1fr;
|
|
1306
|
+
overflow: hidden;
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
.layout-admin-2col {
|
|
1310
|
+
display: grid;
|
|
1311
|
+
height: 100vh;
|
|
1312
|
+
grid-template-columns: 260px 1fr;
|
|
1313
|
+
overflow: hidden;
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
.layout-analytics-2col {
|
|
1317
|
+
display: grid;
|
|
1318
|
+
height: 100vh;
|
|
1319
|
+
grid-template-columns: 240px 1fr;
|
|
1320
|
+
overflow: hidden;
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
/* ============================================
|
|
1324
|
+
UI COMPONENT PRESETS - Reusable Elements
|
|
1325
|
+
============================================ */
|
|
1326
|
+
|
|
1327
|
+
/* Stat Card - for dashboard metrics */
|
|
1328
|
+
.starlight-stat {
|
|
1329
|
+
display: flex;
|
|
1330
|
+
flex-direction: column;
|
|
1331
|
+
gap: 0.5rem;
|
|
1332
|
+
padding: 1.25rem;
|
|
1333
|
+
background: rgb(255 255 255 / 3%);
|
|
1334
|
+
border: 1px solid rgb(255 255 255 / 8%);
|
|
1335
|
+
border-radius: var(--q-radius-xl);
|
|
1336
|
+
transition: all 0.3s ease;
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1339
|
+
.starlight-stat:hover {
|
|
1340
|
+
background: rgb(255 255 255 / 5%);
|
|
1341
|
+
border-color: rgb(255 255 255 / 12%);
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1344
|
+
.starlight-stat-header {
|
|
1345
|
+
display: flex;
|
|
1346
|
+
align-items: center;
|
|
1347
|
+
justify-content: space-between;
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1350
|
+
.starlight-stat-icon {
|
|
1351
|
+
display: flex;
|
|
1352
|
+
align-items: center;
|
|
1353
|
+
justify-content: center;
|
|
1354
|
+
width: 2.5rem;
|
|
1355
|
+
height: 2.5rem;
|
|
1356
|
+
border-radius: var(--q-radius-lg);
|
|
1357
|
+
background: color-mix(in srgb, var(--q-color-primary) 15%, transparent);
|
|
1358
|
+
color: var(--q-color-primary);
|
|
1359
|
+
}
|
|
1360
|
+
|
|
1361
|
+
.starlight-stat-icon-green { background: rgb(16 185 129 / 15%); color: #10b981; }
|
|
1362
|
+
.starlight-stat-icon-orange { background: rgb(245 158 11 / 15%); color: #f59e0b; }
|
|
1363
|
+
.starlight-stat-icon-purple { background: rgb(139 92 246 / 15%); color: #8b5cf6; }
|
|
1364
|
+
.starlight-stat-icon-pink { background: rgb(236 72 153 / 15%); color: #ec4899; }
|
|
1365
|
+
|
|
1366
|
+
.starlight-stat-trend {
|
|
1367
|
+
display: flex;
|
|
1368
|
+
align-items: center;
|
|
1369
|
+
gap: 0.25rem;
|
|
1370
|
+
font-size: 0.75rem;
|
|
1371
|
+
font-weight: 600;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
.starlight-stat-trend-up { color: #10b981; }
|
|
1375
|
+
.starlight-stat-trend-down { color: #ef4444; }
|
|
1376
|
+
|
|
1377
|
+
.starlight-stat-value {
|
|
1378
|
+
font-size: 1.75rem;
|
|
1379
|
+
font-weight: 700;
|
|
1380
|
+
color: var(--q-color-primary);
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
.starlight-stat-label {
|
|
1384
|
+
font-size: 0.875rem;
|
|
1385
|
+
color: rgb(255 255 255 / 60%);
|
|
1386
|
+
text-transform: uppercase;
|
|
1387
|
+
letter-spacing: 0.05em;
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
/* Avatar - user/channel images */
|
|
1391
|
+
.starlight-avatar {
|
|
1392
|
+
display: flex;
|
|
1393
|
+
align-items: center;
|
|
1394
|
+
justify-content: center;
|
|
1395
|
+
border-radius: 50%;
|
|
1396
|
+
font-weight: 600;
|
|
1397
|
+
color: white;
|
|
1398
|
+
background: linear-gradient(135deg, var(--q-color-starlight-blue), #3b82f6);
|
|
1399
|
+
flex-shrink: 0;
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
.starlight-avatar-sm {
|
|
1403
|
+
width: 2rem;
|
|
1404
|
+
height: 2rem;
|
|
1405
|
+
font-size: 0.625rem;
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1408
|
+
.starlight-avatar-md {
|
|
1409
|
+
width: 2.5rem;
|
|
1410
|
+
height: 2.5rem;
|
|
1411
|
+
font-size: 0.75rem;
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1414
|
+
.starlight-avatar-lg {
|
|
1415
|
+
width: 3rem;
|
|
1416
|
+
height: 3rem;
|
|
1417
|
+
font-size: 0.875rem;
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
.starlight-avatar-xl {
|
|
1421
|
+
width: 4rem;
|
|
1422
|
+
height: 4rem;
|
|
1423
|
+
font-size: 1.125rem;
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
.starlight-avatar img {
|
|
1427
|
+
width: 100%;
|
|
1428
|
+
height: 100%;
|
|
1429
|
+
object-fit: cover;
|
|
1430
|
+
border-radius: 50%;
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
.starlight-avatar-online::after {
|
|
1434
|
+
content: '';
|
|
1435
|
+
position: absolute;
|
|
1436
|
+
bottom: 0;
|
|
1437
|
+
right: 0;
|
|
1438
|
+
width: 0.75rem;
|
|
1439
|
+
height: 0.75rem;
|
|
1440
|
+
background: #10b981;
|
|
1441
|
+
border: 2px solid var(--q-color-starlight-deep);
|
|
1442
|
+
border-radius: 50%;
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
/* Theme Toggle */
|
|
1446
|
+
.starlight-theme-toggle {
|
|
1447
|
+
display: flex;
|
|
1448
|
+
align-items: center;
|
|
1449
|
+
justify-content: center;
|
|
1450
|
+
width: 2.5rem;
|
|
1451
|
+
height: 2.5rem;
|
|
1452
|
+
border-radius: 50%;
|
|
1453
|
+
background: rgb(255 255 255 / 5%);
|
|
1454
|
+
border: 1px solid rgb(255 255 255 / 10%);
|
|
1455
|
+
color: inherit;
|
|
1456
|
+
cursor: pointer;
|
|
1457
|
+
transition: all 0.3s ease;
|
|
1458
|
+
flex-shrink: 0;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
.starlight-theme-toggle:hover {
|
|
1462
|
+
background: rgb(255 255 255 / 10%);
|
|
1463
|
+
transform: scale(1.05);
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1466
|
+
.starlight-theme-toggle svg {
|
|
1467
|
+
width: 1.25rem;
|
|
1468
|
+
height: 1.25rem;
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
/* Notification Bell */
|
|
1472
|
+
.starlight-notification {
|
|
1473
|
+
position: relative;
|
|
1474
|
+
display: flex;
|
|
1475
|
+
align-items: center;
|
|
1476
|
+
justify-content: center;
|
|
1477
|
+
width: 2.5rem;
|
|
1478
|
+
height: 2.5rem;
|
|
1479
|
+
background: transparent;
|
|
1480
|
+
border: none;
|
|
1481
|
+
color: inherit;
|
|
1482
|
+
cursor: pointer;
|
|
1483
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
1484
|
+
}
|
|
1485
|
+
|
|
1486
|
+
.starlight-notification:hover {
|
|
1487
|
+
color: var(--q-color-starlight-blue);
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
.starlight-notification-dot {
|
|
1491
|
+
position: absolute;
|
|
1492
|
+
top: 0.5rem;
|
|
1493
|
+
right: 0.5rem;
|
|
1494
|
+
width: 0.5rem;
|
|
1495
|
+
height: 0.5rem;
|
|
1496
|
+
background: #ef4444;
|
|
1497
|
+
border-radius: 50%;
|
|
1498
|
+
animation: starlight-pulse 2s infinite;
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
@keyframes starlight-pulse {
|
|
1502
|
+
0%, 100% { opacity: 1; }
|
|
1503
|
+
50% { opacity: 0.5; }
|
|
1504
|
+
}
|
|
1505
|
+
|
|
1506
|
+
/* Data Table */
|
|
1507
|
+
.starlight-table-container {
|
|
1508
|
+
background: rgb(255 255 255 / 3%);
|
|
1509
|
+
border: 1px solid rgb(255 255 255 / 8%);
|
|
1510
|
+
border-radius: var(--q-radius-xl);
|
|
1511
|
+
overflow: hidden;
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
.starlight-table-header {
|
|
1515
|
+
display: flex;
|
|
1516
|
+
align-items: center;
|
|
1517
|
+
justify-content: space-between;
|
|
1518
|
+
padding: 1rem 1.25rem;
|
|
1519
|
+
border-bottom: 1px solid rgb(255 255 255 / 8%);
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
.starlight-table-title {
|
|
1523
|
+
font-size: 1.125rem;
|
|
1524
|
+
font-weight: 600;
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
.starlight-table-filters {
|
|
1528
|
+
display: flex;
|
|
1529
|
+
gap: 0.5rem;
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
.starlight-table {
|
|
1533
|
+
width: 100%;
|
|
1534
|
+
border-collapse: collapse;
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
.starlight-table th,
|
|
1538
|
+
.starlight-table td {
|
|
1539
|
+
padding: 0.875rem 1.25rem;
|
|
1540
|
+
text-align: left;
|
|
1541
|
+
border-bottom: 1px solid rgb(255 255 255 / 5%);
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
.starlight-table th {
|
|
1545
|
+
font-size: 0.75rem;
|
|
1546
|
+
font-weight: 600;
|
|
1547
|
+
text-transform: uppercase;
|
|
1548
|
+
letter-spacing: 0.05em;
|
|
1549
|
+
color: rgb(255 255 255 / 60%);
|
|
1550
|
+
background: rgb(255 255 255 / 2%);
|
|
1551
|
+
}
|
|
1552
|
+
|
|
1553
|
+
.starlight-table tr:hover td {
|
|
1554
|
+
background: rgb(255 255 255 / 3%);
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
.starlight-table-footer {
|
|
1558
|
+
display: flex;
|
|
1559
|
+
align-items: center;
|
|
1560
|
+
justify-content: space-between;
|
|
1561
|
+
padding: 0.875rem 1.25rem;
|
|
1562
|
+
border-top: 1px solid rgb(255 255 255 / 8%);
|
|
1563
|
+
font-size: 0.875rem;
|
|
1564
|
+
color: rgb(255 255 255 / 60%);
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
/* Chart Card */
|
|
1568
|
+
.starlight-chart {
|
|
1569
|
+
background: rgb(255 255 255 / 3%);
|
|
1570
|
+
border: 1px solid rgb(255 255 255 / 8%);
|
|
1571
|
+
border-radius: var(--q-radius-xl);
|
|
1572
|
+
overflow: hidden;
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1575
|
+
.starlight-chart-header {
|
|
1576
|
+
display: flex;
|
|
1577
|
+
align-items: center;
|
|
1578
|
+
justify-content: space-between;
|
|
1579
|
+
padding: 1rem 1.25rem;
|
|
1580
|
+
border-bottom: 1px solid rgb(255 255 255 / 5%);
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
.starlight-chart-title {
|
|
1584
|
+
font-size: 1rem;
|
|
1585
|
+
font-weight: 600;
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
.starlight-chart-tabs {
|
|
1589
|
+
display: flex;
|
|
1590
|
+
gap: 0.25rem;
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
.starlight-chart-tab {
|
|
1594
|
+
padding: 0.375rem 0.75rem;
|
|
1595
|
+
font-size: 0.75rem;
|
|
1596
|
+
font-weight: 500;
|
|
1597
|
+
background: transparent;
|
|
1598
|
+
border: none;
|
|
1599
|
+
border-radius: var(--q-radius-md);
|
|
1600
|
+
color: rgb(255 255 255 / 60%);
|
|
1601
|
+
cursor: pointer;
|
|
1602
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
.starlight-chart-tab:hover {
|
|
1606
|
+
color: inherit;
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
.starlight-chart-tab.active {
|
|
1610
|
+
background: rgb(0 212 255 / 15%);
|
|
1611
|
+
color: var(--q-color-starlight-blue);
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
.starlight-chart-container {
|
|
1615
|
+
padding: 1.25rem;
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
/* Breadcrumb */
|
|
1619
|
+
.starlight-breadcrumb {
|
|
1620
|
+
display: flex;
|
|
1621
|
+
align-items: center;
|
|
1622
|
+
gap: 0.5rem;
|
|
1623
|
+
font-size: 0.875rem;
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
.starlight-breadcrumb-item {
|
|
1627
|
+
color: rgb(255 255 255 / 60%);
|
|
1628
|
+
text-decoration: none;
|
|
1629
|
+
transition: color 0.2s ease;
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
.starlight-breadcrumb-item:hover {
|
|
1633
|
+
color: var(--q-color-starlight-blue);
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
.starlight-breadcrumb-separator {
|
|
1637
|
+
color: rgb(255 255 255 / 40%);
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
.starlight-breadcrumb-current {
|
|
1641
|
+
color: inherit;
|
|
1642
|
+
font-weight: 500;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
/* Gallery (enhanced) */
|
|
1646
|
+
.starlight-gallery-grid {
|
|
1647
|
+
display: grid;
|
|
1648
|
+
gap: 1rem;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
.starlight-gallery-item {
|
|
1652
|
+
position: relative;
|
|
1653
|
+
aspect-ratio: 16 / 9;
|
|
1654
|
+
border-radius: var(--q-radius-lg);
|
|
1655
|
+
overflow: hidden;
|
|
1656
|
+
}
|
|
1657
|
+
|
|
1658
|
+
.starlight-gallery-item img {
|
|
1659
|
+
width: 100%;
|
|
1660
|
+
height: 100%;
|
|
1661
|
+
object-fit: cover;
|
|
1662
|
+
transition: transform var(--q-duration-slower) var(--q-ease-in-out);
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1665
|
+
.starlight-gallery-item:hover img {
|
|
1666
|
+
transform: scale(1.05);
|
|
1667
|
+
}
|
|
1668
|
+
|
|
1669
|
+
.starlight-gallery-overlay {
|
|
1670
|
+
position: absolute;
|
|
1671
|
+
inset: 0;
|
|
1672
|
+
display: flex;
|
|
1673
|
+
align-items: flex-end;
|
|
1674
|
+
padding: 1rem;
|
|
1675
|
+
background: linear-gradient(to top, rgb(0 0 0 / 80%), transparent);
|
|
1676
|
+
opacity: 0;
|
|
1677
|
+
transition: opacity var(--q-duration-slow) var(--q-ease-in-out);
|
|
1678
|
+
}
|
|
1679
|
+
|
|
1680
|
+
.starlight-gallery-item:hover .starlight-gallery-overlay {
|
|
1681
|
+
opacity: 1;
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
/* Progress Bar */
|
|
1685
|
+
.starlight-progress {
|
|
1686
|
+
display: flex;
|
|
1687
|
+
align-items: center;
|
|
1688
|
+
gap: 0.75rem;
|
|
1689
|
+
}
|
|
1690
|
+
|
|
1691
|
+
.starlight-progress-bar {
|
|
1692
|
+
flex: 1;
|
|
1693
|
+
height: 0.5rem;
|
|
1694
|
+
background: rgb(255 255 255 / 10%);
|
|
1695
|
+
border-radius: 9999px;
|
|
1696
|
+
overflow: hidden;
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
.starlight-progress-fill {
|
|
1700
|
+
height: 100%;
|
|
1701
|
+
background: linear-gradient(90deg, var(--q-color-starlight-blue), var(--q-color-starlight-peach));
|
|
1702
|
+
border-radius: 9999px;
|
|
1703
|
+
transition: width var(--q-duration-slower) var(--q-ease-in-out);
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1706
|
+
.starlight-progress-value {
|
|
1707
|
+
font-size: 0.875rem;
|
|
1708
|
+
font-weight: 600;
|
|
1709
|
+
min-width: 3rem;
|
|
1710
|
+
text-align: right;
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1713
|
+
/* Player Controls */
|
|
1714
|
+
.starlight-player-controls {
|
|
1715
|
+
display: flex;
|
|
1716
|
+
align-items: center;
|
|
1717
|
+
gap: 1rem;
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
.starlight-player-btn {
|
|
1721
|
+
display: flex;
|
|
1722
|
+
align-items: center;
|
|
1723
|
+
justify-content: center;
|
|
1724
|
+
width: 2.5rem;
|
|
1725
|
+
height: 2.5rem;
|
|
1726
|
+
background: transparent;
|
|
1727
|
+
border: none;
|
|
1728
|
+
color: inherit;
|
|
1729
|
+
cursor: pointer;
|
|
1730
|
+
transition: all var(--q-duration-base) var(--q-ease-in-out);
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1733
|
+
.starlight-player-btn:hover {
|
|
1734
|
+
color: var(--q-color-starlight-blue);
|
|
1735
|
+
transform: scale(1.1);
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
.starlight-player-btn-primary {
|
|
1739
|
+
width: 3rem;
|
|
1740
|
+
height: 3rem;
|
|
1741
|
+
background: var(--q-color-starlight-blue);
|
|
1742
|
+
border-radius: 50%;
|
|
1743
|
+
color: #000;
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1746
|
+
.starlight-player-btn-primary:hover {
|
|
1747
|
+
background: var(--q-color-starlight-peach);
|
|
1748
|
+
}
|
|
1749
|
+
|
|
1750
|
+
/* Page Header */
|
|
1751
|
+
.starlight-page-header {
|
|
1752
|
+
display: flex;
|
|
1753
|
+
align-items: center;
|
|
1754
|
+
justify-content: space-between;
|
|
1755
|
+
padding: 1.5rem;
|
|
1756
|
+
}
|
|
1757
|
+
|
|
1758
|
+
.starlight-page-title {
|
|
1759
|
+
font-size: 1.875rem;
|
|
1760
|
+
font-weight: 700;
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1763
|
+
.starlight-page-subtitle {
|
|
1764
|
+
font-size: 0.875rem;
|
|
1765
|
+
color: rgb(255 255 255 / 60%);
|
|
1766
|
+
margin-top: 0.25rem;
|
|
1767
|
+
}
|
|
1768
|
+
|
|
1769
|
+
.starlight-page-actions {
|
|
1770
|
+
display: flex;
|
|
1771
|
+
align-items: center;
|
|
1772
|
+
gap: 0.75rem;
|
|
1773
|
+
}
|