一键导入
shadcnui-patterns
Build polished, accessible UI with shadcn/ui components following FrankX design system
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build polished, accessible UI with shadcn/ui components following FrankX design system
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Apply official FrankX brand standards to all artifacts, ensuring visual consistency across content, products, and communications. Use this skill for any FrankX-related content creation, design work, or communication.
Frank's personalized career and professional mastery coaching
Guided process to create your personalized Soulbook - a comprehensive life transformation system
Creates expert positioning content, social media posts, and marketing materials for Frank's personal brand and AI coaching business with soul-aligned messaging
Master-level visionary book writing system with research-driven methodology, author voice modeling, and iterative refinement across 9 quality dimensions
Expert Suno AI prompt engineering for cinematic, transformative music creation. Use this skill when creating Suno prompts for Vibe OS sessions, meditation tracks, or any AI-generated music that needs professional quality and emotional resonance.
| name | shadcn/ui Patterns |
| description | Build polished, accessible UI with shadcn/ui components following FrankX design system |
| version | 1.0.0 |
Create distinctive, production-grade interfaces using shadcn/ui components with FrankX's glassmorphic design system. This skill ensures consistent component usage, proper accessibility, and avoidance of generic AI aesthetics.
{
"style": "new-york",
"rsc": true,
"tsx": true,
"baseColor": "neutral",
"cssVariables": true,
"iconLibrary": "lucide",
"aliases": {
"ui": "@/components/ui",
"utils": "@/lib/utils"
}
}
Before coding any component:
components/
├── ui/
│ ├── primitives/ # shadcn base components (button, input, etc.)
│ ├── magic-ui/ # Enhanced motion components
│ └── [Custom].tsx # FrankX-specific components
# Add shadcn components
npx shadcn@latest add button
npx shadcn@latest add card
npx shadcn@latest add dialog
npx shadcn@latest add form
npx shadcn@latest add input
npx shadcn@latest add toast
import { Button } from "@/components/ui/primitives/button"
// FrankX uses premium button styling
<Button variant="default">Primary Action</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="outline">Outline</Button>
<Button variant="ghost">Ghost</Button>
<Button variant="destructive">Destructive</Button>
// With loading state
<Button disabled={isLoading}>
{isLoading && <Loader2 className="mr-2 h-4 w-4 animate-spin" />}
Submit
</Button>
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"
// FrankX glassmorphic card pattern
<Card className="bg-white/5 backdrop-blur-xl border-white/10 hover:border-white/20 transition-all">
<CardHeader>
<CardTitle className="text-xl font-semibold">Title</CardTitle>
<CardDescription className="text-neutral-400">Description</CardDescription>
</CardHeader>
<CardContent>
{/* Content */}
</CardContent>
<CardFooter>
<Button>Action</Button>
</CardFooter>
</Card>
import { useForm } from "react-hook-form"
import { zodResolver } from "@hookform/resolvers/zod"
import * as z from "zod"
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form"
import { Input } from "@/components/ui/input"
const formSchema = z.object({
email: z.string().email("Invalid email address"),
name: z.string().min(2, "Name must be at least 2 characters"),
})
function EmailForm() {
const form = useForm<z.infer<typeof formSchema>>({
resolver: zodResolver(formSchema),
defaultValues: { email: "", name: "" },
})
return (
<Form {...form}>
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-4">
<FormField
control={form.control}
name="email"
render={({ field }) => (
<FormItem>
<FormLabel>Email</FormLabel>
<FormControl>
<Input placeholder="you@example.com" {...field} />
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<Button type="submit">Subscribe</Button>
</form>
</Form>
)
}
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"
<Dialog>
<DialogTrigger asChild>
<Button variant="outline">Open</Button>
</DialogTrigger>
<DialogContent className="bg-neutral-900/95 backdrop-blur-xl border-white/10">
<DialogHeader>
<DialogTitle>Modal Title</DialogTitle>
<DialogDescription>Description text here.</DialogDescription>
</DialogHeader>
{/* Content */}
</DialogContent>
</Dialog>
import { toast } from "sonner"
// Success
toast.success("Changes saved successfully")
// Error
toast.error("Something went wrong")
// Promise handling
toast.promise(saveData(), {
loading: "Saving...",
success: "Saved!",
error: "Failed to save"
})
/* Aurora gradient colors */
--aurora-1: #00d4ff;
--aurora-2: #7c3aed;
--aurora-3: #f472b6;
/* Glass effects */
--glass-bg: rgba(255, 255, 255, 0.05);
--glass-border: rgba(255, 255, 255, 0.1);
--glass-hover: rgba(255, 255, 255, 0.15);
// Standard glass card
className="bg-white/5 backdrop-blur-xl border border-white/10 rounded-xl"
// Elevated glass
className="bg-white/10 backdrop-blur-2xl border border-white/20 shadow-2xl rounded-2xl"
// Interactive glass
className="bg-white/5 backdrop-blur-xl border border-white/10 hover:bg-white/10 hover:border-white/20 transition-all duration-300"
// Headlines
className="text-4xl md:text-5xl font-bold bg-gradient-to-r from-white via-aurora-1 to-aurora-2 bg-clip-text text-transparent"
// Body text
className="text-neutral-300 leading-relaxed"
// Muted text
className="text-neutral-500 text-sm"
Focus States: All interactive elements must have visible focus rings
className="focus-visible:ring-2 focus-visible:ring-aurora-1 focus-visible:ring-offset-2"
Color Contrast: Ensure 4.5:1 minimum for body text, 3:1 for large text
Screen Reader Support: Use proper ARIA labels
<Button aria-label="Close dialog">
<X className="h-4 w-4" />
</Button>
Keyboard Navigation: All components must be keyboard accessible
ui-ux-design-expert - High-level design decisionsnextjs-react-expert - React patterns and Next.js specificsframer-expert - Animation and motion designdocs/DESIGN_SYSTEM_GUIDE.md