@howssatoshi/quantumcss 1.8.0 → 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 +10 -1
- package/examples/admin-panel.html +317 -600
- package/examples/analytics-dashboard.html +136 -299
- package/examples/blog.css +297 -0
- package/examples/blog.html +216 -0
- package/examples/chat-messaging.html +43 -70
- 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/images/eric.png +0 -0
- package/examples/index.html +342 -259
- package/examples/kitchen-sink.html +332 -94
- package/examples/music-streaming.html +32 -91
- package/examples/news.html +199 -0
- package/examples/nova-shop.css +984 -0
- package/examples/portfolio.html +235 -0
- package/examples/shopping.html +812 -0
- package/examples/starlight.html +11 -9
- package/examples/task.md +12 -0
- package/examples/travel.html +514 -0
- package/examples/video-streaming.html +310 -92
- package/package.json +9 -3
- package/src/cli.js +5 -5
- package/src/defaults.js +19 -16
- package/src/generator.js +12 -3
- package/src/starlight.js +20 -15
- package/src/styles/quantum-animations.css +13 -13
- package/src/styles/quantum-base.css +110 -58
- package/src/styles/quantum-components.css +2379 -349
- package/src/styles/quantum-icons.css +345 -0
- package/src/styles/starlight.css +2702 -1054
- package/dist/index.html +0 -232
- package/dist/quantum.css +0 -2374
- package/examples/blog-template.html +0 -287
- package/examples/email-template.html +0 -712
- package/examples/gaming-template.html +0 -340
- package/examples/gradient-test.html +0 -124
- package/examples/news-template.html +0 -317
- package/examples/portfolio-resume.html +0 -647
- 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 -338
- package/examples/theme-test.html +0 -159
- package/examples/travel/index.html +0 -275
- package/examples/verify_fixes.html +0 -52
- package/examples/verify_presets.html +0 -32
|
@@ -11,72 +11,65 @@
|
|
|
11
11
|
display: grid;
|
|
12
12
|
grid-template-columns: 320px 1fr;
|
|
13
13
|
height: 100vh;
|
|
14
|
-
background: var(--bg
|
|
14
|
+
background: var(--q-color-bg, #08081a);
|
|
15
15
|
overflow: hidden;
|
|
16
16
|
}
|
|
17
17
|
.chat-sidebar {
|
|
18
|
-
background: linear-gradient(180deg,
|
|
19
|
-
border-right: 1px solid
|
|
18
|
+
background: linear-gradient(180deg, color-mix(in srgb, var(--q-color-bg), white 2%) 0%, var(--q-color-bg) 100%);
|
|
19
|
+
border-right: 1px solid var(--q-color-border);
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-direction: column;
|
|
22
22
|
overflow: hidden;
|
|
23
23
|
}
|
|
24
|
-
.sidebar-header { padding: 1.25rem; border-bottom: 1px solid
|
|
25
|
-
.chat-tabs { display: flex; gap: 0.25rem; padding: 0.75rem 1rem; border-bottom: 1px solid
|
|
24
|
+
.sidebar-header { padding: 1.25rem; border-bottom: 1px solid var(--q-color-border); }
|
|
25
|
+
.chat-tabs { display: flex; gap: 0.25rem; padding: 0.75rem 1rem; border-bottom: 1px solid var(--q-color-border); }
|
|
26
26
|
.chat-tab { flex: 1; padding: 0.5rem; background: transparent; border: none; border-radius: 0.5rem;
|
|
27
|
-
color: var(--text-muted, #64748b); font-size: 0.8125rem; font-weight: 500; cursor: pointer;
|
|
27
|
+
color: var(--q-text-muted, #64748b); font-size: 0.8125rem; font-weight: 500; cursor: pointer;
|
|
28
28
|
}
|
|
29
|
-
.chat-tab.active { color: var(--color-starlight, #00d4ff); background:
|
|
29
|
+
.chat-tab.active { color: var(--q-color-starlight-blue, #00d4ff); background: var(--q-highlight-bg); }
|
|
30
30
|
.conversation-list { flex: 1; overflow-y: auto; padding: 0.5rem; }
|
|
31
31
|
.conversation-item { display: flex; align-items: center; gap: 0.875rem; padding: 0.875rem; border-radius: 0.75rem; cursor: pointer; margin-bottom: 0.25rem; }
|
|
32
|
-
.conversation-item:hover { background:
|
|
33
|
-
.conversation-item.active { background:
|
|
32
|
+
.conversation-item:hover { background: var(--q-highlight-bg); }
|
|
33
|
+
.conversation-item.active { background: color-mix(in srgb, var(--q-color-starlight-blue), transparent 90%); }
|
|
34
34
|
.conversation-avatar { position: relative; flex-shrink: 0; }
|
|
35
35
|
.conversation-avatar img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
|
|
36
36
|
.conversation-info { flex: 1; min-width: 0; }
|
|
37
37
|
.conversation-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.25rem; }
|
|
38
|
-
.conversation-name { font-size: 0.9375rem; font-weight: 600; color: var(--text-primary, #f1f5f9); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
39
|
-
.conversation-time { font-size: 0.75rem; color: var(--text-muted, #64748b); }
|
|
40
|
-
.conversation-message { font-size: 0.875rem; color: var(--text-secondary, #94a3b8); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
41
|
-
.conversation-item.unread .conversation-message { color: var(--text-primary, #f1f5f9); font-weight: 500; }
|
|
38
|
+
.conversation-name { font-size: 0.9375rem; font-weight: 600; color: var(--q-text-primary, #f1f5f9); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
39
|
+
.conversation-time { font-size: 0.75rem; color: var(--q-text-muted, #64748b); }
|
|
40
|
+
.conversation-message { font-size: 0.875rem; color: var(--q-text-secondary, #94a3b8); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
41
|
+
.conversation-item.unread .conversation-message { color: var(--q-text-primary, #f1f5f9); font-weight: 500; }
|
|
42
42
|
.chat-main { display: flex; flex-direction: column; overflow: hidden; }
|
|
43
|
-
.chat-header { display: flex; align-items: center; justify-content: space-between; padding: 0 1.5rem; border-bottom: 1px solid
|
|
43
|
+
.chat-header { display: flex; align-items: center; justify-content: space-between; padding: 0 1.5rem; border-bottom: 1px solid var(--q-color-border); background: color-mix(in srgb, var(--q-color-bg), white 1%); height: 5rem; flex-shrink: 0; }
|
|
44
44
|
.chat-header-info { display: flex; align-items: center; gap: 0.875rem; }
|
|
45
45
|
.chat-header-avatar { position: relative; }
|
|
46
46
|
.chat-header-avatar img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
|
|
47
|
-
.chat-header-details h3 { font-size: 1rem; font-weight: 600; color: var(--text-primary, #f1f5f9); margin-bottom: 0.125rem; }
|
|
47
|
+
.chat-header-details h3 { font-size: 1rem; font-weight: 600; color: var(--q-text-primary, #f1f5f9); margin-bottom: 0.125rem; }
|
|
48
48
|
.chat-header-details p { font-size: 0.8125rem; color: #10b981; }
|
|
49
49
|
.messages-container { flex: 1; overflow-y: auto; padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; }
|
|
50
50
|
.message-date { text-align: center; margin: 1rem 0; }
|
|
51
|
-
.message-date span { font-size: 0.75rem; color: var(--text-muted, #64748b); background:
|
|
51
|
+
.message-date span { font-size: 0.75rem; color: var(--q-text-muted, #64748b); background: var(--q-color-bg-muted); padding: 0.375rem 0.875rem; border-radius: 9999px; }
|
|
52
52
|
.message { display: flex; gap: 0.75rem; max-width: 70%; }
|
|
53
53
|
.message.sent { align-self: flex-end; flex-direction: row-reverse; }
|
|
54
54
|
.message-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
|
|
55
55
|
.message-content { display: flex; flex-direction: column; gap: 0.25rem; }
|
|
56
56
|
.message-bubble { padding: 0.875rem 1.125rem; border-radius: 1.125rem; font-size: 0.9375rem; line-height: 1.5; }
|
|
57
|
-
.message.received .message-bubble { background:
|
|
58
|
-
.message.sent .message-bubble { background:
|
|
59
|
-
.message-time { font-size: 0.75rem; color: var(--text-muted, #64748b); align-self: flex-start; margin-left: 0.5rem; }
|
|
57
|
+
.message.received .message-bubble { background: color-mix(in srgb, var(--q-color-bg), white 8%); color: var(--q-text-primary, #f1f5f9); border-bottom-left-radius: 0.25rem; }
|
|
58
|
+
.message.sent .message-bubble { background: var(--q-color-starlight-blue); color: #000; font-weight: 600; border-bottom-right-radius: 0.25rem; }
|
|
59
|
+
.message-time { font-size: 0.75rem; color: var(--q-text-muted, #64748b); align-self: flex-start; margin-left: 0.5rem; }
|
|
60
60
|
.message.sent .message-time { align-self: flex-end; margin-left: 0; margin-right: 0.5rem; }
|
|
61
|
-
.chat-input-container { padding: 0 1.25rem; border-top: 1px solid
|
|
62
|
-
.chat-input-wrapper { display: flex; align-items: flex-end; gap: 0.75rem; background:
|
|
63
|
-
.chat-input { flex: 1; background: transparent; border: none; color: var(--text-primary, #f1f5f9); font-size: 0.9375rem; resize: none; max-height: 120px; padding: 0.625rem 0; outline: none; }
|
|
64
|
-
.chat-input::placeholder { color: var(--text-muted, #64748b); }
|
|
65
|
-
.send-btn { width: 36px; height: 36px; border-radius: 50%; background:
|
|
66
|
-
.theme-toggle-wrapper { padding: 0 1.25rem; border-top: 1px solid
|
|
67
|
-
.theme-btn { width: 100%; display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; background:
|
|
68
|
-
.theme-btn:hover { background:
|
|
61
|
+
.chat-input-container { padding: 0 1.25rem; border-top: 1px solid var(--q-color-border); background: color-mix(in srgb, var(--q-color-bg), white 1%); height: 5rem; min-height: 5rem; display: flex; align-items: center; flex-shrink: 0; box-sizing: border-box; }
|
|
62
|
+
.chat-input-wrapper { display: flex; align-items: flex-end; gap: 0.75rem; background: var(--q-input-bg); border: 1px solid var(--q-input-border); border-radius: 1.25rem; padding: 0.5rem 0.75rem; width: 100%; }
|
|
63
|
+
.chat-input { flex: 1; background: transparent; border: none; color: var(--q-text-primary, #f1f5f9); font-size: 0.9375rem; resize: none; max-height: 120px; padding: 0.625rem 0; outline: none; }
|
|
64
|
+
.chat-input::placeholder { color: var(--q-text-muted, #64748b); }
|
|
65
|
+
.send-btn { width: 36px; height: 36px; border-radius: 50%; background: var(--q-gradient-primary); border: none; color: white; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; margin-bottom: 0.125rem; }
|
|
66
|
+
.theme-toggle-wrapper { padding: 0 1.25rem; border-top: 1px solid var(--q-color-border); height: 5rem; min-height: 5rem; display: flex; align-items: center; flex-shrink: 0; background: color-mix(in srgb, var(--q-color-bg), white 1%); box-sizing: border-box; }
|
|
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
|
+
.theme-btn:hover { background: var(--q-highlight-bg); }
|
|
69
69
|
.theme-label { font-size: 0.875rem; font-weight: 500; }
|
|
70
|
-
|
|
71
|
-
html[data-theme="light"] .
|
|
72
|
-
html[data-theme="light"] .
|
|
73
|
-
html[data-theme="light"] { --bg-primary: #f8fafc; --text-primary: #0f172a; --text-secondary: #475569; --text-muted: #64748b; }
|
|
74
|
-
html[data-theme="light"] .chat-sidebar { background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); border-right-color: #e2e8f0; }
|
|
75
|
-
html[data-theme="light"] .chat-header, html[data-theme="light"] .chat-input-container { background: #f8fafc; border-color: #e2e8f0; }
|
|
76
|
-
html[data-theme="light"] .chat-input-wrapper { background: #f1f5f9; border-color: #e2e8f0; }
|
|
77
|
-
html[data-theme="light"] .conversation-item:hover { background: #f8fafc; }
|
|
78
|
-
html[data-theme="light"] .conversation-item.active { background: rgba(0, 212, 255, 0.08); }
|
|
79
|
-
html[data-theme="light"] .message.received .message-bubble { background: #f1f5f9; color: #0f172a; }
|
|
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); }
|
|
71
|
+
html[data-theme="light"] .message.received .message-bubble { background: #fff; border: 1px solid #e2e8f0; color: #0f172a; }
|
|
72
|
+
html[data-theme="light"] .message.sent .message-bubble { background: var(--q-color-primary); color: #fff; }
|
|
80
73
|
@media (max-width: 768px) { .chat-app { grid-template-columns: 1fr; } .chat-sidebar { display: none; } .message { max-width: 85%; } }
|
|
81
74
|
</style>
|
|
82
75
|
</head>
|
|
@@ -91,15 +84,13 @@
|
|
|
91
84
|
</div>
|
|
92
85
|
<div class="user-info">
|
|
93
86
|
<div class="user-name">John Doe</div>
|
|
94
|
-
<div class="user-email" style="color: var(--text-muted, #64748b); font-size: 0.8125rem;">Online</div>
|
|
87
|
+
<div class="user-email" style="color: var(--q-text-muted, #64748b); font-size: 0.8125rem;">Online</div>
|
|
95
88
|
</div>
|
|
96
89
|
</div>
|
|
97
90
|
<div class="px-4 py-4 border-b border-white_5">
|
|
98
|
-
<div class="
|
|
99
|
-
<
|
|
100
|
-
|
|
101
|
-
</svg>
|
|
102
|
-
<input type="text" class="bg-transparent border-none w-full h-full pl-12 outline-none text-sm text-white" placeholder="Search conversations...">
|
|
91
|
+
<div class="search has-icon">
|
|
92
|
+
<i class="q-icon-search"></i>
|
|
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...">
|
|
103
94
|
</div>
|
|
104
95
|
</div>
|
|
105
96
|
</div>
|
|
@@ -158,8 +149,9 @@
|
|
|
158
149
|
</div>
|
|
159
150
|
<div class="theme-toggle-wrapper">
|
|
160
151
|
<button class="theme-btn" onclick="toggleTheme()">
|
|
161
|
-
<
|
|
162
|
-
<
|
|
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>
|
|
163
155
|
<span class="theme-label">Toggle Theme</span>
|
|
164
156
|
</button>
|
|
165
157
|
</div>
|
|
@@ -178,19 +170,13 @@
|
|
|
178
170
|
</div>
|
|
179
171
|
<div style="display: flex; gap: 0.5rem;">
|
|
180
172
|
<button class="icon-btn icon-btn-circle">
|
|
181
|
-
<
|
|
182
|
-
<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>
|
|
183
|
-
</svg>
|
|
173
|
+
<i class="q-icon-phone"></i>
|
|
184
174
|
</button>
|
|
185
175
|
<button class="icon-btn icon-btn-circle">
|
|
186
|
-
<
|
|
187
|
-
<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>
|
|
188
|
-
</svg>
|
|
176
|
+
<i class="q-icon-video"></i>
|
|
189
177
|
</button>
|
|
190
178
|
<button class="icon-btn icon-btn-circle">
|
|
191
|
-
<
|
|
192
|
-
<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>
|
|
193
|
-
</svg>
|
|
179
|
+
<i class="q-icon-more-vertical"></i>
|
|
194
180
|
</button>
|
|
195
181
|
</div>
|
|
196
182
|
</div>
|
|
@@ -228,31 +214,18 @@
|
|
|
228
214
|
<div class="chat-input-container">
|
|
229
215
|
<div class="chat-input-wrapper">
|
|
230
216
|
<button class="icon-btn icon-btn-circle">
|
|
231
|
-
<
|
|
232
|
-
<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>
|
|
233
|
-
</svg>
|
|
217
|
+
<i class="q-icon-smile"></i>
|
|
234
218
|
</button>
|
|
235
219
|
<input type="text" class="chat-input" placeholder="Type a message...">
|
|
236
220
|
<button class="icon-btn icon-btn-circle">
|
|
237
|
-
<
|
|
238
|
-
<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>
|
|
239
|
-
</svg>
|
|
221
|
+
<i class="q-icon-paperclip"></i>
|
|
240
222
|
</button>
|
|
241
223
|
<button class="send-btn">
|
|
242
|
-
<
|
|
243
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 19l9 2-9-18-9 18 9-2zm0 0v-8"></path>
|
|
244
|
-
</svg>
|
|
224
|
+
<i class="q-icon-send"></i>
|
|
245
225
|
</button>
|
|
246
226
|
</div>
|
|
247
227
|
</div>
|
|
248
228
|
</div>
|
|
249
229
|
</div>
|
|
250
|
-
<script>
|
|
251
|
-
document.addEventListener('DOMContentLoaded', () => {
|
|
252
|
-
if (typeof Starlight !== 'undefined') {
|
|
253
|
-
Starlight.initStars();
|
|
254
|
-
}
|
|
255
|
-
});
|
|
256
|
-
</script>
|
|
257
230
|
</body>
|
|
258
231
|
</html>
|