@mar7th/firework 1.0.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/src/pages.css ADDED
@@ -0,0 +1,388 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ --bg: #170d17;
4
+ --panel: rgba(54, 24, 31, 0.84);
5
+ --panel-strong: rgba(67, 27, 31, 0.94);
6
+ --line: rgba(255, 216, 138, 0.22);
7
+ --text: #fff9e8;
8
+ --muted: #f2cfa4;
9
+ --accent: #ffbf4d;
10
+ --accent-2: #ff5a3c;
11
+ --accent-3: #63d6d1;
12
+ --danger: #ff6d7a;
13
+ font-family:
14
+ Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
15
+ "Microsoft YaHei", sans-serif;
16
+ }
17
+
18
+ * {
19
+ box-sizing: border-box;
20
+ }
21
+
22
+ html {
23
+ min-height: 100%;
24
+ background: var(--bg);
25
+ }
26
+
27
+ body {
28
+ min-height: 100%;
29
+ margin: 0;
30
+ background:
31
+ radial-gradient(circle at 18% 12%, rgba(255, 191, 77, 0.2), transparent 28rem),
32
+ radial-gradient(circle at 86% 18%, rgba(255, 90, 60, 0.18), transparent 24rem),
33
+ radial-gradient(circle at 58% 76%, rgba(99, 214, 209, 0.11), transparent 24rem),
34
+ linear-gradient(180deg, #171025 0%, #321622 50%, #160c16 100%);
35
+ color: var(--text);
36
+ }
37
+
38
+ body::before {
39
+ position: fixed;
40
+ inset: 0;
41
+ pointer-events: none;
42
+ background-image:
43
+ radial-gradient(circle, rgba(255, 244, 190, 0.16) 0 1px, transparent 1.5px),
44
+ linear-gradient(120deg, transparent 0 46%, rgba(255, 191, 77, 0.07) 47% 49%, transparent 50%),
45
+ linear-gradient(60deg, transparent 0 48%, rgba(255, 90, 60, 0.055) 49% 51%, transparent 52%);
46
+ background-position: 0 0, 0 0, 24px 12px;
47
+ background-size: 38px 38px, 140px 140px, 140px 140px;
48
+ content: "";
49
+ mix-blend-mode: screen;
50
+ }
51
+
52
+ a {
53
+ color: inherit;
54
+ }
55
+
56
+ .site-shell {
57
+ position: relative;
58
+ width: min(1120px, calc(100% - 32px));
59
+ margin: 0 auto;
60
+ padding: 22px 0 56px;
61
+ }
62
+
63
+ .home-shell {
64
+ width: 100%;
65
+ height: 100vh;
66
+ height: 100svh;
67
+ display: flex;
68
+ flex-direction: column;
69
+ overflow: hidden;
70
+ padding: 22px 16px;
71
+ }
72
+
73
+ .site-nav {
74
+ display: flex;
75
+ align-items: center;
76
+ justify-content: space-between;
77
+ gap: 18px;
78
+ padding: 12px 0;
79
+ }
80
+
81
+ .brand {
82
+ font-size: 18px;
83
+ font-weight: 800;
84
+ text-decoration: none;
85
+ color: #fff4c7;
86
+ text-shadow: 0 0 18px rgba(255, 191, 77, 0.25);
87
+ }
88
+
89
+ .nav-links {
90
+ display: flex;
91
+ flex-wrap: wrap;
92
+ gap: 8px;
93
+ }
94
+
95
+ .nav-links a,
96
+ .button-link {
97
+ min-height: 34px;
98
+ display: inline-flex;
99
+ align-items: center;
100
+ justify-content: center;
101
+ border: 1px solid var(--line);
102
+ border-radius: 6px;
103
+ padding: 0 12px;
104
+ background:
105
+ linear-gradient(180deg, rgba(255, 242, 208, 0.12), rgba(255, 139, 69, 0.08)),
106
+ rgba(67, 27, 31, 0.74);
107
+ color: var(--text);
108
+ text-decoration: none;
109
+ }
110
+
111
+ .nav-links a:hover,
112
+ .button-link:hover {
113
+ border-color: rgba(255, 191, 77, 0.78);
114
+ background:
115
+ linear-gradient(180deg, rgba(255, 191, 77, 0.2), rgba(255, 90, 60, 0.14)),
116
+ rgba(84, 30, 28, 0.84);
117
+ }
118
+
119
+ .button-link.primary {
120
+ border-color: rgba(255, 214, 102, 0.9);
121
+ background: linear-gradient(180deg, rgba(255, 194, 77, 0.34), rgba(255, 90, 60, 0.24));
122
+ }
123
+
124
+ .hero {
125
+ min-height: calc(100vh - 120px);
126
+ display: grid;
127
+ grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
128
+ gap: 32px;
129
+ align-items: center;
130
+ padding: 28px 0 64px;
131
+ }
132
+
133
+ .home-hero {
134
+ position: relative;
135
+ flex: 1;
136
+ min-height: 0;
137
+ display: flex;
138
+ align-items: center;
139
+ padding: 0;
140
+ }
141
+
142
+ .hero-content {
143
+ position: relative;
144
+ z-index: 2;
145
+ width: min(760px, calc(100% - 32px));
146
+ margin-left: clamp(0px, 7vw, 96px);
147
+ padding: 28px;
148
+ border: 1px solid rgba(255, 216, 138, 0.18);
149
+ border-radius: 8px;
150
+ background:
151
+ linear-gradient(90deg, rgba(32, 14, 24, 0.86), rgba(44, 17, 25, 0.58)),
152
+ rgba(24, 12, 20, 0.62);
153
+ box-shadow: 0 24px 70px rgba(26, 8, 15, 0.42);
154
+ backdrop-filter: blur(10px);
155
+ }
156
+
157
+ .hero h1,
158
+ .page-title h1 {
159
+ margin: 0;
160
+ font-size: clamp(42px, 7vw, 86px);
161
+ line-height: 0.98;
162
+ letter-spacing: 0;
163
+ color: #fff4c7;
164
+ text-shadow:
165
+ 0 0 20px rgba(255, 191, 77, 0.24),
166
+ 0 0 42px rgba(255, 90, 60, 0.16);
167
+ }
168
+
169
+ .hero p,
170
+ .page-title p {
171
+ max-width: 720px;
172
+ margin: 18px 0 0;
173
+ color: var(--muted);
174
+ font-size: 17px;
175
+ line-height: 1.7;
176
+ }
177
+
178
+ .hero-actions {
179
+ display: flex;
180
+ flex-wrap: wrap;
181
+ gap: 10px;
182
+ margin-top: 26px;
183
+ }
184
+
185
+ .yoimiya-note {
186
+ position: relative;
187
+ margin-top: 22px;
188
+ padding: 16px 18px;
189
+ border: 1px dashed rgba(150, 70, 38, 0.42);
190
+ border-radius: 8px;
191
+ background:
192
+ linear-gradient(135deg, rgba(255, 255, 255, 0.36), transparent 36%),
193
+ repeating-linear-gradient(0deg, transparent 0 27px, rgba(150, 70, 38, 0.07) 28px),
194
+ #fff0c6;
195
+ color: #4a1f1d;
196
+ box-shadow:
197
+ 0 16px 38px rgba(37, 13, 15, 0.28),
198
+ inset 0 0 0 3px rgba(255, 180, 84, 0.12);
199
+ transform: rotate(-0.6deg);
200
+ }
201
+
202
+ .yoimiya-note::before {
203
+ position: absolute;
204
+ top: -11px;
205
+ right: 18px;
206
+ width: 74px;
207
+ height: 22px;
208
+ border-radius: 3px;
209
+ background: rgba(255, 90, 60, 0.66);
210
+ box-shadow: 0 4px 12px rgba(70, 18, 18, 0.22);
211
+ content: "";
212
+ transform: rotate(3deg);
213
+ }
214
+
215
+ .yoimiya-note h2 {
216
+ margin: 0 0 8px;
217
+ color: #b53424;
218
+ font-size: 16px;
219
+ }
220
+
221
+ .yoimiya-note p {
222
+ margin: 8px 0 0;
223
+ color: #5d2a1f;
224
+ font-size: 14px;
225
+ line-height: 1.72;
226
+ }
227
+
228
+ .hero-preview {
229
+ min-height: 440px;
230
+ border: 1px solid var(--line);
231
+ border-radius: 8px;
232
+ overflow: hidden;
233
+ background:
234
+ radial-gradient(circle at 20% 10%, rgba(255, 191, 77, 0.16), transparent 18rem),
235
+ #130e22;
236
+ box-shadow:
237
+ 0 22px 60px rgba(46, 14, 20, 0.36),
238
+ inset 0 1px 0 rgba(255, 242, 208, 0.08);
239
+ }
240
+
241
+ .home-hero .hero-preview {
242
+ position: absolute;
243
+ inset: 0;
244
+ min-height: 0;
245
+ border: 0;
246
+ border-radius: 0;
247
+ box-shadow: none;
248
+ }
249
+
250
+ .hero-preview iframe {
251
+ width: 100%;
252
+ height: 440px;
253
+ display: block;
254
+ border: 0;
255
+ }
256
+
257
+ .home-hero .hero-preview iframe {
258
+ height: 100%;
259
+ }
260
+
261
+ .home-hero::after {
262
+ position: absolute;
263
+ inset: 0;
264
+ z-index: 1;
265
+ pointer-events: none;
266
+ background:
267
+ linear-gradient(90deg, rgba(20, 9, 18, 0.88) 0%, rgba(30, 12, 20, 0.45) 45%, rgba(20, 9, 18, 0.16) 100%),
268
+ radial-gradient(circle at 26% 42%, rgba(255, 191, 77, 0.12), transparent 28rem);
269
+ content: "";
270
+ }
271
+
272
+ .page-title {
273
+ padding: 52px 0 24px;
274
+ }
275
+
276
+ .content-grid {
277
+ display: grid;
278
+ grid-template-columns: repeat(2, minmax(0, 1fr));
279
+ gap: 14px;
280
+ margin-top: 24px;
281
+ }
282
+
283
+ .card,
284
+ .doc-section {
285
+ border: 1px solid var(--line);
286
+ border-radius: 8px;
287
+ background:
288
+ linear-gradient(180deg, rgba(255, 242, 208, 0.07), rgba(255, 139, 69, 0.045)),
289
+ var(--panel);
290
+ box-shadow: inset 0 1px 0 rgba(255, 242, 208, 0.07);
291
+ }
292
+
293
+ .card {
294
+ padding: 18px;
295
+ }
296
+
297
+ .card h2,
298
+ .doc-section h2 {
299
+ margin: 0;
300
+ font-size: 20px;
301
+ color: #fff0bf;
302
+ }
303
+
304
+ .card p,
305
+ .doc-section p,
306
+ .doc-section li {
307
+ color: var(--muted);
308
+ line-height: 1.65;
309
+ }
310
+
311
+ .doc-section {
312
+ margin-top: 14px;
313
+ padding: 22px;
314
+ }
315
+
316
+ .doc-section h3 {
317
+ margin: 18px 0 8px;
318
+ font-size: 16px;
319
+ }
320
+
321
+ .doc-section ul,
322
+ .doc-section ol {
323
+ padding-left: 22px;
324
+ }
325
+
326
+ .download-row {
327
+ display: grid;
328
+ grid-template-columns: minmax(0, 1fr) auto;
329
+ gap: 12px;
330
+ align-items: center;
331
+ border-top: 1px solid var(--line);
332
+ padding: 14px 0;
333
+ }
334
+
335
+ .download-row:first-of-type {
336
+ border-top: 0;
337
+ }
338
+
339
+ pre {
340
+ overflow: auto;
341
+ border: 1px solid var(--line);
342
+ border-radius: 8px;
343
+ padding: 14px;
344
+ background: rgba(37, 17, 25, 0.78);
345
+ color: #fff2d0;
346
+ line-height: 1.55;
347
+ }
348
+
349
+ code {
350
+ font-family: "Cascadia Code", "Fira Code", Consolas, monospace;
351
+ font-size: 0.92em;
352
+ }
353
+
354
+ .note {
355
+ border-left: 3px solid var(--accent-2);
356
+ padding-left: 12px;
357
+ color: #ffe8bd;
358
+ }
359
+
360
+ @media (max-width: 820px) {
361
+ .site-nav,
362
+ .hero {
363
+ grid-template-columns: 1fr;
364
+ }
365
+
366
+ .site-nav {
367
+ align-items: flex-start;
368
+ flex-direction: column;
369
+ }
370
+
371
+ .hero {
372
+ min-height: auto;
373
+ }
374
+
375
+ .hero-content {
376
+ width: 100%;
377
+ margin: 0;
378
+ padding: 22px;
379
+ }
380
+
381
+ .content-grid {
382
+ grid-template-columns: 1fr;
383
+ }
384
+
385
+ .download-row {
386
+ grid-template-columns: 1fr;
387
+ }
388
+ }
package/src/pages.js ADDED
@@ -0,0 +1 @@
1
+ import "./pages.css";
package/src/plugin.js ADDED
@@ -0,0 +1,9 @@
1
+ export {
2
+ FireworksSimulator,
3
+ builtInPresets,
4
+ create as createFireworks,
5
+ default,
6
+ defaultConfig,
7
+ init,
8
+ sanitizeConfig
9
+ } from "./app.js";