create-frootkit 1.2.2 → 1.2.4

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.
Files changed (40) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +1 -1
  3. package/templates/auth/src/app/dashboard/layout.tsx +9 -9
  4. package/templates/auth/src/app/dashboard/page.tsx +20 -20
  5. package/templates/auth/src/app/layout.tsx +7 -1
  6. package/templates/auth/src/app/login/page.tsx +2 -2
  7. package/templates/auth/src/app/page.tsx +78 -37
  8. package/templates/auth/src/app/signup/page.tsx +2 -2
  9. package/templates/auth/src/components/AuthForm.tsx +28 -17
  10. package/templates/auth/src/components/DashboardNav.tsx +66 -33
  11. package/templates/auth/src/components/MetricCard.tsx +9 -7
  12. package/templates/auth/src/components/Navbar.tsx +11 -8
  13. package/templates/auth/src/styles.css +29 -11
  14. package/templates/blog/src/app/blog/[slug]/page.tsx +11 -11
  15. package/templates/blog/src/app/layout.tsx +7 -1
  16. package/templates/blog/src/app/page.tsx +26 -12
  17. package/templates/blog/src/components/Footer.tsx +5 -5
  18. package/templates/blog/src/components/Navbar.tsx +8 -6
  19. package/templates/blog/src/components/Newsletter.tsx +16 -10
  20. package/templates/blog/src/components/PostCard.tsx +61 -14
  21. package/templates/blog/src/styles.css +29 -11
  22. package/templates/ecommerce/src/app/cart/page.tsx +2 -2
  23. package/templates/ecommerce/src/app/layout.tsx +7 -1
  24. package/templates/ecommerce/src/app/page.tsx +20 -29
  25. package/templates/ecommerce/src/app/products/[id]/page.tsx +21 -20
  26. package/templates/ecommerce/src/components/CartDrawer.tsx +13 -13
  27. package/templates/ecommerce/src/components/Footer.tsx +5 -5
  28. package/templates/ecommerce/src/components/Navbar.tsx +13 -8
  29. package/templates/ecommerce/src/components/ProductCard.tsx +14 -13
  30. package/templates/ecommerce/src/styles.css +29 -11
  31. package/templates/empty/src/app/layout.tsx +6 -0
  32. package/templates/empty/src/app/page.tsx +9 -9
  33. package/templates/empty/src/styles.css +29 -11
  34. package/templates/starter/src/app/layout.tsx +7 -1
  35. package/templates/starter/src/app/page.tsx +77 -76
  36. package/templates/starter/src/components/FeatureCard.tsx +10 -6
  37. package/templates/starter/src/components/Footer.tsx +5 -5
  38. package/templates/starter/src/components/Header.tsx +6 -6
  39. package/templates/starter/src/components/TerminalPreview.tsx +28 -28
  40. package/templates/starter/src/styles.css +29 -11
