create-frootkit 1.2.12 → 1.2.13
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 +8 -11
- package/templates/auth/src/app/dashboard/page.tsx +31 -27
- package/templates/auth/src/app/layout.tsx +5 -5
- package/templates/auth/src/app/login/page.tsx +11 -4
- package/templates/auth/src/app/page.tsx +278 -120
- package/templates/auth/src/app/signup/page.tsx +12 -6
- package/templates/auth/src/components/AuthForm.tsx +27 -34
- package/templates/auth/src/components/DashboardNav.tsx +41 -61
- package/templates/auth/src/components/MetricCard.tsx +12 -22
- package/templates/auth/src/components/Navbar.tsx +18 -21
- package/templates/auth/src/styles.css +157 -27
- package/templates/blog/src/app/blog/[slug]/page.tsx +85 -46
- package/templates/blog/src/app/layout.tsx +5 -5
- package/templates/blog/src/app/page.tsx +39 -26
- package/templates/blog/src/components/Footer.tsx +11 -9
- package/templates/blog/src/components/Navbar.tsx +21 -26
- package/templates/blog/src/components/Newsletter.tsx +11 -33
- package/templates/blog/src/components/PostCard.tsx +43 -76
- package/templates/blog/src/styles.css +113 -25
- package/templates/ecommerce/src/app/cart/page.tsx +12 -4
- package/templates/ecommerce/src/app/layout.tsx +5 -5
- package/templates/ecommerce/src/app/page.tsx +92 -37
- package/templates/ecommerce/src/app/products/[id]/page.tsx +39 -31
- package/templates/ecommerce/src/components/CartDrawer.tsx +113 -45
- package/templates/ecommerce/src/components/Footer.tsx +11 -9
- package/templates/ecommerce/src/components/Navbar.tsx +32 -34
- package/templates/ecommerce/src/components/ProductCard.tsx +27 -38
- package/templates/ecommerce/src/styles.css +155 -36
- package/templates/starter/src/app/layout.tsx +5 -5
- package/templates/starter/src/app/page.tsx +114 -107
- package/templates/starter/src/components/FeatureCard.tsx +9 -15
- package/templates/starter/src/components/Footer.tsx +11 -9
- package/templates/starter/src/components/Header.tsx +15 -38
- package/templates/starter/src/styles.css +102 -27
|
@@ -1,49 +1,26 @@
|
|
|
1
1
|
export function Header() {
|
|
2
2
|
return (
|
|
3
|
-
<header class="
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
16
|
-
</span>
|
|
3
|
+
<header class="absolute inset-x-0 top-0 z-30">
|
|
4
|
+
<nav class="mx-auto max-w-6xl px-6 flex items-center justify-between py-5 text-white">
|
|
5
|
+
<a href="/" class="text-[22px] font-semibold tracking-tight flex items-center gap-2">
|
|
6
|
+
<span>froot<span class="opacity-90">kit</span></span>
|
|
7
|
+
</a>
|
|
8
|
+
|
|
9
|
+
<div class="hidden items-center gap-8 text-[15px] font-medium md:flex">
|
|
10
|
+
<a href="#features" class="opacity-90 hover:opacity-100 transition-opacity">Features</a>
|
|
11
|
+
<a href="#code" class="opacity-90 hover:opacity-100 transition-opacity">Architecture</a>
|
|
12
|
+
<a href="/api/health" class="opacity-90 hover:opacity-100 transition-opacity font-mono text-xs">/api/health</a>
|
|
17
13
|
</div>
|
|
18
14
|
|
|
19
|
-
<
|
|
15
|
+
<div class="flex items-center gap-4 text-[15px] font-medium">
|
|
20
16
|
<a
|
|
21
17
|
href="https://frootjs.org"
|
|
22
|
-
|
|
23
|
-
rel="noreferrer"
|
|
24
|
-
class="text-zinc-400 hover:text-zinc-200 transition-colors"
|
|
25
|
-
>
|
|
26
|
-
Docs
|
|
27
|
-
</a>
|
|
28
|
-
<a
|
|
29
|
-
href="/api/health"
|
|
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"
|
|
18
|
+
class="rounded-full bg-white px-4 py-1.5 text-[14px] text-[#635bff] font-medium shadow-[0_2px_5px_-1px_rgba(50,50,93,0.25),0_1px_3px_-1px_rgba(0,0,0,0.3)] hover:bg-[#f6f9fc] transition-colors"
|
|
31
19
|
>
|
|
32
|
-
|
|
20
|
+
Documentation
|
|
33
21
|
</a>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
target="_blank"
|
|
37
|
-
rel="noreferrer"
|
|
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"
|
|
39
|
-
>
|
|
40
|
-
<svg style="width: 13px; height: 13px;" class="fill-current shrink-0" viewBox="0 0 24 24">
|
|
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" />
|
|
42
|
-
</svg>
|
|
43
|
-
<span>GitHub</span>
|
|
44
|
-
</a>
|
|
45
|
-
</nav>
|
|
46
|
-
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</nav>
|
|
47
24
|
</header>
|
|
48
25
|
);
|
|
49
26
|
}
|
|
@@ -4,43 +4,118 @@
|
|
|
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
|
|
8
|
-
--color-brand-hover: #
|
|
7
|
+
--color-brand: #635bff;
|
|
8
|
+
--color-brand-hover: #5249e6;
|
|
9
|
+
--color-navy: #0a2540;
|
|
10
|
+
--color-slate: #425466;
|
|
11
|
+
--color-surface: #f6f9fc;
|
|
12
|
+
--color-hairline: #e6ebf1;
|
|
13
|
+
--color-cyan: #00d4ff;
|
|
14
|
+
--color-success: #24b47e;
|
|
15
|
+
--color-error: #cd3d64;
|
|
9
16
|
}
|
|
10
17
|
|
|
11
18
|
:root {
|
|
12
|
-
color-scheme:
|
|
13
|
-
--
|
|
14
|
-
--
|
|
15
|
-
--
|
|
16
|
-
--
|
|
17
|
-
--
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
color-scheme: light;
|
|
20
|
+
--brand: #635bff;
|
|
21
|
+
--navy: #0a2540;
|
|
22
|
+
--slate: #425466;
|
|
23
|
+
--surface: #f6f9fc;
|
|
24
|
+
--hairline: #e6ebf1;
|
|
25
|
+
--cyan: #00d4ff;
|
|
26
|
+
--success: #24b47e;
|
|
27
|
+
--error: #cd3d64;
|
|
28
|
+
|
|
29
|
+
--shadow-card: 0 2px 5px -1px rgba(50, 50, 93, 0.25), 0 1px 3px -1px rgba(0, 0, 0, 0.3);
|
|
30
|
+
--shadow-pop: 0 13px 27px -5px rgba(50, 50, 93, 0.25), 0 8px 16px -8px rgba(0, 0, 0, 0.3);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
body {
|
|
34
|
+
font-size: 15px;
|
|
35
|
+
line-height: 24px;
|
|
36
|
+
background-color: #ffffff;
|
|
37
|
+
color: #425466;
|
|
28
38
|
-webkit-font-smoothing: antialiased;
|
|
29
39
|
-moz-osx-font-smoothing: grayscale;
|
|
30
40
|
}
|
|
31
41
|
|
|
32
|
-
|
|
42
|
+
:focus-visible {
|
|
43
|
+
outline: 2px solid #635bff;
|
|
44
|
+
outline-offset: 2px;
|
|
45
|
+
}
|
|
46
|
+
|
|
33
47
|
svg {
|
|
34
48
|
flex-shrink: 0;
|
|
35
49
|
max-width: 100%;
|
|
36
50
|
}
|
|
37
51
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
.btn {
|
|
53
|
+
display: inline-flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
justify-content: center;
|
|
56
|
+
gap: 0.5rem;
|
|
57
|
+
border-radius: 9999px;
|
|
58
|
+
padding: 0.625rem 1.25rem;
|
|
59
|
+
font-size: 15px;
|
|
60
|
+
font-weight: 500;
|
|
61
|
+
transition: all 150ms cubic-bezier(0.215, 0.61, 0.355, 1);
|
|
62
|
+
cursor: pointer;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.btn-p {
|
|
66
|
+
background-color: #635bff;
|
|
67
|
+
color: #ffffff;
|
|
68
|
+
box-shadow: var(--shadow-card);
|
|
69
|
+
}
|
|
70
|
+
.btn-p:hover {
|
|
71
|
+
background-color: #5249e6;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.btn-w {
|
|
75
|
+
background-color: #ffffff;
|
|
76
|
+
color: #635bff;
|
|
77
|
+
box-shadow: var(--shadow-card);
|
|
78
|
+
}
|
|
79
|
+
.btn-w:hover {
|
|
80
|
+
background-color: #f6f9fc;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.btn-o {
|
|
84
|
+
border: 1px solid #e6ebf1;
|
|
85
|
+
background-color: #ffffff;
|
|
86
|
+
color: #0a2540;
|
|
87
|
+
box-shadow: var(--shadow-card);
|
|
88
|
+
}
|
|
89
|
+
.btn-o:hover {
|
|
90
|
+
background-color: #f6f9fc;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.btn-gl {
|
|
94
|
+
border: 1px solid rgba(255, 255, 255, 0.4);
|
|
95
|
+
color: #ffffff;
|
|
96
|
+
}
|
|
97
|
+
.btn-gl:hover {
|
|
98
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.bd {
|
|
102
|
+
display: inline-flex;
|
|
103
|
+
align-items: center;
|
|
104
|
+
border-radius: 9999px;
|
|
105
|
+
padding: 0.125rem 0.625rem;
|
|
106
|
+
font-size: 13px;
|
|
107
|
+
font-weight: 500;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.card {
|
|
111
|
+
border-radius: 8px;
|
|
112
|
+
border: 1px solid #e6ebf1;
|
|
113
|
+
background-color: #ffffff;
|
|
114
|
+
padding: 1.25rem;
|
|
115
|
+
box-shadow: var(--shadow-card);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.hero {
|
|
119
|
+
background: linear-gradient(160deg, #635bff 0%, #7a73ff 38%, #00d4ff 100%);
|
|
120
|
+
clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
|
|
46
121
|
}
|