@vudovn/antigravity-kit 1.0.1 → 1.0.5
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/README.md +6 -47
- package/bin/index.js +45 -0
- package/package.json +39 -38
- package/templates/.agent/skills/vue-expert/SKILL.md +374 -0
- package/templates/web/README.md +36 -36
- package/templates/web/eslint.config.mjs +18 -18
- package/templates/web/next.config.ts +8 -8
- package/templates/web/package-lock.json +6549 -6549
- package/templates/web/package.json +26 -26
- package/templates/web/postcss.config.mjs +7 -7
- package/templates/web/public/images/ux-ui-pro-max.svg +1 -0
- package/templates/web/src/app/globals.css +390 -275
- package/templates/web/src/app/layout.tsx +55 -55
- package/templates/web/src/app/page.tsx +23 -23
- package/templates/web/src/components/Credits.tsx +29 -119
- package/templates/web/src/components/Features.tsx +112 -55
- package/templates/web/src/components/Footer.tsx +73 -45
- package/templates/web/src/components/Hero.tsx +246 -75
- package/templates/web/src/components/HowItWorks.tsx +99 -56
- package/templates/web/src/components/Navbar.tsx +48 -70
- package/templates/web/src/components/Skills.tsx +84 -115
- package/templates/web/tsconfig.json +34 -34
- package/templates/web/public/images/antigravity-kit-logo.png +0 -0
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import type { Metadata } from "next";
|
|
2
|
-
import { Geist, Geist_Mono } from "next/font/google";
|
|
3
|
-
import "./globals.css";
|
|
4
|
-
|
|
5
|
-
const geistSans = Geist({
|
|
6
|
-
variable: "--font-geist-sans",
|
|
7
|
-
subsets: ["latin"],
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
const geistMono = Geist_Mono({
|
|
11
|
-
variable: "--font-geist-mono",
|
|
12
|
-
subsets: ["latin"],
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
export const metadata: Metadata = {
|
|
16
|
-
title: "Antigravity Kit - AI Agent Capability Expansion Toolkit",
|
|
17
|
-
description:
|
|
18
|
-
"A comprehensive collection of skills, rules, and workflows to supercharge AI coding assistants for Antigravity. 35+ skills, 10 rules, 57 UI Styles, production-ready workflows.",
|
|
19
|
-
keywords: [
|
|
20
|
-
"AI agent",
|
|
21
|
-
"Antigravity kit",
|
|
22
|
-
"Antigravity skill",
|
|
23
|
-
"Antigravity rule",
|
|
24
|
-
"Antigravity workflow",
|
|
25
|
-
"Antigravity agent",
|
|
26
|
-
"Antigravity ide",
|
|
27
|
-
"coding assistant",
|
|
28
|
-
"skills",
|
|
29
|
-
"workflows",
|
|
30
|
-
"developer tools",
|
|
31
|
-
],
|
|
32
|
-
authors: [{ name: "VudoVN", url: "https://github.com/vudovn" }],
|
|
33
|
-
openGraph: {
|
|
34
|
-
title: "Antigravity Kit - AI Agent Capability Expansion Toolkit",
|
|
35
|
-
description:
|
|
36
|
-
"35+ skills, 10 rules, 57 UI Styles, production-ready workflows for AI coding assistants for Antigravity.",
|
|
37
|
-
type: "website",
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export default function RootLayout({
|
|
42
|
-
children,
|
|
43
|
-
}: Readonly<{
|
|
44
|
-
children: React.ReactNode;
|
|
45
|
-
}>) {
|
|
46
|
-
return (
|
|
47
|
-
<html lang="en" className="dark" suppressHydrationWarning>
|
|
48
|
-
<body
|
|
49
|
-
className={`${geistSans.variable} ${geistMono.variable} font-sans antialiased`}
|
|
50
|
-
>
|
|
51
|
-
{children}
|
|
52
|
-
</body>
|
|
53
|
-
</html>
|
|
54
|
-
);
|
|
55
|
-
}
|
|
1
|
+
import type { Metadata } from "next";
|
|
2
|
+
import { Geist, Geist_Mono } from "next/font/google";
|
|
3
|
+
import "./globals.css";
|
|
4
|
+
|
|
5
|
+
const geistSans = Geist({
|
|
6
|
+
variable: "--font-geist-sans",
|
|
7
|
+
subsets: ["latin"],
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
const geistMono = Geist_Mono({
|
|
11
|
+
variable: "--font-geist-mono",
|
|
12
|
+
subsets: ["latin"],
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export const metadata: Metadata = {
|
|
16
|
+
title: "Antigravity Kit - AI Agent Capability Expansion Toolkit",
|
|
17
|
+
description:
|
|
18
|
+
"A comprehensive collection of skills, rules, and workflows to supercharge AI coding assistants for Antigravity. 35+ skills, 10 rules, 57 UI Styles, production-ready workflows.",
|
|
19
|
+
keywords: [
|
|
20
|
+
"AI agent",
|
|
21
|
+
"Antigravity kit",
|
|
22
|
+
"Antigravity skill",
|
|
23
|
+
"Antigravity rule",
|
|
24
|
+
"Antigravity workflow",
|
|
25
|
+
"Antigravity agent",
|
|
26
|
+
"Antigravity ide",
|
|
27
|
+
"coding assistant",
|
|
28
|
+
"skills",
|
|
29
|
+
"workflows",
|
|
30
|
+
"developer tools",
|
|
31
|
+
],
|
|
32
|
+
authors: [{ name: "VudoVN", url: "https://github.com/vudovn" }],
|
|
33
|
+
openGraph: {
|
|
34
|
+
title: "Antigravity Kit - AI Agent Capability Expansion Toolkit",
|
|
35
|
+
description:
|
|
36
|
+
"35+ skills, 10 rules, 57 UI Styles, production-ready workflows for AI coding assistants for Antigravity.",
|
|
37
|
+
type: "website",
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default function RootLayout({
|
|
42
|
+
children,
|
|
43
|
+
}: Readonly<{
|
|
44
|
+
children: React.ReactNode;
|
|
45
|
+
}>) {
|
|
46
|
+
return (
|
|
47
|
+
<html lang="en" className="dark" suppressHydrationWarning>
|
|
48
|
+
<body
|
|
49
|
+
className={`${geistSans.variable} ${geistMono.variable} font-sans antialiased`}
|
|
50
|
+
>
|
|
51
|
+
{children}
|
|
52
|
+
</body>
|
|
53
|
+
</html>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import Navbar from "@/components/Navbar";
|
|
2
|
-
import Hero from "@/components/Hero";
|
|
3
|
-
import Features from "@/components/Features";
|
|
4
|
-
import Skills from "@/components/Skills";
|
|
5
|
-
import HowItWorks from "@/components/HowItWorks";
|
|
6
|
-
import Credits from "@/components/Credits";
|
|
7
|
-
import Footer from "@/components/Footer";
|
|
8
|
-
|
|
9
|
-
export default function Home() {
|
|
10
|
-
return (
|
|
11
|
-
<>
|
|
12
|
-
<Navbar />
|
|
13
|
-
<main>
|
|
14
|
-
<Hero />
|
|
15
|
-
<Features />
|
|
16
|
-
<Skills />
|
|
17
|
-
<HowItWorks />
|
|
18
|
-
<Credits />
|
|
19
|
-
</main>
|
|
20
|
-
<Footer />
|
|
21
|
-
</>
|
|
22
|
-
);
|
|
23
|
-
}
|
|
1
|
+
import Navbar from "@/components/Navbar";
|
|
2
|
+
import Hero from "@/components/Hero";
|
|
3
|
+
import Features from "@/components/Features";
|
|
4
|
+
import Skills from "@/components/Skills";
|
|
5
|
+
import HowItWorks from "@/components/HowItWorks";
|
|
6
|
+
import Credits from "@/components/Credits";
|
|
7
|
+
import Footer from "@/components/Footer";
|
|
8
|
+
|
|
9
|
+
export default function Home() {
|
|
10
|
+
return (
|
|
11
|
+
<>
|
|
12
|
+
<Navbar />
|
|
13
|
+
<main>
|
|
14
|
+
<Hero />
|
|
15
|
+
<Features />
|
|
16
|
+
<Skills />
|
|
17
|
+
<HowItWorks />
|
|
18
|
+
<Credits />
|
|
19
|
+
</main>
|
|
20
|
+
<Footer />
|
|
21
|
+
</>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// External
|
|
1
|
+
// External link icon
|
|
2
2
|
const ExternalLinkIcon = () => (
|
|
3
3
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" className="w-4 h-4">
|
|
4
4
|
<path fillRule="evenodd" d="M4.25 5.5a.75.75 0 0 0-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-4a.75.75 0 0 1 1.5 0v4A2.25 2.25 0 0 1 12.75 17h-8.5A2.25 2.25 0 0 1 2 14.75v-8.5A2.25 2.25 0 0 1 4.25 4h5a.75.75 0 0 1 0 1.5h-5Z" clipRule="evenodd" />
|
|
@@ -6,153 +6,63 @@ const ExternalLinkIcon = () => (
|
|
|
6
6
|
</svg>
|
|
7
7
|
);
|
|
8
8
|
|
|
9
|
-
// UI UX Icon
|
|
10
|
-
const PaletteIcon = () => (
|
|
11
|
-
<svg
|
|
12
|
-
viewBox="0 0 48 48"
|
|
13
|
-
fill="none"
|
|
14
|
-
className="w-6 h-6 min-[400px]:w-7 min-[400px]:h-7 sm:w-8 sm:h-8"
|
|
15
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
16
|
-
>
|
|
17
|
-
<defs>
|
|
18
|
-
<linearGradient id="logoGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
19
|
-
<stop offset="0%" stopColor="#2563EB" />
|
|
20
|
-
<stop offset="50%" stopColor="#3B82F6" />
|
|
21
|
-
<stop offset="100%" stopColor="#F97316" />
|
|
22
|
-
</linearGradient>
|
|
23
|
-
<linearGradient id="innerGradient" x1="0%" y1="100%" x2="100%" y2="0%">
|
|
24
|
-
<stop offset="0%" stopColor="#F97316" />
|
|
25
|
-
<stop offset="100%" stopColor="#2563EB" />
|
|
26
|
-
</linearGradient>
|
|
27
|
-
</defs>
|
|
28
|
-
<circle
|
|
29
|
-
cx={24}
|
|
30
|
-
cy={24}
|
|
31
|
-
r={22}
|
|
32
|
-
stroke="url(#logoGradient)"
|
|
33
|
-
strokeWidth={3}
|
|
34
|
-
fill="none"
|
|
35
|
-
/>
|
|
36
|
-
<rect
|
|
37
|
-
x={14}
|
|
38
|
-
y={14}
|
|
39
|
-
width={12}
|
|
40
|
-
height={12}
|
|
41
|
-
rx={2}
|
|
42
|
-
fill="url(#logoGradient)"
|
|
43
|
-
opacity="0.9"
|
|
44
|
-
/>
|
|
45
|
-
<rect
|
|
46
|
-
x={18}
|
|
47
|
-
y={18}
|
|
48
|
-
width={12}
|
|
49
|
-
height={12}
|
|
50
|
-
rx={2}
|
|
51
|
-
fill="url(#innerGradient)"
|
|
52
|
-
opacity="0.8"
|
|
53
|
-
/>
|
|
54
|
-
<rect
|
|
55
|
-
x={22}
|
|
56
|
-
y={22}
|
|
57
|
-
width={12}
|
|
58
|
-
height={12}
|
|
59
|
-
rx={2}
|
|
60
|
-
fill="url(#logoGradient)"
|
|
61
|
-
opacity="0.9"
|
|
62
|
-
/>
|
|
63
|
-
<circle cx={36} cy={12} r={2} fill="#F97316" />
|
|
64
|
-
<circle cx={12} cy={36} r="1.5" fill="#3B82F6" />
|
|
65
|
-
</svg>
|
|
66
|
-
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
// ClaudeKit Icon
|
|
70
|
-
const CpuChipIcon = () => (
|
|
71
|
-
<img src="/images/claudekit.png" />
|
|
72
|
-
);
|
|
73
|
-
|
|
74
9
|
const credits = [
|
|
75
10
|
{
|
|
76
|
-
icon: <PaletteIcon />,
|
|
77
11
|
name: "UI UX Pro Max",
|
|
78
|
-
description:
|
|
79
|
-
"Design Intelligence for Claude Code - 50 styles, 21 color palettes, 50 font pairings, 20 chart types",
|
|
12
|
+
description: "Design Intelligence - 50 styles, 21 palettes, 50 font pairings",
|
|
80
13
|
link: "https://ui-ux-pro-max-skill.nextlevelbuilder.io/",
|
|
81
|
-
|
|
14
|
+
badge: "Design",
|
|
15
|
+
icon: "/images/ux-ui-pro-max.svg"
|
|
82
16
|
},
|
|
83
17
|
{
|
|
84
|
-
icon: <CpuChipIcon />,
|
|
85
18
|
name: "ClaudeKit",
|
|
86
|
-
description:
|
|
87
|
-
"Production-ready AI subagents, workflows, and integrations for software development",
|
|
19
|
+
description: "Production-ready AI subagents and workflows",
|
|
88
20
|
link: "https://claudekit.cc/",
|
|
89
|
-
|
|
21
|
+
badge: "AI",
|
|
22
|
+
icon: "/images/claudekit.png"
|
|
90
23
|
},
|
|
91
24
|
];
|
|
92
25
|
|
|
93
26
|
export default function Credits() {
|
|
94
27
|
return (
|
|
95
|
-
<section id="credits" className="
|
|
96
|
-
|
|
97
|
-
<div className="bg-glow bg-glow-purple left-1/2 bottom-0 -translate-x-1/2 translate-y-1/2" />
|
|
98
|
-
|
|
99
|
-
<div className="container-content relative z-10">
|
|
28
|
+
<section id="credits" className="py-20 px-4 border-t border-[var(--color-border)]">
|
|
29
|
+
<div className="max-w-3xl mx-auto">
|
|
100
30
|
{/* Section Header */}
|
|
101
31
|
<div className="text-center mb-12">
|
|
102
|
-
<
|
|
103
|
-
|
|
32
|
+
<p className="text-[#c084fc] font-mono text-sm mb-3">// CREDITS</p>
|
|
33
|
+
<h2 className="text-3xl md:text-4xl font-bold mb-4">
|
|
34
|
+
Built upon <span className="text-[#22c55e]">amazing</span> tools
|
|
104
35
|
</h2>
|
|
105
|
-
<p className="text-
|
|
106
|
-
Special thanks to the creators of these
|
|
107
|
-
make Antigravity Kit possible.
|
|
36
|
+
<p className="text-[var(--color-text-secondary)]">
|
|
37
|
+
Special thanks to the creators of these projects.
|
|
108
38
|
</p>
|
|
109
39
|
</div>
|
|
110
40
|
|
|
111
41
|
{/* Credit Cards */}
|
|
112
|
-
<div className="grid md:grid-cols-2 gap-
|
|
42
|
+
<div className="grid md:grid-cols-2 gap-4">
|
|
113
43
|
{credits.map((credit, index) => (
|
|
114
44
|
<a
|
|
115
45
|
key={index}
|
|
116
46
|
href={credit.link}
|
|
117
47
|
target="_blank"
|
|
118
48
|
rel="noopener noreferrer"
|
|
119
|
-
className="
|
|
49
|
+
className="group p-5 rounded-xl bg-[var(--color-bg-card)] border border-[var(--color-border)] hover:border-[var(--color-accent)] transition-all cursor-pointer"
|
|
120
50
|
>
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
{/* Name with external link */}
|
|
132
|
-
<div className="flex items-center gap-2 mb-2">
|
|
133
|
-
<h3 className="heading-md">{credit.name}</h3>
|
|
51
|
+
<div className="flex items-start justify-between mb-3">
|
|
52
|
+
<div className="flex items-center gap-2">
|
|
53
|
+
<span className="text-white font-medium flex items-center gap-2">
|
|
54
|
+
<img src={credit.icon} alt={credit.name} className="w-6 h-6" />
|
|
55
|
+
{credit.name}
|
|
56
|
+
</span>
|
|
57
|
+
<span className="text-xs px-2 py-0.5 rounded bg-[#1e1e1e] text-[#64748b] font-mono">
|
|
58
|
+
{credit.badge}
|
|
59
|
+
</span>
|
|
60
|
+
</div>
|
|
134
61
|
<ExternalLinkIcon />
|
|
135
62
|
</div>
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
{/* Link hint */}
|
|
141
|
-
<div className="mt-4 text-sm text-[var(--color-accent)] flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">
|
|
142
|
-
Visit project
|
|
143
|
-
<svg
|
|
144
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
145
|
-
viewBox="0 0 20 20"
|
|
146
|
-
fill="currentColor"
|
|
147
|
-
className="w-4 h-4"
|
|
148
|
-
>
|
|
149
|
-
<path
|
|
150
|
-
fillRule="evenodd"
|
|
151
|
-
d="M3 10a.75.75 0 0 1 .75-.75h10.638L10.23 5.29a.75.75 0 1 1 1.04-1.08l5.5 5.25a.75.75 0 0 1 0 1.08l-5.5 5.25a.75.75 0 1 1-1.04-1.08l4.158-3.96H3.75A.75.75 0 0 1 3 10Z"
|
|
152
|
-
clipRule="evenodd"
|
|
153
|
-
/>
|
|
154
|
-
</svg>
|
|
155
|
-
</div>
|
|
63
|
+
<p className="text-sm text-[var(--color-text-secondary)]">
|
|
64
|
+
{credit.description}
|
|
65
|
+
</p>
|
|
156
66
|
</a>
|
|
157
67
|
))}
|
|
158
68
|
</div>
|
|
@@ -1,88 +1,145 @@
|
|
|
1
|
-
//
|
|
2
|
-
const
|
|
3
|
-
<svg
|
|
4
|
-
|
|
5
|
-
viewBox="0 0 24 24"
|
|
6
|
-
fill="currentColor"
|
|
7
|
-
className="w-6 h-6"
|
|
8
|
-
>
|
|
9
|
-
<path d="M11.645 20.91l-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z" />
|
|
1
|
+
// Feature icons
|
|
2
|
+
const CodeIcon = () => (
|
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" className="w-6 h-6">
|
|
4
|
+
<path fillRule="evenodd" d="M14.447 3.026a.75.75 0 0 1 .527.921l-4.5 16.5a.75.75 0 0 1-1.448-.394l4.5-16.5a.75.75 0 0 1 .921-.527ZM16.72 6.22a.75.75 0 0 1 1.06 0l5.25 5.25a.75.75 0 0 1 0 1.06l-5.25 5.25a.75.75 0 1 1-1.06-1.06L21.44 12l-4.72-4.72a.75.75 0 0 1 0-1.06Zm-9.44 0a.75.75 0 0 1 0 1.06L2.56 12l4.72 4.72a.75.75 0 0 1-1.06 1.06L.97 12.53a.75.75 0 0 1 0-1.06l5.25-5.25a.75.75 0 0 1 1.06 0Z" clipRule="evenodd" />
|
|
10
5
|
</svg>
|
|
11
6
|
);
|
|
12
7
|
|
|
13
|
-
const
|
|
14
|
-
<svg
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
className="w-6 h-6"
|
|
19
|
-
>
|
|
20
|
-
<path d="M11.25 4.533A9.707 9.707 0 0 0 6 3a9.735 9.735 0 0 0-3.25.555.75.75 0 0 0-.5.707v14.25a.75.75 0 0 0 1 .707A8.237 8.237 0 0 1 6 18.75c1.995 0 3.823.707 5.25 1.886V4.533ZM12.75 20.636A8.214 8.214 0 0 1 18 18.75c.966 0 1.89.166 2.75.47a.75.75 0 0 0 1-.708V4.262a.75.75 0 0 0-.5-.707A9.735 9.735 0 0 0 18 3a9.707 9.707 0 0 0-5.25 1.533v16.103Z" />
|
|
8
|
+
const StackIcon = () => (
|
|
9
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" className="w-6 h-6">
|
|
10
|
+
<path d="M11.644 1.59a.75.75 0 0 1 .712 0l9.75 5.25a.75.75 0 0 1 0 1.32l-9.75 5.25a.75.75 0 0 1-.712 0l-9.75-5.25a.75.75 0 0 1 0-1.32l9.75-5.25Z" />
|
|
11
|
+
<path d="m3.265 10.602 7.668 4.129a2.25 2.25 0 0 0 2.134 0l7.668-4.13 1.37.739a.75.75 0 0 1 0 1.32l-9.75 5.25a.75.75 0 0 1-.71 0l-9.75-5.25a.75.75 0 0 1 0-1.32l1.37-.738Z" />
|
|
12
|
+
<path d="m10.933 19.231-7.668-4.13-1.37.739a.75.75 0 0 0 0 1.32l9.75 5.25c.221.12.489.12.71 0l9.75-5.25a.75.75 0 0 0 0-1.32l-1.37-.738-7.668 4.13a2.25 2.25 0 0 1-2.134-.001Z" />
|
|
21
13
|
</svg>
|
|
22
14
|
);
|
|
23
15
|
|
|
24
|
-
const
|
|
25
|
-
<svg
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
16
|
+
const BugIcon = () => (
|
|
17
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" className="w-6 h-6">
|
|
18
|
+
<path fillRule="evenodd" d="M8.478 1.6a.75.75 0 0 1 .273 1.026 3.72 3.72 0 0 0-.425 1.121c.058.058.118.114.18.168A4.491 4.491 0 0 1 12 2.25a4.491 4.491 0 0 1 3.497 1.668c.06-.054.12-.11.178-.167a3.717 3.717 0 0 0-.426-1.125.75.75 0 1 1 1.298-.752 5.22 5.22 0 0 1 .671 2.046.75.75 0 0 1-.187.582c-.241.27-.505.52-.787.749a4.494 4.494 0 0 1 .216 2.1c-.106.792-.753 1.649-1.46 1.649-.707 0-1.354-.857-1.46-1.65a4.494 4.494 0 0 1 .216-2.099c-.281-.23-.545-.48-.786-.75a.75.75 0 0 1-.187-.581 5.22 5.22 0 0 1 .67-2.047.75.75 0 0 1 1.027-.273ZM9.75 6.75a.75.75 0 0 0 0 1.5h.008a.75.75 0 0 0 0-1.5H9.75Zm3.75 0a.75.75 0 0 0 0 1.5h.007a.75.75 0 0 0 0-1.5h-.007ZM7.251 10.314a.75.75 0 0 1 0 1.06l-.126.127a2.25 2.25 0 0 0-.657 1.59v.286a2.25 2.25 0 0 0 .657 1.59l.126.127a.75.75 0 0 1-1.06 1.06l-.127-.126a3.75 3.75 0 0 1-1.096-2.65v-.286a3.75 3.75 0 0 1 1.096-2.651l.127-.127a.75.75 0 0 1 1.06 0Zm9.499 0a.75.75 0 0 1 1.06 0l.127.127a3.75 3.75 0 0 1 1.096 2.65v.286a3.75 3.75 0 0 1-1.096 2.651l-.127.127a.75.75 0 0 1-1.06-1.061l.126-.127a2.25 2.25 0 0 0 .657-1.59v-.286a2.25 2.25 0 0 0-.657-1.59l-.126-.127a.75.75 0 0 1 0-1.06Zm-7.5 3.186a.75.75 0 0 1 0 1.5h-.007a.75.75 0 0 1 0-1.5h.007Zm4.5 0a.75.75 0 0 1 0 1.5h-.008a.75.75 0 0 1 0-1.5h.008ZM12 16.5a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 .75-.75Z" clipRule="evenodd" />
|
|
19
|
+
</svg>
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
const DocumentIcon = () => (
|
|
23
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" className="w-6 h-6">
|
|
24
|
+
<path fillRule="evenodd" d="M5.625 1.5c-1.036 0-1.875.84-1.875 1.875v17.25c0 1.035.84 1.875 1.875 1.875h12.75c1.035 0 1.875-.84 1.875-1.875V12.75A3.75 3.75 0 0 0 16.5 9h-1.875a1.875 1.875 0 0 1-1.875-1.875V5.25A3.75 3.75 0 0 0 9 1.5H5.625ZM7.5 15a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 7.5 15Zm.75 2.25a.75.75 0 0 0 0 1.5H12a.75.75 0 0 0 0-1.5H8.25Z" clipRule="evenodd" />
|
|
25
|
+
<path d="M12.971 1.816A5.23 5.23 0 0 1 14.25 5.25v1.875c0 .207.168.375.375.375H16.5a5.23 5.23 0 0 1 3.434 1.279 9.768 9.768 0 0 0-6.963-6.963Z" />
|
|
26
|
+
</svg>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
const PaletteIcon = () => (
|
|
30
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" className="w-6 h-6">
|
|
31
|
+
<path fillRule="evenodd" d="M20.599 1.5c-.376 0-.743.111-1.055.32l-5.08 3.385a18.747 18.747 0 0 0-3.471 2.987 10.04 10.04 0 0 1 4.815 4.815 18.748 18.748 0 0 0 2.987-3.472l3.386-5.079A1.902 1.902 0 0 0 20.599 1.5Zm-8.3 14.025a18.76 18.76 0 0 0 1.896-1.207 8.026 8.026 0 0 0-4.513-4.513A18.75 18.75 0 0 0 8.475 11.7l-.278.5a5.26 5.26 0 0 1 3.601 3.602l.5-.278ZM6.75 13.5A3.75 3.75 0 0 0 3 17.25a1.5 1.5 0 0 1-1.601 1.497.75.75 0 0 0-.7 1.123 5.25 5.25 0 0 0 9.8-2.62 3.75 3.75 0 0 0-3.75-3.75Z" clipRule="evenodd" />
|
|
36
32
|
</svg>
|
|
37
33
|
);
|
|
38
34
|
|
|
39
35
|
const features = [
|
|
40
36
|
{
|
|
41
|
-
icon: <
|
|
42
|
-
title: "
|
|
43
|
-
description:
|
|
44
|
-
|
|
37
|
+
icon: <CodeIcon />,
|
|
38
|
+
title: "Super-Coder Skills",
|
|
39
|
+
description: "Directives that help the Agent write Clean Code, following SOLID and DRY principles from the first output.",
|
|
40
|
+
color: "#c084fc",
|
|
41
|
+
tags: ["Clean Code", "SOLID", "DRY"],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
icon: <StackIcon />,
|
|
45
|
+
title: "Tech-Stack Specifics",
|
|
46
|
+
description: "Specialized skills for Modern Web (React/Next.js, Node/NestJS, Tailwind CSS, ...) – areas where default Agents often fall short.",
|
|
47
|
+
color: "#22c55e",
|
|
48
|
+
tags: ["React", "Next.js", "NestJS", "..."],
|
|
45
49
|
},
|
|
46
50
|
{
|
|
47
|
-
icon: <
|
|
48
|
-
title: "
|
|
49
|
-
description:
|
|
50
|
-
|
|
51
|
+
icon: <BugIcon />,
|
|
52
|
+
title: "QA & Debugging",
|
|
53
|
+
description: "Automate error review workflows and write proper Unit Tests.",
|
|
54
|
+
color: "#f97316",
|
|
55
|
+
tags: ["Unit Test", "Debug", "QA"],
|
|
51
56
|
},
|
|
52
57
|
{
|
|
53
|
-
icon: <
|
|
54
|
-
title: "
|
|
55
|
-
description:
|
|
56
|
-
|
|
58
|
+
icon: <DocumentIcon />,
|
|
59
|
+
title: "Documentation Auto",
|
|
60
|
+
description: "Transform code into technical documentation with a single command.",
|
|
61
|
+
color: "#3b82f6",
|
|
62
|
+
tags: ["Auto Docs", "README", "API Docs"],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
icon: <PaletteIcon />,
|
|
66
|
+
title: "Design Intelligence",
|
|
67
|
+
description: "Integrates diverse UI style library from UI UX Pro Max.",
|
|
68
|
+
color: "#ec4899",
|
|
69
|
+
tags: ["50+ Styles", "21 Palettes", "UI/UX"],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
icon: null, // Coming soon
|
|
73
|
+
title: "Coming Soon",
|
|
74
|
+
description: "More features are on the way. Stay tuned for updates!",
|
|
75
|
+
color: "#64748b",
|
|
76
|
+
tags: ["TBD"],
|
|
77
|
+
comingSoon: true,
|
|
57
78
|
},
|
|
58
79
|
];
|
|
59
80
|
|
|
60
81
|
export default function Features() {
|
|
61
82
|
return (
|
|
62
|
-
<section id="features" className="
|
|
63
|
-
<div className="
|
|
83
|
+
<section id="features" className="py-20 px-4 border-t border-[var(--color-border)]">
|
|
84
|
+
<div className="max-w-5xl mx-auto">
|
|
64
85
|
{/* Section Header */}
|
|
65
86
|
<div className="text-center mb-16">
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
<span className="
|
|
87
|
+
<p className="text-[#c084fc] font-mono text-sm mb-3">// FEATURES</p>
|
|
88
|
+
<h2 className="text-3xl md:text-4xl font-bold mb-4">
|
|
89
|
+
What's in the <span className="text-[#22c55e]">Kit?</span>
|
|
69
90
|
</h2>
|
|
70
|
-
<p className="text-
|
|
71
|
-
A
|
|
72
|
-
transform your AI coding assistant into a domain expert.
|
|
91
|
+
<p className="text-[var(--color-text-secondary)] max-w-xl mx-auto">
|
|
92
|
+
A comprehensive toolkit to supercharge your AI coding assistant.
|
|
73
93
|
</p>
|
|
74
94
|
</div>
|
|
75
95
|
|
|
76
|
-
{/* Feature Cards */}
|
|
77
|
-
<div className="grid md:grid-cols-3 gap-
|
|
96
|
+
{/* Feature Cards Grid */}
|
|
97
|
+
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-5">
|
|
78
98
|
{features.map((feature, index) => (
|
|
79
99
|
<div
|
|
80
100
|
key={index}
|
|
81
|
-
className=
|
|
101
|
+
className={`group p-6 rounded-xl transition-all ${feature.comingSoon
|
|
102
|
+
? "border-2 border-dashed border-[var(--color-border)] bg-transparent opacity-60"
|
|
103
|
+
: "bg-[var(--color-bg-card)] border border-[var(--color-border)] hover:border-[var(--color-border-hover)]"
|
|
104
|
+
}`}
|
|
82
105
|
>
|
|
83
|
-
|
|
84
|
-
<
|
|
85
|
-
|
|
106
|
+
{/* Icon */}
|
|
107
|
+
<div
|
|
108
|
+
className="w-12 h-12 rounded-lg flex items-center justify-center mb-4"
|
|
109
|
+
style={{
|
|
110
|
+
backgroundColor: `${feature.color}15`,
|
|
111
|
+
color: feature.color
|
|
112
|
+
}}
|
|
113
|
+
>
|
|
114
|
+
{feature.comingSoon ? (
|
|
115
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" className="w-6 h-6">
|
|
116
|
+
<path fillRule="evenodd" d="M12 3.75a.75.75 0 0 1 .75.75v6.75h6.75a.75.75 0 0 1 0 1.5h-6.75v6.75a.75.75 0 0 1-1.5 0v-6.75H4.5a.75.75 0 0 1 0-1.5h6.75V4.5a.75.75 0 0 1 .75-.75Z" clipRule="evenodd" />
|
|
117
|
+
</svg>
|
|
118
|
+
) : feature.icon}
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
{/* Title */}
|
|
122
|
+
<h3 className="text-lg font-semibold text-white mb-2">
|
|
123
|
+
{feature.title}
|
|
124
|
+
</h3>
|
|
125
|
+
|
|
126
|
+
{/* Description */}
|
|
127
|
+
<p className="text-sm text-[var(--color-text-secondary)] mb-4 leading-relaxed">
|
|
128
|
+
{feature.description}
|
|
129
|
+
</p>
|
|
130
|
+
|
|
131
|
+
{/* Tags */}
|
|
132
|
+
<div className="flex flex-wrap gap-1.5">
|
|
133
|
+
{feature.tags.map((tag, i) => (
|
|
134
|
+
<span
|
|
135
|
+
key={i}
|
|
136
|
+
className="text-xs px-2 py-0.5 rounded bg-[#1e1e1e] font-mono"
|
|
137
|
+
style={{ color: feature.color }}
|
|
138
|
+
>
|
|
139
|
+
{tag}
|
|
140
|
+
</span>
|
|
141
|
+
))}
|
|
142
|
+
</div>
|
|
86
143
|
</div>
|
|
87
144
|
))}
|
|
88
145
|
</div>
|