create-rue 0.0.1

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.
@@ -0,0 +1,433 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ font-family:
4
+ Inter,
5
+ ui-sans-serif,
6
+ system-ui,
7
+ -apple-system,
8
+ BlinkMacSystemFont,
9
+ 'Segoe UI',
10
+ sans-serif;
11
+ background:
12
+ radial-gradient(circle at top, rgba(124, 58, 237, 0.18), transparent 32%),
13
+ linear-gradient(180deg, #0f1220 0%, #090b14 100%);
14
+ color: #f4f7fb;
15
+ }
16
+
17
+ * {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ html,
22
+ body,
23
+ #app {
24
+ min-height: 100%;
25
+ margin: 0;
26
+ }
27
+
28
+ body {
29
+ background: transparent;
30
+ }
31
+
32
+ a {
33
+ color: inherit;
34
+ text-decoration: none;
35
+ }
36
+
37
+ pre,
38
+ code {
39
+ font-family:
40
+ 'SFMono-Regular',
41
+ ui-monospace,
42
+ 'Cascadia Code',
43
+ 'Source Code Pro',
44
+ Menlo,
45
+ monospace;
46
+ }
47
+
48
+ .site-frame {
49
+ min-height: 100vh;
50
+ }
51
+
52
+ .shell {
53
+ width: min(1120px, calc(100vw - 48px));
54
+ margin: 0 auto;
55
+ }
56
+
57
+ .site-header {
58
+ position: sticky;
59
+ top: 0;
60
+ z-index: 10;
61
+ backdrop-filter: blur(18px);
62
+ background: rgba(9, 11, 20, 0.65);
63
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
64
+ }
65
+
66
+ .header-inner,
67
+ .footer-inner {
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: space-between;
71
+ gap: 24px;
72
+ padding: 18px 0;
73
+ }
74
+
75
+ .brand {
76
+ display: inline-flex;
77
+ align-items: center;
78
+ gap: 14px;
79
+ }
80
+
81
+ .brand-mark {
82
+ display: inline-flex;
83
+ align-items: center;
84
+ justify-content: center;
85
+ width: 44px;
86
+ height: 44px;
87
+ border-radius: 14px;
88
+ background: linear-gradient(135deg, #7c3aed, #d946ef 55%, #ec4899);
89
+ color: white;
90
+ font-size: 24px;
91
+ font-weight: 800;
92
+ box-shadow: 0 16px 40px rgba(217, 70, 239, 0.28);
93
+ }
94
+
95
+ .brand-copy {
96
+ display: flex;
97
+ flex-direction: column;
98
+ gap: 3px;
99
+ }
100
+
101
+ .brand-title {
102
+ font-size: 18px;
103
+ font-weight: 700;
104
+ }
105
+
106
+ .brand-subtitle {
107
+ font-size: 12px;
108
+ color: rgba(244, 247, 251, 0.68);
109
+ }
110
+
111
+ .main-nav {
112
+ display: flex;
113
+ flex-wrap: wrap;
114
+ gap: 10px;
115
+ }
116
+
117
+ .nav-link {
118
+ padding: 10px 14px;
119
+ border-radius: 999px;
120
+ color: rgba(244, 247, 251, 0.72);
121
+ transition:
122
+ background-color 0.2s ease,
123
+ color 0.2s ease,
124
+ transform 0.2s ease;
125
+ }
126
+
127
+ .nav-link:hover,
128
+ .nav-link.is-active {
129
+ color: white;
130
+ background: rgba(255, 255, 255, 0.08);
131
+ transform: translateY(-1px);
132
+ }
133
+
134
+ .site-main {
135
+ padding: 48px 0 72px;
136
+ }
137
+
138
+ .page-stack {
139
+ display: flex;
140
+ flex-direction: column;
141
+ gap: 28px;
142
+ }
143
+
144
+ .hero-card,
145
+ .split-card,
146
+ .content-card,
147
+ .table-card,
148
+ .info-card {
149
+ border: 1px solid rgba(255, 255, 255, 0.08);
150
+ background: rgba(255, 255, 255, 0.04);
151
+ box-shadow: 0 20px 70px rgba(0, 0, 0, 0.25);
152
+ }
153
+
154
+ .hero-card,
155
+ .split-card,
156
+ .content-card {
157
+ border-radius: 28px;
158
+ }
159
+
160
+ .hero-card {
161
+ display: grid;
162
+ grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
163
+ gap: 28px;
164
+ padding: 36px;
165
+ }
166
+
167
+ .hero-copy h1,
168
+ .content-card h1,
169
+ .split-card h2 {
170
+ margin: 0;
171
+ line-height: 1.05;
172
+ }
173
+
174
+ .hero-copy h1 {
175
+ font-size: clamp(34px, 6vw, 60px);
176
+ max-width: 11ch;
177
+ }
178
+
179
+ .hero-text,
180
+ .content-card p,
181
+ .info-card p,
182
+ .split-card p,
183
+ .footer-copy {
184
+ color: rgba(244, 247, 251, 0.72);
185
+ line-height: 1.75;
186
+ }
187
+
188
+ .eyebrow,
189
+ .section-tag {
190
+ display: inline-flex;
191
+ align-items: center;
192
+ padding: 8px 12px;
193
+ border-radius: 999px;
194
+ font-size: 12px;
195
+ font-weight: 700;
196
+ letter-spacing: 0.08em;
197
+ text-transform: uppercase;
198
+ color: #f5d0fe;
199
+ background: rgba(217, 70, 239, 0.14);
200
+ border: 1px solid rgba(217, 70, 239, 0.28);
201
+ }
202
+
203
+ .hero-actions {
204
+ display: flex;
205
+ flex-wrap: wrap;
206
+ gap: 12px;
207
+ margin-top: 24px;
208
+ }
209
+
210
+ .button {
211
+ display: inline-flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ min-height: 44px;
215
+ padding: 0 18px;
216
+ border-radius: 999px;
217
+ font-weight: 700;
218
+ transition:
219
+ transform 0.2s ease,
220
+ background-color 0.2s ease,
221
+ border-color 0.2s ease;
222
+ }
223
+
224
+ .button:hover {
225
+ transform: translateY(-1px);
226
+ }
227
+
228
+ .button.primary {
229
+ color: white;
230
+ background: linear-gradient(135deg, #7c3aed, #d946ef 55%, #ec4899);
231
+ }
232
+
233
+ .button.secondary {
234
+ border: 1px solid rgba(255, 255, 255, 0.14);
235
+ background: rgba(255, 255, 255, 0.04);
236
+ }
237
+
238
+ .hero-panel,
239
+ .content-card,
240
+ .split-card {
241
+ padding: 28px;
242
+ }
243
+
244
+ .panel-title {
245
+ font-size: 14px;
246
+ font-weight: 700;
247
+ margin-bottom: 12px;
248
+ color: #f5d0fe;
249
+ }
250
+
251
+ .code-block {
252
+ margin: 0;
253
+ padding: 18px;
254
+ overflow: auto;
255
+ border-radius: 20px;
256
+ background: rgba(5, 7, 15, 0.82);
257
+ border: 1px solid rgba(255, 255, 255, 0.08);
258
+ color: #dbeafe;
259
+ line-height: 1.7;
260
+ }
261
+
262
+ .grid-cards {
263
+ display: grid;
264
+ grid-template-columns: repeat(3, minmax(0, 1fr));
265
+ gap: 20px;
266
+ }
267
+
268
+ .info-card {
269
+ padding: 24px;
270
+ border-radius: 24px;
271
+ }
272
+
273
+ .info-card h2,
274
+ .content-card h2 {
275
+ margin-top: 0;
276
+ margin-bottom: 10px;
277
+ }
278
+
279
+ .split-card {
280
+ display: grid;
281
+ grid-template-columns: minmax(0, 1fr) auto;
282
+ gap: 24px;
283
+ align-items: center;
284
+ }
285
+
286
+ .package-list {
287
+ display: flex;
288
+ flex-wrap: wrap;
289
+ gap: 12px;
290
+ justify-content: flex-end;
291
+ }
292
+
293
+ .package-pill,
294
+ .footer-meta span {
295
+ display: inline-flex;
296
+ align-items: center;
297
+ padding: 10px 14px;
298
+ border-radius: 999px;
299
+ background: rgba(255, 255, 255, 0.06);
300
+ border: 1px solid rgba(255, 255, 255, 0.08);
301
+ color: #dbeafe;
302
+ }
303
+
304
+ .step-list {
305
+ display: grid;
306
+ gap: 14px;
307
+ }
308
+
309
+ .step-item {
310
+ display: grid;
311
+ grid-template-columns: 56px minmax(0, 1fr);
312
+ gap: 16px;
313
+ align-items: start;
314
+ padding: 18px;
315
+ border-radius: 20px;
316
+ background: rgba(255, 255, 255, 0.04);
317
+ border: 1px solid rgba(255, 255, 255, 0.08);
318
+ }
319
+
320
+ .step-item p {
321
+ margin: 0;
322
+ }
323
+
324
+ .step-index {
325
+ display: inline-flex;
326
+ align-items: center;
327
+ justify-content: center;
328
+ width: 56px;
329
+ height: 56px;
330
+ border-radius: 18px;
331
+ font-weight: 800;
332
+ color: white;
333
+ background: linear-gradient(135deg, #7c3aed, #d946ef 55%, #ec4899);
334
+ }
335
+
336
+ .table-card {
337
+ overflow: hidden;
338
+ border-radius: 24px;
339
+ }
340
+
341
+ .table-head,
342
+ .table-row {
343
+ display: grid;
344
+ grid-template-columns: minmax(180px, 0.9fr) minmax(120px, 0.7fr) minmax(0, 1.4fr);
345
+ gap: 16px;
346
+ padding: 18px 22px;
347
+ }
348
+
349
+ .table-head {
350
+ font-size: 13px;
351
+ font-weight: 700;
352
+ letter-spacing: 0.04em;
353
+ text-transform: uppercase;
354
+ color: #f5d0fe;
355
+ background: rgba(255, 255, 255, 0.05);
356
+ }
357
+
358
+ .table-row + .table-row {
359
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
360
+ }
361
+
362
+ .cell-name {
363
+ font-weight: 700;
364
+ color: #e9d5ff;
365
+ }
366
+
367
+ .bullet-list {
368
+ margin: 0;
369
+ padding-left: 18px;
370
+ color: rgba(244, 247, 251, 0.72);
371
+ line-height: 1.9;
372
+ }
373
+
374
+ .site-footer {
375
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
376
+ background: rgba(255, 255, 255, 0.02);
377
+ }
378
+
379
+ .footer-title {
380
+ font-size: 18px;
381
+ font-weight: 700;
382
+ margin-bottom: 8px;
383
+ }
384
+
385
+ .footer-meta {
386
+ display: flex;
387
+ flex-wrap: wrap;
388
+ gap: 10px;
389
+ justify-content: flex-end;
390
+ }
391
+
392
+ @media (max-width: 900px) {
393
+ .header-inner,
394
+ .footer-inner,
395
+ .hero-card,
396
+ .split-card,
397
+ .grid-cards {
398
+ grid-template-columns: 1fr;
399
+ flex-direction: column;
400
+ align-items: flex-start;
401
+ }
402
+
403
+ .main-nav,
404
+ .footer-meta,
405
+ .package-list {
406
+ justify-content: flex-start;
407
+ }
408
+
409
+ .table-head,
410
+ .table-row {
411
+ grid-template-columns: 1fr;
412
+ }
413
+ }
414
+
415
+ @media (max-width: 640px) {
416
+ .shell {
417
+ width: min(1120px, calc(100vw - 28px));
418
+ }
419
+
420
+ .site-main {
421
+ padding-top: 28px;
422
+ }
423
+
424
+ .hero-card,
425
+ .content-card,
426
+ .split-card {
427
+ padding: 22px;
428
+ }
429
+
430
+ .brand-subtitle {
431
+ display: none;
432
+ }
433
+ }
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}', './app/**/*.{js,ts,jsx,tsx}'],
3
+ theme: {
4
+ extend: {},
5
+ },
6
+ plugins: [require('@tailwindcss/typography')],
7
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "ESNext",
5
+ "lib": ["DOM", "DOM.Iterable", "ES2020"],
6
+ "strict": true,
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "bundler",
9
+ "allowSyntheticDefaultImports": true,
10
+ "esModuleInterop": true,
11
+ "resolveJsonModule": true,
12
+ "isolatedModules": true,
13
+ "noEmit": false,
14
+ "types": ["vite/client", "@rue-js/rue/jsx", "node"],
15
+ "jsx": "react-jsx",
16
+ "jsxImportSource": "@rue-js",
17
+ "declaration": true,
18
+ "outDir": "./dist",
19
+ "baseUrl": ".",
20
+ },
21
+ "include": ["app/**/*.ts", "app/**/*.tsx", "app/**/*.d.ts", "vite.config.ts"]
22
+ }
@@ -0,0 +1,18 @@
1
+ import { defineConfig } from 'vite'
2
+ import VitePluginRue from '@rue-js/vite-plugin-rue'
3
+ import wasm from 'vite-plugin-wasm'
4
+ import tailwindcss from '@tailwindcss/vite'
5
+
6
+ export default defineConfig({
7
+ resolve: {
8
+ conditions: ['import', 'module', 'browser', 'default'],
9
+ },
10
+ plugins: [
11
+ wasm(),
12
+ tailwindcss() as any,
13
+ VitePluginRue({
14
+ include: ['/app/'],
15
+ debug: true,
16
+ }),
17
+ ],
18
+ })