@@ -1,13 +1,13 @@
1
1
  export function Header() {
2
2
  return (
3
- <header class="border-b border-slate-800/80 bg-slate-950/40 backdrop-blur-md sticky top-0 z-50">
3
+ <header class="border-b border-[#1a2333] bg-[#06090f]/95 sticky top-0 z-50">
4
4
  <div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between">
5
5
  <div class="flex items-center gap-3">
6
- <span class="text-emerald-400 font-extrabold text-xl tracking-tight flex items-center gap-2">
7
- <span class="inline-block w-3 h-3 rounded-full bg-emerald-400 animate-pulse" />
6
+ <span class="text-white font-extrabold text-lg tracking-tight flex items-center gap-2">
7
+ <span class="w-3 h-3 rounded-full bg-emerald-500 inline-block" />
8
8
  FrootKit
9
9
  </span>
10
- <span class="px-2 py-0.5 text-[11px] font-mono font-medium rounded-full bg-emerald-500/10 text-emerald-400 border border-emerald-500/20">
10
+ <span class="px-2 py-0.5 text-[11px] font-mono text-slate-400 rounded-md bg-[#0a0f18] border border-[#1a2333]">
11
11
  v1.3.1
12
12
  </span>
13
13
  </div>
@@ -23,7 +23,7 @@ export function Header() {
23
23
  </a>
24
24
  <a
25
25
  href="/api/health"
26
- class="text-slate-300 hover:text-emerald-400 transition-colors font-mono text-xs px-2.5 py-1 rounded-md bg-slate-900 border border-slate-800"
26
+ class="text-emerald-400 hover:text-emerald-300 font-mono text-xs px-2.5 py-1 rounded-md bg-[#0a0f18] border border-[#1a2333] transition-colors"
27
27
  >
28
28
  /api/health
29
29
  </a>
@@ -33,7 +33,7 @@ export function Header() {
33
33
  rel="noreferrer"
34
34
  class="flex items-center gap-2 text-slate-300 hover:text-white transition-colors"
35
35
  >
36
- <svg class="w-4 h-4 fill-current" viewBox="0 0 24 24">
36
+ <svg width="16" height="16" class="w-4 h-4 fill-current shrink-0" viewBox="0 0 24 24">
37
37
  <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
38
  </svg>
39
39
  GitHub
@@ -1,54 +1,54 @@
1
1
  export function TerminalPreview() {
2
2
  return (
3
- <div class="grid grid-cols-1 md:grid-cols-2 gap-6 max-w-4xl mx-auto w-full mb-16">
4
- <div class="rounded-2xl border border-slate-800 bg-[#070b14] p-6 shadow-xl relative overflow-hidden group">
5
- <div class="flex items-center justify-between mb-4 pb-3 border-b border-slate-800/80">
3
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6 max-w-5xl mx-auto w-full mb-16">
4
+ <div class="rounded-xl border border-[#1a2333] bg-[#0a0f18] overflow-hidden">
5
+ <div class="flex items-center justify-between px-4 py-2.5 bg-[#0f1624] border-b border-[#1a2333]">
6
6
  <div class="flex items-center gap-2">
7
- <span class="w-3 h-3 rounded-full bg-rose-500/80" />
8
- <span class="w-3 h-3 rounded-full bg-amber-500/80" />
9
- <span class="w-3 h-3 rounded-full bg-emerald-500/80" />
7
+ <span class="w-2.5 h-2.5 rounded-full bg-slate-700" />
8
+ <span class="w-2.5 h-2.5 rounded-full bg-slate-700" />
9
+ <span class="w-2.5 h-2.5 rounded-full bg-slate-700" />
10
10
  <span class="ml-2 text-xs font-mono text-slate-400">src/app/page.tsx</span>
11
11
  </div>
12
- <span class="text-[11px] font-mono text-emerald-400/90 font-medium bg-emerald-950/60 px-2 py-0.5 rounded border border-emerald-800/40">
12
+ <span class="text-[11px] font-mono text-emerald-400 bg-emerald-500/10 px-2 py-0.5 rounded border border-emerald-500/20">
13
13
  Preact SSR
14
14
  </span>
15
15
  </div>
16
- <div class="font-mono text-xs sm:text-sm text-slate-300 space-y-2 select-all leading-relaxed">
16
+ <div class="p-5 font-mono text-xs text-slate-300 space-y-2 select-all leading-relaxed">
17
17
  <p><span class="text-purple-400 font-semibold">export default function</span> <span class="text-blue-400">HomePage</span>() &#123;</p>
18
18
  <p class="pl-4"><span class="text-purple-400 font-semibold">return</span> (</p>
19
19
  <p class="pl-8 text-emerald-300">&lt;<span class="text-blue-300 font-semibold">main</span> <span class="text-teal-400">class</span>=<span class="text-amber-300">"min-h-screen p-8"</span>&gt;</p>
20
- <p class="pl-12 text-slate-100">&lt;<span class="text-blue-300 font-semibold">h1</span>&gt;Hello FrootKit!&lt;/<span class="text-blue-300 font-semibold">h1</span>&gt;</p>
20
+ <p class="pl-12 text-slate-100">&lt;<span class="text-blue-300 font-semibold">h1</span>&gt;Production FrootKit Application&lt;/<span class="text-blue-300 font-semibold">h1</span>&gt;</p>
21
21
  <p class="pl-8 text-emerald-300">&lt;/<span class="text-blue-300 font-semibold">main</span>&gt;</p>
22
22
  <p class="pl-4">);</p>
23
23
  <p>&#125;</p>
24
24
  </div>
25
25
  </div>
26
26
 
27
- <div class="rounded-2xl border border-slate-800 bg-[#070b14] p-6 shadow-xl relative overflow-hidden group">
28
- <div class="flex items-center justify-between mb-4 pb-3 border-b border-slate-800/80">
27
+ <div class="rounded-xl border border-[#1a2333] bg-[#0a0f18] overflow-hidden">
28
+ <div class="flex items-center justify-between px-4 py-2.5 bg-[#0f1624] border-b border-[#1a2333]">
29
29
  <div class="flex items-center gap-2">
30
- <span class="w-3 h-3 rounded-full bg-rose-500/80" />
31
- <span class="w-3 h-3 rounded-full bg-amber-500/80" />
32
- <span class="w-3 h-3 rounded-full bg-emerald-500/80" />
30
+ <span class="w-2.5 h-2.5 rounded-full bg-slate-700" />
31
+ <span class="w-2.5 h-2.5 rounded-full bg-slate-700" />
32
+ <span class="w-2.5 h-2.5 rounded-full bg-slate-700" />
33
33
  <span class="ml-2 text-xs font-mono text-slate-400">terminal</span>
34
34
  </div>
35
- <span class="text-[11px] font-mono text-cyan-400/90 font-medium bg-cyan-950/60 px-2 py-0.5 rounded border border-cyan-800/40">
35
+ <span class="text-[11px] font-mono text-cyan-400 bg-cyan-500/10 px-2 py-0.5 rounded border border-cyan-500/20">
36
36
  CLI
37
37
  </span>
38
38
  </div>
39
- <div class="font-mono text-xs sm:text-sm text-slate-300 space-y-2.5 leading-relaxed">
40
- <p class="text-slate-500"># Start lightning-fast dev server</p>
41
- <p class="text-emerald-400 font-semibold flex items-center gap-2">
42
- <span class="text-slate-500 select-none">$</span> frootkit dev
43
- </p>
44
- <p class="text-slate-500 pt-1"># Build production static export + API routes</p>
45
- <p class="text-cyan-400 font-semibold flex items-center gap-2">
46
- <span class="text-slate-500 select-none">$</span> frootkit build
47
- </p>
48
- <p class="text-slate-500 pt-1"># Test the API endpoint</p>
49
- <p class="text-amber-400 font-semibold flex items-center gap-2">
50
- <span class="text-slate-500 select-none">$</span> curl http://localhost:3000/api/health
51
- </p>
39
+ <div class="p-5 font-mono text-xs text-slate-300 space-y-3 leading-relaxed">
40
+ <div>
41
+ <span class="text-slate-500 block text-[11px]"># Run dev server with Tailwind compiler</span>
42
+ <span class="text-emerald-400 font-semibold">$ frootkit dev</span>
43
+ </div>
44
+ <div>
45
+ <span class="text-slate-500 block text-[11px]"># Build static export and API manifest</span>
46
+ <span class="text-cyan-400 font-semibold">$ frootkit build</span>
47
+ </div>
48
+ <div>
49
+ <span class="text-slate-500 block text-[11px]"># Test dynamic route handler</span>
50
+ <span class="text-amber-400 font-semibold">$ curl http://localhost:3000/api/health</span>
51
+ </div>
52
52
  </div>
53
53
  </div>
54
54
  </div>
@@ -1,19 +1,37 @@
1
1
  @import "tailwindcss";
2
2
 
3
3
  @theme {
4
- --color-brand-50: #ecfdf5;
5
- --color-brand-100: #d1fae5;
6
- --color-brand-200: #a7f3d0;
7
- --color-brand-300: #6ee7b7;
8
- --color-brand-400: #34d399;
9
- --color-brand-500: #10b981;
10
- --color-brand-600: #059669;
11
- --color-brand-700: #047857;
12
- --color-brand-800: #065f46;
13
- --color-brand-900: #064e3b;
14
- --color-brand-950: #022c22;
4
+ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
5
+ --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
6
+
7
+ --color-brand-primary: #10b981;
8
+ --color-brand-hover: #34d399;
15
9
  }
16
10
 
17
11
  :root {
18
12
  color-scheme: dark;
19
13
  }
14
+
15
+ html {
16
+ background-color: #06090f;
17
+ color: #f8fafc;
18
+ font-family: var(--font-sans);
19
+ scroll-behavior: smooth;
20
+ -webkit-font-smoothing: antialiased;
21
+ }
22
+
23
+ /* SVG safety: prevents flex ballooning across all browsers */
24
+ svg {
25
+ flex-shrink: 0;
26
+ max-width: 100%;
27
+ }
28
+
29
+ /* Accessibility: Mandatory Reduced Motion */
30
+ @media (prefers-reduced-motion: reduce) {
31
+ *, *::before, *::after {
32
+ animation-duration: 0.01ms !important;
33
+ animation-iteration-count: 1 !important;
34
+ transition-duration: 0.01ms !important;
35
+ scroll-behavior: auto !important;
36
+ }
37
+ }