@howssatoshi/quantumcss 1.10.1 → 1.11.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 +11 -10
- package/dist/quantum.min.css +2 -2
- package/examples/admin-panel.html +317 -600
- package/examples/analytics-dashboard.html +130 -288
- package/examples/blog.css +297 -0
- package/examples/blog.html +216 -0
- package/examples/chat-messaging.html +11 -27
- package/examples/email-client.css +582 -0
- package/examples/email-client.html +432 -0
- package/examples/gaming-portal.css +352 -0
- package/examples/gaming-portal.html +239 -0
- package/examples/index.html +342 -232
- package/examples/kitchen-sink.html +284 -94
- package/examples/music-streaming.html +32 -91
- package/examples/{news-template.html → news.html} +35 -11
- package/examples/{portfolio-resume.html → portfolio.html} +56 -26
- package/examples/shopping.html +812 -0
- package/examples/starlight.html +7 -6
- package/examples/task.md +12 -0
- package/examples/travel.html +514 -0
- package/examples/video-streaming.html +303 -92
- package/package.json +9 -3
- package/src/cli.js +5 -5
- package/src/defaults.js +18 -16
- package/src/starlight.js +20 -15
- package/src/styles/quantum-base.css +4 -0
- package/src/styles/quantum-components.css +1879 -134
- package/src/styles/quantum-icons.css +345 -0
- package/src/styles/starlight.css +2606 -1186
- package/dist/quantum.css +0 -2374
- package/examples/blog-template.html +0 -288
- package/examples/email-template.html +0 -712
- package/examples/gaming-template.html +0 -471
- package/examples/gradient-test.html +0 -129
- package/examples/shopping/images/headset.jpg +0 -0
- package/examples/shopping/images/sneakers.jpg +0 -0
- package/examples/shopping/images/windbreaker.jpg +0 -0
- package/examples/shopping/index.html +0 -525
- package/examples/theme-test.html +0 -159
- package/examples/travel/index.html +0 -432
- package/examples/verify_fixes.html +0 -52
- package/examples/verify_presets.html +0 -32
- /package/examples/{shopping/nova-shop.css → nova-shop.css} +0 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/* Global Styles & Reset */
|
|
2
|
+
:root {
|
|
3
|
+
--starlight-deep: #020617;
|
|
4
|
+
--primary: #f8fafc;
|
|
5
|
+
--secondary: #94a3b8;
|
|
6
|
+
--accent: #00d4ff;
|
|
7
|
+
--highlight: rgba(0, 212, 255, 0.1);
|
|
8
|
+
--accent-glow: rgba(0, 212, 255, 0.35);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.container {
|
|
12
|
+
max-width: 1280px;
|
|
13
|
+
width: 100%;
|
|
14
|
+
margin: 0 auto;
|
|
15
|
+
padding: 0 1.5rem;
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
gap: 1.5rem;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.nav-header {
|
|
22
|
+
padding: 0;
|
|
23
|
+
gap: 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
body {
|
|
27
|
+
background-color: var(--starlight-deep) !important;
|
|
28
|
+
color: var(--primary);
|
|
29
|
+
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
30
|
+
line-height: 1.5;
|
|
31
|
+
-webkit-font-smoothing: antialiased;
|
|
32
|
+
min-height: 100-vh;
|
|
33
|
+
margin: 0;
|
|
34
|
+
overflow-x: hidden;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Main Content Layout */
|
|
38
|
+
main {
|
|
39
|
+
max-width: 1280px;
|
|
40
|
+
margin: 0 auto;
|
|
41
|
+
padding: 6rem 1.5rem;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
main > div {
|
|
45
|
+
display: grid;
|
|
46
|
+
grid-template-columns: 1fr;
|
|
47
|
+
gap: 4rem;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@media (min-width: 1024px) {
|
|
51
|
+
main > div {
|
|
52
|
+
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
article {
|
|
56
|
+
grid-column: span 8 / span 8;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
aside {
|
|
60
|
+
grid-column: span 4 / span 4;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Article Styles */
|
|
65
|
+
article {
|
|
66
|
+
display: flex;
|
|
67
|
+
flex-direction: column;
|
|
68
|
+
gap: 2.5rem; /* Standard content gap (40px) */
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* Major section transitions (Header and Featured Image) */
|
|
72
|
+
article > header,
|
|
73
|
+
article > div:nth-child(2) {
|
|
74
|
+
margin-bottom: 1.5rem; /* Adds to the 2.5rem gap to create a 4rem (64px) gap */
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Article Tags section transition */
|
|
78
|
+
article > div:last-of-type {
|
|
79
|
+
margin-top: 1.5rem; /* Creates the larger 4rem gap before tags */
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
article > header {
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-direction: column;
|
|
85
|
+
gap: 2rem;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
article > header > div:first-child {
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
gap: 1rem;
|
|
92
|
+
font-size: 0.875rem;
|
|
93
|
+
color: var(--secondary);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
article > header > div:last-child {
|
|
97
|
+
display: flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
gap: 1rem;
|
|
100
|
+
padding-top: 1rem;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
article > header > div:last-child p:first-child {
|
|
104
|
+
font-weight: 700;
|
|
105
|
+
text-transform: uppercase;
|
|
106
|
+
font-size: 0.75rem;
|
|
107
|
+
letter-spacing: 0.1em;
|
|
108
|
+
margin: 0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
article > header > div:last-child p:last-child {
|
|
112
|
+
font-size: 0.75rem;
|
|
113
|
+
color: var(--secondary);
|
|
114
|
+
font-weight: 500;
|
|
115
|
+
margin: 0;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* Featured Image */
|
|
119
|
+
article > div:nth-child(2) {
|
|
120
|
+
border-radius: 1rem;
|
|
121
|
+
overflow: hidden;
|
|
122
|
+
background: rgba(255, 255, 255, 0.05);
|
|
123
|
+
backdrop-filter: blur(8px);
|
|
124
|
+
padding: 0.25rem;
|
|
125
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
article > div:nth-child(2) > div {
|
|
129
|
+
aspect-ratio: 16 / 9;
|
|
130
|
+
background-color: rgba(0, 0, 0, 0.4);
|
|
131
|
+
border-radius: 0.75rem;
|
|
132
|
+
position: relative;
|
|
133
|
+
overflow: hidden;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
article > div:nth-child(2) img {
|
|
137
|
+
width: 100%;
|
|
138
|
+
height: 100%;
|
|
139
|
+
object-fit: cover;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* Content Body */
|
|
143
|
+
article > p:first-of-type {
|
|
144
|
+
font-size: 1.5rem;
|
|
145
|
+
font-weight: 500;
|
|
146
|
+
color: var(--primary);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
article p {
|
|
150
|
+
font-size: 1.125rem;
|
|
151
|
+
line-height: 1.75;
|
|
152
|
+
color: #cbd5e1;
|
|
153
|
+
margin-bottom: 0;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
h2 {
|
|
157
|
+
font-size: 1.875rem;
|
|
158
|
+
font-weight: 600;
|
|
159
|
+
margin: 0;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* Tags */
|
|
163
|
+
article > div:last-of-type {
|
|
164
|
+
display: flex;
|
|
165
|
+
flex-wrap: wrap;
|
|
166
|
+
gap: 0.5rem;
|
|
167
|
+
padding-top: 2rem;
|
|
168
|
+
margin-top: 3rem;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
article > div:last-of-type span {
|
|
172
|
+
font-size: 0.875rem;
|
|
173
|
+
color: #64748b;
|
|
174
|
+
margin-right: 0.5rem;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
aside {
|
|
178
|
+
gap: 2rem;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
aside > div:last-child h3 {
|
|
182
|
+
font-size: 0.75rem;
|
|
183
|
+
text-transform: uppercase;
|
|
184
|
+
letter-spacing: 0.1em;
|
|
185
|
+
color: #64748b;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
aside > div:last-child a {
|
|
189
|
+
display: block;
|
|
190
|
+
background: rgba(255, 255, 255, 0.03);
|
|
191
|
+
backdrop-filter: blur(8px);
|
|
192
|
+
padding: 1rem;
|
|
193
|
+
border-radius: 0.75rem;
|
|
194
|
+
text-decoration: none;
|
|
195
|
+
margin-bottom: 1rem;
|
|
196
|
+
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
197
|
+
transition: background 0.3s;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
aside > div:last-child a:hover {
|
|
201
|
+
background: rgba(255, 255, 255, 0.05);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
aside > div:last-child h4 {
|
|
205
|
+
font-weight: 700;
|
|
206
|
+
color: var(--primary);
|
|
207
|
+
margin: 0;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
aside > div:last-child a p {
|
|
211
|
+
font-size: 0.75rem;
|
|
212
|
+
color: #64748b;
|
|
213
|
+
margin: 0.25rem 0 0;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/* Theme Toggle (Re-used from original) */
|
|
217
|
+
.theme-toggle {
|
|
218
|
+
cursor: pointer;
|
|
219
|
+
width: 2.5rem;
|
|
220
|
+
height: 2.5rem;
|
|
221
|
+
border-radius: 50%;
|
|
222
|
+
transition: background 0.3s ease;
|
|
223
|
+
display: flex;
|
|
224
|
+
align-items: center;
|
|
225
|
+
justify-content: center;
|
|
226
|
+
flex-shrink: 0;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.theme-toggle:hover {
|
|
230
|
+
background: rgba(255, 255, 255, 0.1);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
html[data-theme="light"] .theme-toggle:hover {
|
|
234
|
+
background: rgba(0, 0, 0, 0.05);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
html[data-theme="light"] {
|
|
238
|
+
background-color: #f8fafc;
|
|
239
|
+
color: #1e293b;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
html[data-theme="light"] body {
|
|
243
|
+
background-color: #f8fafc !important;
|
|
244
|
+
color: #1e293b;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
html[data-theme="light"] .nav-header {
|
|
248
|
+
background: rgba(248, 250, 252, 0.9);
|
|
249
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
html[data-theme="light"] h1,
|
|
253
|
+
html[data-theme="light"] h2,
|
|
254
|
+
html[data-theme="light"] h3,
|
|
255
|
+
html[data-theme="light"] h4 {
|
|
256
|
+
color: #0f172a !important;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
html[data-theme="light"] article p,
|
|
260
|
+
html[data-theme="light"] .card p,
|
|
261
|
+
html[data-theme="light"] .glass p,
|
|
262
|
+
html[data-theme="light"] .blue-card {
|
|
263
|
+
color: #1e293b !important;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
html[data-theme="light"] .glass {
|
|
267
|
+
background: rgba(255, 255, 255, 0.8) !important;
|
|
268
|
+
border-color: rgba(0, 0, 0, 0.1) !important;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
html[data-theme="light"] .card {
|
|
272
|
+
background: white;
|
|
273
|
+
border-color: #e2e8f0;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
html[data-theme="light"] aside > div:last-child a {
|
|
277
|
+
background: rgba(0, 0, 0, 0.02);
|
|
278
|
+
border-color: rgba(0, 0, 0, 0.05);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
html[data-theme="light"] aside > div:last-child a:hover {
|
|
282
|
+
background: rgba(0, 0, 0, 0.04);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
html[data-theme="light"] .code-window {
|
|
286
|
+
background: #f1f5f9;
|
|
287
|
+
border-color: #e2e8f0;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
html[data-theme="light"] .code-window pre {
|
|
291
|
+
color: #1e293b;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
@keyframes pulse {
|
|
295
|
+
0%, 100% { opacity: 1; }
|
|
296
|
+
50% { opacity: .5; }
|
|
297
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Starlight Blog Template</title>
|
|
7
|
+
<link rel="stylesheet" href="../dist/quantum.min.css">
|
|
8
|
+
<link rel="stylesheet" href="blog.css">
|
|
9
|
+
<script src="../src/starlight.js"></script>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
|
|
13
|
+
<!-- ── Starfield ── -->
|
|
14
|
+
<div class="stars-bg" id="stars"></div>
|
|
15
|
+
|
|
16
|
+
<!-- Navigation -->
|
|
17
|
+
<input type="checkbox" id="nav-toggle" class="nav-toggle" />
|
|
18
|
+
<header class="nav-header">
|
|
19
|
+
<div class="container">
|
|
20
|
+
<label class="nav-hamburger" for="nav-toggle">
|
|
21
|
+
<span class="nav-hamburger-icon">
|
|
22
|
+
<span></span>
|
|
23
|
+
<span></span>
|
|
24
|
+
<span></span>
|
|
25
|
+
</span>
|
|
26
|
+
</label>
|
|
27
|
+
<a href="#" class="nav-logo">
|
|
28
|
+
<i class="q-icon-starlight"></i>
|
|
29
|
+
<span class="text-gradient font-bold">StarlightBlog</span>
|
|
30
|
+
</a>
|
|
31
|
+
<nav class="nav-links">
|
|
32
|
+
<a href="#">Home</a>
|
|
33
|
+
<a href="#">Articles</a>
|
|
34
|
+
<a href="#">About</a>
|
|
35
|
+
</nav>
|
|
36
|
+
<div class="theme-toggle" title="Toggle Theme" onclick="toggleTheme()">
|
|
37
|
+
<i class="q-icon-display"></i>
|
|
38
|
+
<i class="q-icon-sun sun-icon"></i>
|
|
39
|
+
<i class="q-icon-moon moon-icon"></i>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</header>
|
|
43
|
+
|
|
44
|
+
<!-- Mobile Drawer -->
|
|
45
|
+
<div class="nav-drawer">
|
|
46
|
+
<div class="nav-drawer-inner">
|
|
47
|
+
<a href="#">Home</a>
|
|
48
|
+
<a href="#">Articles</a>
|
|
49
|
+
<a href="#">About</a>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<!-- Main Content -->
|
|
54
|
+
<main>
|
|
55
|
+
<div>
|
|
56
|
+
|
|
57
|
+
<!-- Article Column -->
|
|
58
|
+
<article>
|
|
59
|
+
|
|
60
|
+
<!-- Header -->
|
|
61
|
+
<header>
|
|
62
|
+
<div>
|
|
63
|
+
<span class="badge-primary">Technology</span>
|
|
64
|
+
<span>•</span>
|
|
65
|
+
<time datetime="2026-02-01">February 1, 2026</time>
|
|
66
|
+
<span>•</span>
|
|
67
|
+
<span>5 min read</span>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<h1>
|
|
71
|
+
The Future of <span class="text-gradient">UI Design</span>
|
|
72
|
+
</h1>
|
|
73
|
+
|
|
74
|
+
<div>
|
|
75
|
+
<img src="images/eric.png" class="avatar" alt="Eric Yang">
|
|
76
|
+
<div>
|
|
77
|
+
<p>Eric Yang</p>
|
|
78
|
+
<p>Frontend Architect</p>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</header>
|
|
82
|
+
|
|
83
|
+
<!-- Featured Image -->
|
|
84
|
+
<div>
|
|
85
|
+
<div>
|
|
86
|
+
<img src="images/starlight.jpg" alt="Starlight Aesthetics" class="w-full h-full object-cover">
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<!-- Content -->
|
|
91
|
+
<p>
|
|
92
|
+
Glassmorphism, neon glows, and deep gradients are making a comeback. Powered by modern CSS, they create an immersive experience.
|
|
93
|
+
</p>
|
|
94
|
+
|
|
95
|
+
<h2>
|
|
96
|
+
<span class="accent-bar"></span>
|
|
97
|
+
The Starlight Paradigm
|
|
98
|
+
</h2>
|
|
99
|
+
<p>
|
|
100
|
+
The "Starlight" aesthetic combines the ethereal beauty of space with the precision of modern interface design.
|
|
101
|
+
</p>
|
|
102
|
+
|
|
103
|
+
<div class="blue-card">
|
|
104
|
+
"Design is not just what it looks like and feels like. Design is how it works... in zero gravity."
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
<div>
|
|
108
|
+
<h2>Code Interface</h2>
|
|
109
|
+
<div class="code-window">
|
|
110
|
+
<div class="code-window-header">
|
|
111
|
+
<div class="code-window-controls">
|
|
112
|
+
<div class="code-window-dot bg-red-500"></div>
|
|
113
|
+
<div class="code-window-dot bg-yellow-500"></div>
|
|
114
|
+
<div class="code-window-dot bg-green-500"></div>
|
|
115
|
+
</div>
|
|
116
|
+
<span class="code-window-title">quantum.config.json</span>
|
|
117
|
+
</div>
|
|
118
|
+
<pre>
|
|
119
|
+
<code>
|
|
120
|
+
{
|
|
121
|
+
"theme": {
|
|
122
|
+
"extend": {
|
|
123
|
+
"colors": {
|
|
124
|
+
"starlight": "#00d4ff"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
</code>
|
|
130
|
+
</pre>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<!-- Tags -->
|
|
135
|
+
<div>
|
|
136
|
+
<span>Tags:</span>
|
|
137
|
+
<a href="#" class="badge-secondary">CSS</a>
|
|
138
|
+
<a href="#" class="badge-secondary">Design</a>
|
|
139
|
+
<a href="#" class="badge-secondary">QuantumCSS</a>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
</article>
|
|
143
|
+
|
|
144
|
+
<!-- Sidebar -->
|
|
145
|
+
<aside>
|
|
146
|
+
|
|
147
|
+
<!-- Author Card -->
|
|
148
|
+
<div class="card">
|
|
149
|
+
<h3>About the Author</h3>
|
|
150
|
+
<p>
|
|
151
|
+
Eric is a frontend wizard obsessed with making the web feel more organic and alive.
|
|
152
|
+
</p>
|
|
153
|
+
<button>Follow</button>
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
<!-- Newsletter -->
|
|
157
|
+
<div class="glass">
|
|
158
|
+
<h3>Join the Newsletter</h3>
|
|
159
|
+
<p>Get the latest design trends delivered to your inbox.</p>
|
|
160
|
+
<form>
|
|
161
|
+
<input type="email" placeholder="your@email.com">
|
|
162
|
+
<button>Subscribe</button>
|
|
163
|
+
</form>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<!-- Recommended -->
|
|
167
|
+
<div class="card">
|
|
168
|
+
<h3>Recommended</h3>
|
|
169
|
+
|
|
170
|
+
<a href="#">
|
|
171
|
+
<h4>Glassmorphism in 2026</h4>
|
|
172
|
+
<p>Feb 1 • 4 min read</p>
|
|
173
|
+
</a>
|
|
174
|
+
|
|
175
|
+
<a href="#">
|
|
176
|
+
<h4>Modern CSS Variables</h4>
|
|
177
|
+
<p>Jan 28 • 8 min read</p>
|
|
178
|
+
</a>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
</aside>
|
|
182
|
+
|
|
183
|
+
</div>
|
|
184
|
+
</main>
|
|
185
|
+
|
|
186
|
+
<!-- Footer -->
|
|
187
|
+
<footer>
|
|
188
|
+
<div>
|
|
189
|
+
<div class="left">
|
|
190
|
+
© 2026 StarlightBlog. Powered by QuantumCSS.
|
|
191
|
+
</div>
|
|
192
|
+
<div class="right">
|
|
193
|
+
<a href="#">Privacy</a>
|
|
194
|
+
<a href="#">Terms</a>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
</footer>
|
|
198
|
+
|
|
199
|
+
<script>
|
|
200
|
+
/* ── Stars ── */
|
|
201
|
+
const starsEl = document.getElementById("stars");
|
|
202
|
+
for (let i = 0; i < 120; i++) {
|
|
203
|
+
const s = document.createElement("div");
|
|
204
|
+
s.className = "star";
|
|
205
|
+
const size = Math.random() * 2.5 + 0.5;
|
|
206
|
+
s.style.cssText = `
|
|
207
|
+
width:${size}px; height:${size}px;
|
|
208
|
+
left:${Math.random() * 100}%; top:${Math.random() * 100}%;
|
|
209
|
+
--d:${2 + Math.random() * 5}s;
|
|
210
|
+
animation-delay:${Math.random() * 5}s;
|
|
211
|
+
`;
|
|
212
|
+
starsEl.appendChild(s);
|
|
213
|
+
}
|
|
214
|
+
</script>
|
|
215
|
+
</body>
|
|
216
|
+
</html>
|
|
@@ -67,9 +67,6 @@
|
|
|
67
67
|
.theme-btn { width: 100%; display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; background: var(--q-color-surface); border: 1px solid var(--q-color-border); border-radius: 0.75rem; color: var(--q-text-primary, #f1f5f9); cursor: pointer; transition: all 0.2s ease; }
|
|
68
68
|
.theme-btn:hover { background: var(--q-highlight-bg); }
|
|
69
69
|
.theme-label { font-size: 0.875rem; font-weight: 500; }
|
|
70
|
-
.sun-icon { display: none; }
|
|
71
|
-
html[data-theme="light"] .sun-icon { display: inline; }
|
|
72
|
-
html[data-theme="light"] .moon-icon { display: none; }
|
|
73
70
|
html[data-theme="light"] { --bg-primary: var(--q-light-bg); --text-primary: var(--q-light-text); --text-secondary: var(--q-light-text-muted); --text-muted: var(--q-light-text-muted); }
|
|
74
71
|
html[data-theme="light"] .message.received .message-bubble { background: #fff; border: 1px solid #e2e8f0; color: #0f172a; }
|
|
75
72
|
html[data-theme="light"] .message.sent .message-bubble { background: var(--q-color-primary); color: #fff; }
|
|
@@ -91,10 +88,8 @@
|
|
|
91
88
|
</div>
|
|
92
89
|
</div>
|
|
93
90
|
<div class="px-4 py-4 border-b border-white_5">
|
|
94
|
-
<div class="
|
|
95
|
-
<
|
|
96
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
|
97
|
-
</svg>
|
|
91
|
+
<div class="search has-icon">
|
|
92
|
+
<i class="q-icon-search"></i>
|
|
98
93
|
<input type="text" class="search-input bg-transparent border-none w-full h-full pl-12 outline-none text-sm text-white" placeholder="Search conversations...">
|
|
99
94
|
</div>
|
|
100
95
|
</div>
|
|
@@ -154,8 +149,9 @@
|
|
|
154
149
|
</div>
|
|
155
150
|
<div class="theme-toggle-wrapper">
|
|
156
151
|
<button class="theme-btn" onclick="toggleTheme()">
|
|
157
|
-
<
|
|
158
|
-
<
|
|
152
|
+
<i class="q-icon-display"></i>
|
|
153
|
+
<i class="q-icon-sun sun-icon"></i>
|
|
154
|
+
<i class="q-icon-moon moon-icon"></i>
|
|
159
155
|
<span class="theme-label">Toggle Theme</span>
|
|
160
156
|
</button>
|
|
161
157
|
</div>
|
|
@@ -174,19 +170,13 @@
|
|
|
174
170
|
</div>
|
|
175
171
|
<div style="display: flex; gap: 0.5rem;">
|
|
176
172
|
<button class="icon-btn icon-btn-circle">
|
|
177
|
-
<
|
|
178
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path>
|
|
179
|
-
</svg>
|
|
173
|
+
<i class="q-icon-phone"></i>
|
|
180
174
|
</button>
|
|
181
175
|
<button class="icon-btn icon-btn-circle">
|
|
182
|
-
<
|
|
183
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"></path>
|
|
184
|
-
</svg>
|
|
176
|
+
<i class="q-icon-video"></i>
|
|
185
177
|
</button>
|
|
186
178
|
<button class="icon-btn icon-btn-circle">
|
|
187
|
-
<
|
|
188
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 5v.01M12 12v.01M12 19v.01M12 6a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2zm0 7a1 1 0 110-2 1 1 0 010 2z"></path>
|
|
189
|
-
</svg>
|
|
179
|
+
<i class="q-icon-more-vertical"></i>
|
|
190
180
|
</button>
|
|
191
181
|
</div>
|
|
192
182
|
</div>
|
|
@@ -224,20 +214,14 @@
|
|
|
224
214
|
<div class="chat-input-container">
|
|
225
215
|
<div class="chat-input-wrapper">
|
|
226
216
|
<button class="icon-btn icon-btn-circle">
|
|
227
|
-
<
|
|
228
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
|
229
|
-
</svg>
|
|
217
|
+
<i class="q-icon-smile"></i>
|
|
230
218
|
</button>
|
|
231
219
|
<input type="text" class="chat-input" placeholder="Type a message...">
|
|
232
220
|
<button class="icon-btn icon-btn-circle">
|
|
233
|
-
<
|
|
234
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13"></path>
|
|
235
|
-
</svg>
|
|
221
|
+
<i class="q-icon-paperclip"></i>
|
|
236
222
|
</button>
|
|
237
223
|
<button class="send-btn">
|
|
238
|
-
<
|
|
239
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 19l9 2-9-18-9 18 9-2zm0 0v-8"></path>
|
|
240
|
-
</svg>
|
|
224
|
+
<i class="q-icon-send"></i>
|
|
241
225
|
</button>
|
|
242
226
|
</div>
|
|
243
227
|
</div>
|