create-bw-app 0.4.0 → 0.6.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/package.json +1 -1
- package/src/constants.mjs +4 -5
- package/src/generator.mjs +47 -2
- package/template/base/app/globals.css +18 -7
- package/template/base/postcss.config.mjs +7 -0
- package/template/base/tsconfig.json +2 -1
- package/template/site/base/app/globals.css +27 -14
- package/template/site/base/tsconfig.json +2 -2
package/package.json
CHANGED
package/src/constants.mjs
CHANGED
|
@@ -54,7 +54,7 @@ export const APP_DEPENDENCY_DEFAULTS = {
|
|
|
54
54
|
"@brightweblabs/module-projects": "^0.1.1",
|
|
55
55
|
"@brightweblabs/ui": "^0.1.0",
|
|
56
56
|
"lucide-react": "^0.562.0",
|
|
57
|
-
"next": "16.1.
|
|
57
|
+
"next": "16.1.6",
|
|
58
58
|
"react": "19.2.3",
|
|
59
59
|
"react-dom": "19.2.3",
|
|
60
60
|
};
|
|
@@ -63,7 +63,7 @@ export const SITE_DEPENDENCY_DEFAULTS = {
|
|
|
63
63
|
"class-variance-authority": "^0.7.1",
|
|
64
64
|
"clsx": "^2.1.1",
|
|
65
65
|
"lucide-react": "^0.562.0",
|
|
66
|
-
"next": "16.1.
|
|
66
|
+
"next": "16.1.6",
|
|
67
67
|
"react": "19.2.3",
|
|
68
68
|
"react-dom": "19.2.3",
|
|
69
69
|
"tailwind-merge": "^3.4.0",
|
|
@@ -77,12 +77,11 @@ export const APP_DEV_DEPENDENCY_DEFAULTS = {
|
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
export const SITE_DEV_DEPENDENCY_DEFAULTS = {
|
|
80
|
-
"@tailwindcss/postcss": "^4
|
|
80
|
+
"@tailwindcss/postcss": "^4",
|
|
81
81
|
"@types/node": "^20",
|
|
82
82
|
"@types/react": "^19",
|
|
83
83
|
"@types/react-dom": "^19",
|
|
84
|
-
"
|
|
85
|
-
"tailwindcss": "^4.0.0",
|
|
84
|
+
"tailwindcss": "^4",
|
|
86
85
|
"typescript": "^5",
|
|
87
86
|
};
|
|
88
87
|
|
package/src/generator.mjs
CHANGED
|
@@ -185,7 +185,51 @@ function createEnvFileContent({ slug, brandValues, moduleFlags }) {
|
|
|
185
185
|
}
|
|
186
186
|
|
|
187
187
|
function createGitignore() {
|
|
188
|
-
return [
|
|
188
|
+
return [
|
|
189
|
+
"# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.",
|
|
190
|
+
"",
|
|
191
|
+
"# dependencies",
|
|
192
|
+
"/node_modules",
|
|
193
|
+
"/.pnp",
|
|
194
|
+
".pnp.*",
|
|
195
|
+
".yarn/*",
|
|
196
|
+
"!.yarn/patches",
|
|
197
|
+
"!.yarn/plugins",
|
|
198
|
+
"!.yarn/releases",
|
|
199
|
+
"!.yarn/versions",
|
|
200
|
+
"",
|
|
201
|
+
"# testing",
|
|
202
|
+
"/coverage",
|
|
203
|
+
"",
|
|
204
|
+
"# next.js",
|
|
205
|
+
"/.next/",
|
|
206
|
+
"/out/",
|
|
207
|
+
"",
|
|
208
|
+
"# production",
|
|
209
|
+
"/build",
|
|
210
|
+
"",
|
|
211
|
+
"# misc",
|
|
212
|
+
".DS_Store",
|
|
213
|
+
"*.pem",
|
|
214
|
+
"",
|
|
215
|
+
"# debug",
|
|
216
|
+
"npm-debug.log*",
|
|
217
|
+
"yarn-debug.log*",
|
|
218
|
+
"yarn-error.log*",
|
|
219
|
+
".pnpm-debug.log*",
|
|
220
|
+
"",
|
|
221
|
+
"# env files (can opt-in for committing if needed)",
|
|
222
|
+
".env*",
|
|
223
|
+
"!.env.example",
|
|
224
|
+
"",
|
|
225
|
+
"# vercel",
|
|
226
|
+
".vercel",
|
|
227
|
+
"",
|
|
228
|
+
"# typescript",
|
|
229
|
+
"*.tsbuildinfo",
|
|
230
|
+
"next-env.d.ts",
|
|
231
|
+
"",
|
|
232
|
+
].join("\n");
|
|
189
233
|
}
|
|
190
234
|
|
|
191
235
|
function createPlatformReadme({
|
|
@@ -302,7 +346,6 @@ function createPackageJson({
|
|
|
302
346
|
"@types/node": versionMap["@types/node"],
|
|
303
347
|
"@types/react": versionMap["@types/react"],
|
|
304
348
|
"@types/react-dom": versionMap["@types/react-dom"],
|
|
305
|
-
"postcss": versionMap.postcss,
|
|
306
349
|
"tailwindcss": versionMap.tailwindcss,
|
|
307
350
|
"typescript": versionMap.typescript,
|
|
308
351
|
}),
|
|
@@ -341,9 +384,11 @@ function createPackageJson({
|
|
|
341
384
|
},
|
|
342
385
|
dependencies: sortObjectKeys(dependencies),
|
|
343
386
|
devDependencies: sortObjectKeys({
|
|
387
|
+
"@tailwindcss/postcss": versionMap["@tailwindcss/postcss"],
|
|
344
388
|
"@types/node": versionMap["@types/node"],
|
|
345
389
|
"@types/react": versionMap["@types/react"],
|
|
346
390
|
"@types/react-dom": versionMap["@types/react-dom"],
|
|
391
|
+
tailwindcss: versionMap.tailwindcss,
|
|
347
392
|
typescript: versionMap.typescript,
|
|
348
393
|
}),
|
|
349
394
|
};
|
|
@@ -1,15 +1,26 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
1
3
|
:root {
|
|
2
4
|
color-scheme: light;
|
|
3
|
-
--
|
|
5
|
+
--font-sans: "IBM Plex Sans", "Segoe UI", sans-serif;
|
|
6
|
+
--font-display: Georgia, "Times New Roman", serif;
|
|
7
|
+
--background: #f3efe5;
|
|
8
|
+
--foreground: #18241d;
|
|
9
|
+
--muted-foreground: #5a665c;
|
|
10
|
+
--border: rgba(24, 36, 29, 0.12);
|
|
4
11
|
--panel: rgba(255, 255, 255, 0.82);
|
|
5
12
|
--panel-strong: #ffffff;
|
|
6
|
-
--text: #18241d;
|
|
7
|
-
--muted: #5a665c;
|
|
8
|
-
--line: rgba(24, 36, 29, 0.12);
|
|
9
13
|
--accent: #266946;
|
|
10
14
|
--accent-soft: rgba(38, 105, 70, 0.12);
|
|
11
15
|
--danger: #b43f3f;
|
|
12
16
|
--ink-soft: #eef1e8;
|
|
17
|
+
--ring: rgba(38, 105, 70, 0.28);
|
|
18
|
+
|
|
19
|
+
/* Compatibility aliases so both starters expose the same token surface. */
|
|
20
|
+
--bg: var(--background);
|
|
21
|
+
--text: var(--foreground);
|
|
22
|
+
--muted: var(--muted-foreground);
|
|
23
|
+
--line: var(--border);
|
|
13
24
|
}
|
|
14
25
|
|
|
15
26
|
* {
|
|
@@ -25,7 +36,7 @@ body {
|
|
|
25
36
|
radial-gradient(circle at 85% 12%, rgba(189, 140, 89, 0.12), transparent 18%),
|
|
26
37
|
linear-gradient(180deg, #faf8f1 0%, var(--bg) 48%, #e8e0cf 100%);
|
|
27
38
|
color: var(--text);
|
|
28
|
-
font-family:
|
|
39
|
+
font-family: var(--font-sans), sans-serif;
|
|
29
40
|
}
|
|
30
41
|
|
|
31
42
|
a {
|
|
@@ -108,7 +119,7 @@ input {
|
|
|
108
119
|
|
|
109
120
|
.stat-number {
|
|
110
121
|
display: block;
|
|
111
|
-
font-family:
|
|
122
|
+
font-family: var(--font-display), serif;
|
|
112
123
|
font-size: clamp(2rem, 4vw, 3rem);
|
|
113
124
|
line-height: 1;
|
|
114
125
|
letter-spacing: -0.04em;
|
|
@@ -135,7 +146,7 @@ input {
|
|
|
135
146
|
|
|
136
147
|
.title {
|
|
137
148
|
margin: 0;
|
|
138
|
-
font-family:
|
|
149
|
+
font-family: var(--font-display), serif;
|
|
139
150
|
font-size: clamp(2.4rem, 5.5vw, 4.8rem);
|
|
140
151
|
line-height: 0.92;
|
|
141
152
|
letter-spacing: -0.04em;
|
|
@@ -8,22 +8,35 @@
|
|
|
8
8
|
--color-muted-foreground: var(--muted-foreground);
|
|
9
9
|
--color-border: var(--border);
|
|
10
10
|
--color-panel: var(--panel);
|
|
11
|
+
--color-panel-strong: var(--panel-strong);
|
|
11
12
|
--color-accent: var(--accent);
|
|
12
13
|
--color-accent-soft: var(--accent-soft);
|
|
14
|
+
--color-danger: var(--danger);
|
|
15
|
+
--color-ink-soft: var(--ink-soft);
|
|
13
16
|
--color-ring: var(--ring);
|
|
14
17
|
}
|
|
15
18
|
|
|
16
19
|
:root {
|
|
17
|
-
|
|
18
|
-
--font-
|
|
19
|
-
--
|
|
20
|
-
--
|
|
21
|
-
--
|
|
22
|
-
--
|
|
23
|
-
--
|
|
24
|
-
--
|
|
25
|
-
--
|
|
26
|
-
--
|
|
20
|
+
color-scheme: light;
|
|
21
|
+
--font-sans: "IBM Plex Sans", "Segoe UI", sans-serif;
|
|
22
|
+
--font-display: Georgia, "Times New Roman", serif;
|
|
23
|
+
--background: #f3efe5;
|
|
24
|
+
--foreground: #18241d;
|
|
25
|
+
--muted-foreground: #5a665c;
|
|
26
|
+
--border: rgba(24, 36, 29, 0.12);
|
|
27
|
+
--panel: rgba(255, 255, 255, 0.82);
|
|
28
|
+
--panel-strong: #ffffff;
|
|
29
|
+
--accent: #266946;
|
|
30
|
+
--accent-soft: rgba(38, 105, 70, 0.12);
|
|
31
|
+
--danger: #b43f3f;
|
|
32
|
+
--ink-soft: #eef1e8;
|
|
33
|
+
--ring: rgba(38, 105, 70, 0.28);
|
|
34
|
+
|
|
35
|
+
/* Compatibility aliases so both starters expose the same token surface. */
|
|
36
|
+
--bg: var(--background);
|
|
37
|
+
--text: var(--foreground);
|
|
38
|
+
--muted: var(--muted-foreground);
|
|
39
|
+
--line: var(--border);
|
|
27
40
|
}
|
|
28
41
|
|
|
29
42
|
* {
|
|
@@ -38,9 +51,9 @@ body {
|
|
|
38
51
|
margin: 0;
|
|
39
52
|
min-height: 100vh;
|
|
40
53
|
background:
|
|
41
|
-
radial-gradient(circle at
|
|
42
|
-
radial-gradient(circle at 85%
|
|
43
|
-
linear-gradient(180deg, #
|
|
54
|
+
radial-gradient(circle at 15% 10%, rgba(126, 170, 112, 0.18), transparent 22rem),
|
|
55
|
+
radial-gradient(circle at 85% 12%, rgba(189, 140, 89, 0.12), transparent 18rem),
|
|
56
|
+
linear-gradient(180deg, #faf8f1 0%, var(--background) 48%, #e8e0cf 100%);
|
|
44
57
|
color: var(--foreground);
|
|
45
58
|
font-family: var(--font-sans), sans-serif;
|
|
46
59
|
}
|
|
@@ -64,5 +77,5 @@ a {
|
|
|
64
77
|
}
|
|
65
78
|
|
|
66
79
|
::selection {
|
|
67
|
-
background: rgba(
|
|
80
|
+
background: rgba(38, 105, 70, 0.18);
|
|
68
81
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"target": "ES2017",
|
|
4
4
|
"lib": ["dom", "dom.iterable", "esnext"],
|
|
5
|
-
"allowJs":
|
|
5
|
+
"allowJs": true,
|
|
6
6
|
"skipLibCheck": true,
|
|
7
7
|
"strict": true,
|
|
8
8
|
"noEmit": true,
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
"@/*": ["./*"]
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
|
-
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".next/dev/types/**/*.ts"],
|
|
21
|
+
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".next/dev/types/**/*.ts", "**/*.mts"],
|
|
22
22
|
"exclude": ["node_modules"]
|
|
23
23
|
}
|