@donotdev/cli 0.0.19 → 0.0.20
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/dependencies-matrix.json +135 -47
- package/dist/bin/commands/bump.js +5 -2
- package/dist/bin/commands/create-app.js +1 -1
- package/dist/bin/commands/create-project.js +13 -2
- package/dist/bin/commands/deploy.js +18 -0
- package/dist/bin/commands/setup.js +3 -0
- package/dist/bin/commands/staging.js +18 -0
- package/dist/bin/commands/type-check.js +10 -4
- package/dist/bin/dndev.js +120 -179
- package/dist/bin/donotdev.js +120 -179
- package/dist/index.js +31 -2
- package/package.json +1 -1
- package/templates/app-demo/public/apple-touch-icon.png.example +0 -0
- package/templates/app-demo/public/favicon.svg.example +1 -0
- package/templates/app-demo/public/icon-192x192.png.example +0 -0
- package/templates/app-demo/public/icon-512x512.png.example +0 -0
- package/templates/app-demo/src/App.tsx.example +3 -1
- package/templates/app-demo/src/config/app.ts.example +1 -0
- package/templates/app-demo/src/entities/booking.ts.example +75 -0
- package/templates/app-demo/src/entities/onboarding.ts.example +160 -0
- package/templates/app-demo/src/entities/product.ts.example +12 -0
- package/templates/app-demo/src/entities/quote.ts.example +70 -0
- package/templates/app-demo/src/pages/ChangelogPage.tsx.example +28 -1
- package/templates/app-demo/src/pages/ConditionalFormPage.tsx.example +88 -0
- package/templates/app-demo/src/pages/DashboardPage.tsx.example +2 -0
- package/templates/app-demo/src/pages/HomePage.tsx.example +355 -2
- package/templates/app-demo/src/pages/OnboardingPage.tsx.example +47 -0
- package/templates/app-demo/src/pages/PricingPage.tsx.example +28 -1
- package/templates/app-demo/src/pages/ProductsPage.tsx.example +2 -0
- package/templates/app-demo/src/pages/ProfilePage.tsx.example +2 -0
- package/templates/app-demo/src/pages/SettingsPage.tsx.example +2 -0
- package/templates/app-demo/src/pages/ShowcaseDetailPage.tsx.example +22 -16
- package/templates/app-demo/src/pages/ShowcasePage.tsx.example +3 -1
- package/templates/app-demo/src/pages/components/ComponentRenderer.tsx.example +147 -51
- package/templates/app-demo/src/pages/components/ComponentsData.tsx.example +103 -21
- package/templates/app-demo/src/pages/components/componentConfig.ts.example +139 -59
- package/templates/app-demo/src/pages/legal/LegalPage.tsx.example +12 -1
- package/templates/app-demo/src/pages/legal/PrivacyPage.tsx.example +10 -1
- package/templates/app-demo/src/pages/legal/TermsPage.tsx.example +10 -1
- package/templates/app-demo/src/themes.css.example +289 -77
- package/templates/app-demo/stats.html.example +4949 -0
- package/templates/app-next/src/locales/home_en.json.example +6 -6
- package/templates/app-vite/src/locales/home_en.json.example +6 -6
- package/templates/root-consumer/guides/dndev/advanced/COOKIE_REFERENCE.md.example +252 -252
- package/templates/root-consumer/guides/dndev/advanced/VERSION_CONTROL.md.example +174 -174
|
@@ -1,82 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
* src/themes.css — SSOT for essence and theme variables. Default = SaaS. Optional .brutalist / .luxury: set class on <html>.
|
|
3
|
-
*/
|
|
4
|
-
/* src/themes.css */
|
|
1
|
+
/* apps/demo/src/themes.css */
|
|
5
2
|
|
|
6
3
|
/* ===========================
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
=========================== */
|
|
10
|
-
:root {
|
|
11
|
-
/* Routing animations (fade | slide | none) */
|
|
12
|
-
/* --routing-animation: fade; */
|
|
13
|
-
/* --routing-default-duration: var(--dur-normal); */
|
|
14
|
-
|
|
15
|
-
/* Spacing scale */
|
|
16
|
-
/* --gap-sm: 0.5rem; */
|
|
17
|
-
/* --gap-md: 1rem; */
|
|
18
|
-
/* --gap-lg: 2rem; */
|
|
19
|
-
|
|
20
|
-
/* Border radius */
|
|
21
|
-
/* --radius-interactive: var(--radius-none); */
|
|
22
|
-
/* --radius-surface: var(--radius-md); */
|
|
23
|
-
/* --radius-floating: var(--radius-none); */
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/* ===========================
|
|
27
|
-
LIGHT THEME
|
|
28
|
-
Zinc-based neutral palette
|
|
4
|
+
SaaS (default)
|
|
5
|
+
Dark zinc palette — class .light
|
|
29
6
|
=========================== */
|
|
30
7
|
:root.light {
|
|
31
|
-
--theme-icon: 'Sun';
|
|
32
|
-
--theme-label: 'Light';
|
|
33
|
-
--theme-is-dark: 0;
|
|
34
|
-
|
|
35
|
-
/* Core colors */
|
|
36
|
-
--background: #ffffff;
|
|
37
|
-
--foreground: #09090b;
|
|
38
|
-
|
|
39
|
-
/* Surfaces */
|
|
40
|
-
--card: #ffffff;
|
|
41
|
-
--card-foreground: #09090b;
|
|
42
|
-
--popover: #ffffff;
|
|
43
|
-
--popover-foreground: #09090b;
|
|
44
|
-
|
|
45
|
-
/* Muted (zinc-100 / zinc-500) */
|
|
46
|
-
--muted: #f4f4f5;
|
|
47
|
-
--muted-foreground: #71717a;
|
|
48
|
-
|
|
49
|
-
/* Border & input (zinc-200) */
|
|
50
|
-
--border: #e4e4e7;
|
|
51
|
-
--input: #e4e4e7;
|
|
52
|
-
--ring: var(--primary);
|
|
53
|
-
|
|
54
|
-
/* Brand colors - customize these */
|
|
55
|
-
--primary: #0284c7;
|
|
56
|
-
--primary-foreground: #ffffff;
|
|
57
|
-
|
|
58
|
-
--secondary: #f4f4f5;
|
|
59
|
-
--secondary-foreground: #18181b;
|
|
60
|
-
|
|
61
|
-
--accent: #ea580c;
|
|
62
|
-
--accent-foreground: #ffffff;
|
|
63
|
-
|
|
64
|
-
/* Status colors */
|
|
65
|
-
--destructive: #dc2626;
|
|
66
|
-
--destructive-foreground: #ffffff;
|
|
67
|
-
--success: #16a34a;
|
|
68
|
-
--success-foreground: #ffffff;
|
|
69
|
-
--warning: #f59e0b;
|
|
70
|
-
--warning-foreground: #09090b;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/* ===========================
|
|
74
|
-
DARK THEME
|
|
75
|
-
Zinc-based dark palette
|
|
76
|
-
=========================== */
|
|
77
|
-
:root.dark {
|
|
78
8
|
--theme-icon: 'Moon';
|
|
79
|
-
--theme-label: '
|
|
9
|
+
--theme-label: 'SaaS';
|
|
80
10
|
--theme-is-dark: 1;
|
|
81
11
|
|
|
82
12
|
/* Core colors */
|
|
@@ -98,7 +28,7 @@
|
|
|
98
28
|
--input: #27272a;
|
|
99
29
|
--ring: var(--primary);
|
|
100
30
|
|
|
101
|
-
/* Brand colors
|
|
31
|
+
/* Brand colors */
|
|
102
32
|
--primary: #0ea5e9;
|
|
103
33
|
--primary-foreground: #ffffff;
|
|
104
34
|
|
|
@@ -117,8 +47,290 @@
|
|
|
117
47
|
--warning-foreground: #09090b;
|
|
118
48
|
}
|
|
119
49
|
|
|
120
|
-
/*
|
|
50
|
+
/* ===========================
|
|
51
|
+
BRUTALIST — class .dark
|
|
52
|
+
Industrial, monospace body, Space Grotesk headlines, orange/black.
|
|
53
|
+
=========================== */
|
|
54
|
+
:root.dark {
|
|
55
|
+
--theme-icon: 'Construction';
|
|
56
|
+
--theme-label: 'Brutalist';
|
|
57
|
+
--theme-is-dark: 1;
|
|
58
|
+
|
|
59
|
+
/* 1. Core Colors - Black + white + industrial orange */
|
|
60
|
+
--background: #000000;
|
|
61
|
+
--foreground: #ffffff;
|
|
62
|
+
--primary: #f97316;
|
|
63
|
+
--secondary: #ffffff;
|
|
64
|
+
--accent: #f97316;
|
|
65
|
+
|
|
66
|
+
/* 2. Semantic */
|
|
67
|
+
--success: #22c55e;
|
|
68
|
+
--warning: #f97316;
|
|
69
|
+
--destructive: #dc2626;
|
|
70
|
+
|
|
71
|
+
/* 3. Surfaces - Dark, industrial */
|
|
72
|
+
--muted: #111111;
|
|
73
|
+
--muted-foreground: #888888;
|
|
74
|
+
--border: #ffffff;
|
|
75
|
+
--input: #111111;
|
|
76
|
+
--ring: #f97316;
|
|
77
|
+
--card: #000000;
|
|
78
|
+
--card-foreground: #f97316;
|
|
79
|
+
--popover: #000000;
|
|
80
|
+
--popover-foreground: #ffffff;
|
|
81
|
+
--surface-1: #0a0a0a;
|
|
82
|
+
|
|
83
|
+
/* 4. Text on Colors */
|
|
84
|
+
--primary-foreground: #ffffff;
|
|
85
|
+
--secondary-foreground: #000000;
|
|
86
|
+
--accent-foreground: #000000;
|
|
87
|
+
--success-foreground: #ffffff;
|
|
88
|
+
--warning-foreground: #000000;
|
|
89
|
+
--destructive-foreground: #ffffff;
|
|
90
|
+
|
|
91
|
+
/* 5. Radius - Hard zero */
|
|
92
|
+
--radius-interactive: 0;
|
|
93
|
+
--radius-surface: 0;
|
|
94
|
+
--radius-floating: 0;
|
|
95
|
+
|
|
96
|
+
/* 6. Typography - Monospace for body, Space Grotesk 700 for headings */
|
|
97
|
+
--font-family: var(--font-mono);
|
|
98
|
+
--font-headline: 'Space Grotesk', var(--font-sans);
|
|
99
|
+
--font-weight-semibold: 700;
|
|
100
|
+
--font-weight-bold: 700;
|
|
101
|
+
|
|
102
|
+
/* 7. Borders */
|
|
103
|
+
--border-width: 2px;
|
|
104
|
+
--border-huge: 4px;
|
|
105
|
+
|
|
106
|
+
/* 8. Shadows — flat by default, hard offset on interactive */
|
|
107
|
+
--shadow-color: var(--foreground);
|
|
108
|
+
--shadow-sm: none;
|
|
109
|
+
--shadow-md: none;
|
|
110
|
+
--shadow-xl: 8px 8px 0px 0px var(--shadow-color);
|
|
111
|
+
--shadow-cta: 20px 20px 0px 0px var(--shadow-color);
|
|
112
|
+
|
|
113
|
+
/* 9. Per-variant shadows — only at xl level (elevated/clickable) */
|
|
114
|
+
--shadow-primary: none;
|
|
115
|
+
--shadow-primary-xl: 8px 8px 0px 0px var(--background);
|
|
116
|
+
--shadow-secondary: none;
|
|
117
|
+
--shadow-secondary-xl: 8px 8px 0px 0px var(--primary);
|
|
118
|
+
|
|
119
|
+
/* 10. Header padding for hard-offset shadows */
|
|
120
|
+
--header-shadow-padding: 0.75rem;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* Body - grid background */
|
|
124
|
+
.dark body {
|
|
125
|
+
background-color: var(--background);
|
|
126
|
+
background-image:
|
|
127
|
+
linear-gradient(#111 1px, transparent 1px),
|
|
128
|
+
linear-gradient(90deg, #111 1px, transparent 1px);
|
|
129
|
+
background-size: 40px 40px;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* Uppercase headings */
|
|
133
|
+
.dark {
|
|
134
|
+
:is(h1, h2, h3, h4, h5, h6),
|
|
135
|
+
[data-level^='h'] {
|
|
136
|
+
text-transform: uppercase;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* Flat surface - no gradient glow */
|
|
141
|
+
.dark .dndev-surface {
|
|
142
|
+
background: var(--card);
|
|
143
|
+
}
|
|
144
|
+
.dark .dndev-surface[data-variant='outline'] {
|
|
145
|
+
border: var(--border-width) solid var(--border);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.dark .dndev-card[data-variant='outline'] {
|
|
149
|
+
background: transparent;
|
|
150
|
+
box-shadow: none;
|
|
151
|
+
}
|
|
121
152
|
|
|
122
153
|
/* ===========================
|
|
123
|
-
|
|
154
|
+
LUXURY
|
|
155
|
+
Playfair Display headlines, gold/cream, warm shadows.
|
|
124
156
|
=========================== */
|
|
157
|
+
.luxury {
|
|
158
|
+
--theme-icon: 'Gem';
|
|
159
|
+
--theme-label: 'Luxury';
|
|
160
|
+
--theme-is-dark: 0;
|
|
161
|
+
|
|
162
|
+
/* 1. Core Colors */
|
|
163
|
+
--background: #faf8f5;
|
|
164
|
+
--foreground: #1c1917;
|
|
165
|
+
--primary: #b45309;
|
|
166
|
+
--secondary: #fef3c7;
|
|
167
|
+
--accent: #92400e;
|
|
168
|
+
|
|
169
|
+
/* 2. Semantic */
|
|
170
|
+
--success: #15803d;
|
|
171
|
+
--warning: #b45309;
|
|
172
|
+
--destructive: #b91c1c;
|
|
173
|
+
|
|
174
|
+
/* 3. Surfaces */
|
|
175
|
+
--muted: #fef9c3;
|
|
176
|
+
--muted-foreground: #78716c;
|
|
177
|
+
--border: #e7e5e4;
|
|
178
|
+
--border-hairline: 1px;
|
|
179
|
+
--input: #ffffff;
|
|
180
|
+
--ring: #b45309;
|
|
181
|
+
--card: #ffffff;
|
|
182
|
+
--card-foreground: #1c1917;
|
|
183
|
+
--popover: #ffffff;
|
|
184
|
+
--popover-foreground: #1c1917;
|
|
185
|
+
--surface-1: #faf8f5;
|
|
186
|
+
|
|
187
|
+
/* 4. Text on Colors */
|
|
188
|
+
--primary-foreground: #ffffff;
|
|
189
|
+
--secondary-foreground: #1c1917;
|
|
190
|
+
--accent-foreground: #ffffff;
|
|
191
|
+
--success-foreground: #ffffff;
|
|
192
|
+
--warning-foreground: #1c1917;
|
|
193
|
+
--destructive-foreground: #ffffff;
|
|
194
|
+
|
|
195
|
+
/* 5. Radius */
|
|
196
|
+
--radius-interactive: 0.375rem;
|
|
197
|
+
--radius-surface: 0.5rem;
|
|
198
|
+
--radius-floating: 0.5rem;
|
|
199
|
+
|
|
200
|
+
/* 6. Typography — lighter weights, serif headlines */
|
|
201
|
+
--font-family: var(--font-sans);
|
|
202
|
+
--font-headline: 'Playfair Display', var(--font-serif);
|
|
203
|
+
--font-weight-normal: 300;
|
|
204
|
+
--font-weight-medium: 400;
|
|
205
|
+
--font-weight-semibold: 500;
|
|
206
|
+
--font-weight-bold: 600;
|
|
207
|
+
|
|
208
|
+
/* 7. Spacing — generous, one notch above expressive */
|
|
209
|
+
--gap-sm: 0.75rem;
|
|
210
|
+
--gap-md: 1.5rem;
|
|
211
|
+
--gap-lg: 3rem;
|
|
212
|
+
|
|
213
|
+
/* 8. Shadows — warm gold-tinted, soft diffused */
|
|
214
|
+
--shadow-color: color-mix(in oklab, #b45309 8%, transparent);
|
|
215
|
+
--shadow-sm: 0 1px 3px var(--shadow-color);
|
|
216
|
+
--shadow-md: 0 4px 12px var(--shadow-color);
|
|
217
|
+
--shadow-xl: 0 8px 24px var(--shadow-color);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* ===========================
|
|
221
|
+
RETRO
|
|
222
|
+
8-bit pixel aesthetic, Press Start 2P, neon on dark, CRT vibes.
|
|
223
|
+
=========================== */
|
|
224
|
+
.retro {
|
|
225
|
+
--theme-icon: 'Gamepad2';
|
|
226
|
+
--theme-label: 'Retro';
|
|
227
|
+
--theme-is-dark: 1;
|
|
228
|
+
|
|
229
|
+
/* 1. Core Colors - Muted neon on zinc */
|
|
230
|
+
--background: #1c1c22;
|
|
231
|
+
--foreground: #c8e6c9;
|
|
232
|
+
--primary: #5eead4;
|
|
233
|
+
--secondary: #c084fc;
|
|
234
|
+
--accent: #fbbf24;
|
|
235
|
+
|
|
236
|
+
/* 2. Semantic */
|
|
237
|
+
--success: #6ee7b7;
|
|
238
|
+
--warning: #fbbf24;
|
|
239
|
+
--destructive: #f87171;
|
|
240
|
+
|
|
241
|
+
/* 3. Surfaces - Zinc CRT glass */
|
|
242
|
+
--muted: #27272f;
|
|
243
|
+
--muted-foreground: #8bae8b;
|
|
244
|
+
--border: #4a6a4a;
|
|
245
|
+
--input: #1c1c22;
|
|
246
|
+
--ring: #5eead4;
|
|
247
|
+
--card: #222228;
|
|
248
|
+
--card-foreground: #c8e6c9;
|
|
249
|
+
--popover: #222228;
|
|
250
|
+
--popover-foreground: #c8e6c9;
|
|
251
|
+
--surface-1: #1e1e24;
|
|
252
|
+
|
|
253
|
+
/* 4. Text on Colors */
|
|
254
|
+
--primary-foreground: #0f172a;
|
|
255
|
+
--secondary-foreground: #0f172a;
|
|
256
|
+
--accent-foreground: #0f172a;
|
|
257
|
+
--success-foreground: #0f172a;
|
|
258
|
+
--warning-foreground: #0f172a;
|
|
259
|
+
--destructive-foreground: #ffffff;
|
|
260
|
+
|
|
261
|
+
/* 5. Radius - Hard pixel corners */
|
|
262
|
+
--radius-interactive: 0;
|
|
263
|
+
--radius-surface: 0;
|
|
264
|
+
--radius-floating: 0;
|
|
265
|
+
|
|
266
|
+
/* 6. Typography - Press Start 2P (pixel font, 400 only) */
|
|
267
|
+
--font-family: 'Press Start 2P', var(--font-mono);
|
|
268
|
+
--font-headline: 'Press Start 2P', var(--font-mono);
|
|
269
|
+
--font-weight-normal: 400;
|
|
270
|
+
--font-weight-medium: 400;
|
|
271
|
+
--font-weight-semibold: 400;
|
|
272
|
+
--font-weight-bold: 400;
|
|
273
|
+
|
|
274
|
+
/* 7. Font scale - smaller base (pixel font reads large) */
|
|
275
|
+
--font-size-xs: 0.5rem;
|
|
276
|
+
--font-size-sm: 0.625rem;
|
|
277
|
+
--font-size-base: 0.75rem;
|
|
278
|
+
--font-size-lg: 0.875rem;
|
|
279
|
+
--font-size-xl: 1rem;
|
|
280
|
+
--font-size-2xl: 1.25rem;
|
|
281
|
+
--font-size-3xl: 1.5rem;
|
|
282
|
+
--line-height: 1.6;
|
|
283
|
+
|
|
284
|
+
/* 8. Borders - Chunky pixel borders */
|
|
285
|
+
--border-width: 3px;
|
|
286
|
+
--border-huge: 4px;
|
|
287
|
+
|
|
288
|
+
/* 9. Shadows — soft neon glow */
|
|
289
|
+
--shadow-color: #5eead433;
|
|
290
|
+
--shadow-sm: 0 0 4px #5eead422;
|
|
291
|
+
--shadow-md: 0 0 8px #5eead433, 0 0 16px #5eead41a;
|
|
292
|
+
--shadow-xl: 0 0 12px #5eead444, 0 0 24px #5eead42a, 0 0 48px #c084fc1a;
|
|
293
|
+
--shadow-cta: 0 0 16px #5eead444, 0 0 32px #5eead422;
|
|
294
|
+
|
|
295
|
+
/* 10. Per-variant shadows — soft neon matching */
|
|
296
|
+
--shadow-primary: 0 0 8px #5eead42a;
|
|
297
|
+
--shadow-primary-xl: 0 0 16px #5eead444, 0 0 32px #5eead422;
|
|
298
|
+
--shadow-secondary: 0 0 8px #c084fc2a;
|
|
299
|
+
--shadow-secondary-xl: 0 0 16px #c084fc44, 0 0 32px #c084fc22;
|
|
300
|
+
|
|
301
|
+
/* 11. Header padding */
|
|
302
|
+
--header-shadow-padding: 0;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* Body - subtle CRT scanlines */
|
|
306
|
+
.retro body {
|
|
307
|
+
background-color: var(--background);
|
|
308
|
+
background-image: repeating-linear-gradient(
|
|
309
|
+
0deg,
|
|
310
|
+
transparent,
|
|
311
|
+
transparent 2px,
|
|
312
|
+
rgba(0, 0, 0, 0.08) 2px,
|
|
313
|
+
rgba(0, 0, 0, 0.08) 4px
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/* Uppercase headings (pixel fonts look best in caps) */
|
|
318
|
+
.retro {
|
|
319
|
+
:is(h1, h2, h3, h4, h5, h6),
|
|
320
|
+
[data-level^='h'] {
|
|
321
|
+
text-transform: uppercase;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/* Flat surfaces - no gradient, pixel-sharp */
|
|
326
|
+
.retro .dndev-surface {
|
|
327
|
+
background: var(--card);
|
|
328
|
+
}
|
|
329
|
+
.retro .dndev-surface[data-variant='outline'] {
|
|
330
|
+
border: var(--border-width) solid var(--border);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.retro .dndev-card[data-variant='outline'] {
|
|
334
|
+
background: transparent;
|
|
335
|
+
box-shadow: none;
|
|
336
|
+
}
|