create-frootkit 1.2.8 → 1.2.9
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/templates/auth/src/app/dashboard/layout.tsx +14 -9
- package/templates/auth/src/app/dashboard/page.tsx +55 -24
- package/templates/auth/src/app/layout.tsx +3 -3
- package/templates/auth/src/app/login/page.tsx +5 -1
- package/templates/auth/src/app/page.tsx +103 -45
- package/templates/auth/src/app/signup/page.tsx +5 -1
- package/templates/auth/src/components/AuthForm.tsx +34 -19
- package/templates/auth/src/components/DashboardNav.tsx +97 -56
- package/templates/auth/src/components/MetricCard.tsx +13 -6
- package/templates/auth/src/components/Navbar.tsx +13 -12
- package/templates/auth/src/styles.css +27 -5
- package/templates/blog/src/app/blog/[slug]/page.tsx +19 -18
- package/templates/blog/src/app/layout.tsx +4 -4
- package/templates/blog/src/app/page.tsx +15 -14
- package/templates/blog/src/components/Footer.tsx +6 -6
- package/templates/blog/src/components/Navbar.tsx +17 -15
- package/templates/blog/src/components/Newsletter.tsx +11 -9
- package/templates/blog/src/components/PostCard.tsx +29 -27
- package/templates/blog/src/styles.css +14 -5
- package/templates/ecommerce/src/app/cart/page.tsx +3 -3
- package/templates/ecommerce/src/app/layout.tsx +2 -2
- package/templates/ecommerce/src/app/page.tsx +37 -15
- package/templates/ecommerce/src/app/products/[id]/page.tsx +34 -25
- package/templates/ecommerce/src/components/CartDrawer.tsx +20 -17
- package/templates/ecommerce/src/components/Footer.tsx +6 -6
- package/templates/ecommerce/src/components/Navbar.tsx +21 -14
- package/templates/ecommerce/src/components/ProductCard.tsx +22 -15
- package/templates/ecommerce/src/data/products.ts +17 -11
- package/templates/ecommerce/src/styles.css +29 -5
- package/templates/empty/src/app/layout.tsx +5 -5
- package/templates/empty/src/app/page.tsx +10 -9
- package/templates/empty/src/styles.css +13 -15
- package/templates/starter/src/app/layout.tsx +4 -4
- package/templates/starter/src/app/page.tsx +41 -33
- package/templates/starter/src/components/FeatureCard.tsx +5 -5
- package/templates/starter/src/components/Footer.tsx +6 -6
- package/templates/starter/src/components/Header.tsx +18 -14
- package/templates/starter/src/components/TerminalPreview.tsx +30 -30
- package/templates/starter/src/styles.css +14 -5
|
@@ -1,29 +1,33 @@
|
|
|
1
1
|
export function Header() {
|
|
2
2
|
return (
|
|
3
|
-
<header class="border-b border-[
|
|
4
|
-
<div class="max-w-6xl mx-auto px-6 h-
|
|
3
|
+
<header class="border-b border-white/[0.08] bg-[#08090a]/80 backdrop-blur-md sticky top-0 z-50">
|
|
4
|
+
<div class="max-w-6xl mx-auto px-6 h-14 flex items-center justify-between">
|
|
5
5
|
<div class="flex items-center gap-3">
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
<a href="/" class="flex items-center gap-2.5 font-semibold text-zinc-100 text-sm tracking-tight group">
|
|
7
|
+
<div class="w-6 h-6 rounded-md bg-indigo-500/15 border border-indigo-500/30 flex items-center justify-center text-indigo-400 group-hover:border-indigo-400/50 transition-colors shrink-0">
|
|
8
|
+
<svg style="width: 13px; height: 13px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
9
|
+
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" />
|
|
10
|
+
</svg>
|
|
11
|
+
</div>
|
|
12
|
+
<span>Froot<span class="text-indigo-400">Kit</span></span>
|
|
13
|
+
</a>
|
|
14
|
+
<span class="px-2 py-0.5 text-[10px] font-mono text-zinc-400 rounded-md bg-white/[0.04] border border-white/[0.06]">
|
|
15
|
+
v1.3.5
|
|
12
16
|
</span>
|
|
13
17
|
</div>
|
|
14
18
|
|
|
15
|
-
<nav class="flex items-center gap-
|
|
19
|
+
<nav class="flex items-center gap-5 text-xs font-medium">
|
|
16
20
|
<a
|
|
17
21
|
href="https://frootjs.org"
|
|
18
22
|
target="_blank"
|
|
19
23
|
rel="noreferrer"
|
|
20
|
-
class="text-
|
|
24
|
+
class="text-zinc-400 hover:text-zinc-200 transition-colors"
|
|
21
25
|
>
|
|
22
26
|
Docs
|
|
23
27
|
</a>
|
|
24
28
|
<a
|
|
25
29
|
href="/api/health"
|
|
26
|
-
class="text-
|
|
30
|
+
class="text-zinc-400 hover:text-zinc-200 font-mono text-[11px] px-2 py-0.5 rounded bg-white/[0.03] border border-white/[0.06] transition-colors"
|
|
27
31
|
>
|
|
28
32
|
/api/health
|
|
29
33
|
</a>
|
|
@@ -31,12 +35,12 @@ export function Header() {
|
|
|
31
35
|
href="https://github.com/orbitnorth/frootkit"
|
|
32
36
|
target="_blank"
|
|
33
37
|
rel="noreferrer"
|
|
34
|
-
class="flex items-center gap-
|
|
38
|
+
class="flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-white/[0.05] border border-white/[0.08] text-zinc-200 hover:text-white hover:bg-white/[0.08] transition-all text-xs"
|
|
35
39
|
>
|
|
36
|
-
<svg
|
|
40
|
+
<svg style="width: 13px; height: 13px;" class="fill-current shrink-0" viewBox="0 0 24 24">
|
|
37
41
|
<path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
|
|
38
42
|
</svg>
|
|
39
|
-
GitHub
|
|
43
|
+
<span>GitHub</span>
|
|
40
44
|
</a>
|
|
41
45
|
</nav>
|
|
42
46
|
</div>
|
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
export function TerminalPreview() {
|
|
2
2
|
return (
|
|
3
|
-
<div class="grid grid-cols-1 md:grid-cols-2 gap-
|
|
4
|
-
<div class="rounded-xl border border-[
|
|
5
|
-
<div class="flex items-center justify-between px-4 py-2.5 bg-[
|
|
6
|
-
<div class="flex items-center gap-
|
|
7
|
-
<span class="w-2.5 h-2.5 rounded-full bg-
|
|
8
|
-
<span class="w-2.5 h-2.5 rounded-full bg-
|
|
9
|
-
<span class="w-2.5 h-2.5 rounded-full bg-
|
|
10
|
-
<span class="ml-2 text-xs font-mono text-
|
|
3
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-5 max-w-5xl mx-auto w-full mb-16">
|
|
4
|
+
<div class="rounded-xl border border-white/[0.08] bg-[#0f1117] overflow-hidden shadow-xl shadow-black/40">
|
|
5
|
+
<div class="flex items-center justify-between px-4 py-2.5 bg-white/[0.02] border-b border-white/[0.06]">
|
|
6
|
+
<div class="flex items-center gap-1.5">
|
|
7
|
+
<span class="w-2.5 h-2.5 rounded-full bg-white/[0.12]" />
|
|
8
|
+
<span class="w-2.5 h-2.5 rounded-full bg-white/[0.12]" />
|
|
9
|
+
<span class="w-2.5 h-2.5 rounded-full bg-white/[0.12]" />
|
|
10
|
+
<span class="ml-2 text-xs font-mono text-zinc-400">src/app/page.tsx</span>
|
|
11
11
|
</div>
|
|
12
|
-
<span class="text-[
|
|
12
|
+
<span class="text-[10px] font-medium text-indigo-400 bg-indigo-500/10 px-2 py-0.5 rounded-full border border-indigo-500/20">
|
|
13
13
|
Preact SSR
|
|
14
14
|
</span>
|
|
15
15
|
</div>
|
|
16
|
-
<div class="p-5 font-mono text-xs text-
|
|
17
|
-
<p><span class="text-
|
|
18
|
-
<p class="pl-4"><span class="text-
|
|
19
|
-
<p class="pl-8 text-
|
|
20
|
-
<p class="pl-12 text-
|
|
21
|
-
<p class="pl-8 text-
|
|
16
|
+
<div class="p-5 font-mono text-xs text-zinc-300 space-y-1.5 select-all leading-relaxed">
|
|
17
|
+
<p><span class="text-indigo-400">export default function</span> <span class="text-white font-medium">HomePage</span>() {</p>
|
|
18
|
+
<p class="pl-4"><span class="text-indigo-400">return</span> (</p>
|
|
19
|
+
<p class="pl-8 text-zinc-400"><<span class="text-zinc-200">main</span> <span class="text-indigo-300">class</span>=<span class="text-emerald-300">"min-h-screen p-8"</span>></p>
|
|
20
|
+
<p class="pl-12 text-zinc-100"><<span class="text-zinc-200">h1</span>>Production FrootKit Application</<span class="text-zinc-200">h1</span>></p>
|
|
21
|
+
<p class="pl-8 text-zinc-400"></<span class="text-zinc-200">main</span>></p>
|
|
22
22
|
<p class="pl-4">);</p>
|
|
23
23
|
<p>}</p>
|
|
24
24
|
</div>
|
|
25
25
|
</div>
|
|
26
26
|
|
|
27
|
-
<div class="rounded-xl border border-[
|
|
28
|
-
<div class="flex items-center justify-between px-4 py-2.5 bg-[
|
|
29
|
-
<div class="flex items-center gap-
|
|
30
|
-
<span class="w-2.5 h-2.5 rounded-full bg-
|
|
31
|
-
<span class="w-2.5 h-2.5 rounded-full bg-
|
|
32
|
-
<span class="w-2.5 h-2.5 rounded-full bg-
|
|
33
|
-
<span class="ml-2 text-xs font-mono text-
|
|
27
|
+
<div class="rounded-xl border border-white/[0.08] bg-[#0f1117] overflow-hidden shadow-xl shadow-black/40">
|
|
28
|
+
<div class="flex items-center justify-between px-4 py-2.5 bg-white/[0.02] border-b border-white/[0.06]">
|
|
29
|
+
<div class="flex items-center gap-1.5">
|
|
30
|
+
<span class="w-2.5 h-2.5 rounded-full bg-white/[0.12]" />
|
|
31
|
+
<span class="w-2.5 h-2.5 rounded-full bg-white/[0.12]" />
|
|
32
|
+
<span class="w-2.5 h-2.5 rounded-full bg-white/[0.12]" />
|
|
33
|
+
<span class="ml-2 text-xs font-mono text-zinc-400">terminal</span>
|
|
34
34
|
</div>
|
|
35
|
-
<span class="text-[
|
|
35
|
+
<span class="text-[10px] font-medium text-zinc-300 bg-white/[0.05] px-2 py-0.5 rounded-full border border-white/[0.08]">
|
|
36
36
|
CLI
|
|
37
37
|
</span>
|
|
38
38
|
</div>
|
|
39
|
-
<div class="p-5 font-mono text-xs text-
|
|
39
|
+
<div class="p-5 font-mono text-xs text-zinc-300 space-y-3 leading-relaxed">
|
|
40
40
|
<div>
|
|
41
|
-
<span class="text-
|
|
42
|
-
<span class="text-
|
|
41
|
+
<span class="text-zinc-500 block text-[11px]"># Run dev server with instant Tailwind compilation</span>
|
|
42
|
+
<span class="text-indigo-400 font-semibold">$ frootkit dev</span>
|
|
43
43
|
</div>
|
|
44
44
|
<div>
|
|
45
|
-
<span class="text-
|
|
46
|
-
<span class="text-
|
|
45
|
+
<span class="text-zinc-500 block text-[11px]"># Build static export and API manifest</span>
|
|
46
|
+
<span class="text-zinc-200 font-semibold">$ frootkit build</span>
|
|
47
47
|
</div>
|
|
48
48
|
<div>
|
|
49
|
-
<span class="text-
|
|
50
|
-
<span class="text-
|
|
49
|
+
<span class="text-zinc-500 block text-[11px]"># Test dynamic route handler</span>
|
|
50
|
+
<span class="text-emerald-400 font-semibold">$ curl http://localhost:3000/api/health</span>
|
|
51
51
|
</div>
|
|
52
52
|
</div>
|
|
53
53
|
</div>
|
|
@@ -4,23 +4,32 @@
|
|
|
4
4
|
--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
5
5
|
--font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
6
6
|
|
|
7
|
-
--color-brand-primary: #
|
|
8
|
-
--color-brand-hover: #
|
|
7
|
+
--color-brand-primary: #6366f1;
|
|
8
|
+
--color-brand-hover: #4f46e5;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
:root {
|
|
12
12
|
color-scheme: dark;
|
|
13
|
+
--bg-canvas: #08090a;
|
|
14
|
+
--bg-surface: #0f1117;
|
|
15
|
+
--bg-elevated: #151822;
|
|
16
|
+
--border-subtle: rgba(255, 255, 255, 0.08);
|
|
17
|
+
--border-strong: rgba(255, 255, 255, 0.16);
|
|
18
|
+
--text-primary: #f4f4f5;
|
|
19
|
+
--text-secondary: #9496a1;
|
|
20
|
+
--text-muted: #5c6370;
|
|
13
21
|
}
|
|
14
22
|
|
|
15
23
|
html {
|
|
16
|
-
background-color:
|
|
17
|
-
color:
|
|
24
|
+
background-color: var(--bg-canvas);
|
|
25
|
+
color: var(--text-primary);
|
|
18
26
|
font-family: var(--font-sans);
|
|
19
27
|
scroll-behavior: smooth;
|
|
20
28
|
-webkit-font-smoothing: antialiased;
|
|
29
|
+
-moz-osx-font-smoothing: grayscale;
|
|
21
30
|
}
|
|
22
31
|
|
|
23
|
-
/* SVG safety
|
|
32
|
+
/* Strict SVG safety to prevent flex ballooning */
|
|
24
33
|
svg {
|
|
25
34
|
flex-shrink: 0;
|
|
26
35
|
max-width: 100%;
|