qodex-ai/ai-agent-skills/component-interface-design

Claude Code and agent skill by qodex-ai/ai-agent-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Design interfaces using component libraries and design systems. Creates cohesive UIs with pre-built accessible component primitives.

Install

npx vskill@latest install qodex-ai/ai-agent-skills/component-interface-design

SKILL.md

Shadcn UI Designer

Core Design Prompt

When designing any UI, apply this philosophy:

"Design a modern, clean UI following Shadcn principles: apply minimalism with ample white space and simple sans-serif typography; use strategic, subtle shadows for depth and hierarchy; ensure accessibility with high-contrast neutrals and scalable elements; provide beautiful defaults for buttons, cards, and forms that compose modularly; incorporate fluid, non-intrusive animations; maintain a professional palette of soft grays, whites, and minimal accents like purple; output as responsive, customizable React code with Tailwind CSS."

Design Rules

1. Typography Rule
  • Limit to 2-3 font weights and sizes per screen
  • Use Inter or system fonts for consistency
tsx
<h1 className="text-2xl font-semibold">Title</h1>
<p className="text-sm text-muted-foreground">Description</p>
2. Spacing Rule
  • 4px-based scale: 4px, 8px, 16px, 24px, 32px
  • Tailwind utilities: p-1, p-2, p-4, p-6, p-8
tsx
<div className="p-6 space-y-4">
<div className="mb-8">...</div>
</div>
3. Color Rule
  • Base on OKLCH for perceptual uniformity
  • Use 50-950 scale grays (background, foreground, muted)
  • Subtle accents at 10% opacity to avoid visual noise
tsx
<Card className="bg-card text-card-foreground border-border">
<Button className="bg-primary text-primary-foreground">Action</Button>
<div className="bg-primary/10">Subtle accent</div>
</Card>
4. Shadow Rule
  • 3 levels only:
  • shadow-sm: Subtle lift (0 1px 2px) - for cards
  • shadow-md: Medium depth (0 4px 6px) - for dropdowns
  • shadow-lg: High elevation (0 10px 15px) - for modals
tsx
<Card className="shadow-sm hover:shadow-md transition-shadow">
5. Animation Rule
  • 200-300ms durations
  • ease-in-out curves for transitions
  • Subtle feedback only (hovers, state changes) - no decorative flourishes
tsx
<Button className="transition-colors duration-200 hover:bg-primary/90">
<Card className="transition-transform duration-200 hover:scale-105">
6. Accessibility Rule
  • ARIA labels on all interactive elements
  • WCAG 2.1 AA contrast ratios (4.5:1 minimum)
  • Keyboard-focus styles matching hover states
  • Semantic HTML structure
tsx
<button
aria-label="Submit form"
className="focus:ring-2 focus:ring-primary focus:outline-none"
>
Submit
</button>

Workflow

1. Interview User (if details not provided)
  • Scope: Full page, section, or specific component?
  • Type: Dashboard, form, card, modal, table?
  • Target file: Where should this be implemented?
  • Requirements: Features, interactions, data to display?
2. Design & Implement
  1. Match existing design - align with current UI patterns in the app
  2. Build UI first - complete visual interface before adding logic
  3. Modular components - break large pages into focused, reusable pieces
  4. Apply all 6 rules above strictly
  5. Verify accessibility - keyboard navigation, contrast, ARIA labels
  6. Test responsiveness - mobile, tablet, desktop
3. Component Structure Pattern
tsx
import { Button } from "@/components/ui/button"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
export function MyComponent() {
return (
<div className="container mx-auto p-6 space-y-6">
<header>
<h1 className="text-2xl font-semibold">Page Title</h1>
</header>
<main className="grid gap-4">
<Card className="shadow-sm">
<CardHeader>
<CardTitle>Section</CardTitle>
</CardHeader>
<CardContent>
{/* Content */}
</CardContent>
</Card>
</main>
</div>
)
}
4. Quality Checklist

Before completing, verify:

  • [ ] Uses shadcn/ui components where applicable
  • [ ] 2-3 font weights/sizes max per screen
  • [ ] 4px-based spacing throughout
  • [ ] Theme color variables (no hardcoded colors)
  • [ ] 3 shadow levels max, strategically applied
  • [ ] Animations 200-300ms with ease-in-out
  • [ ] ARIA labels on interactive elements
  • [ ] WCAG AA contrast ratios (4.5:1 min)
  • [ ] Keyboard focus styles implemented
  • [ ] Mobile-first responsive design
  • [ ] Modular, reusable code structure

Common Patterns

Dashboard Page
tsx
<div className="container mx-auto p-6 space-y-6">
<header className="space-y-2">
<h1 className="text-2xl font-semibold">Dashboard</h1>
<p className="text-sm text-muted-foreground">Overview of metrics</p>
</header>
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4">
{stats.map(stat => (
<Card key={stat.id} className="shadow-sm">
<CardHeader className="pb-2">
<CardTitle className="text-sm font-medium text-muted-foreground">
{stat.title}
</CardTitle>
</CardHeader>
<CardContent>
<div className="text-2xl font-semibold">{stat.value}</div>
</CardContent>
</Card>
))}
</div>
</div>
Form Pattern
tsx
<form className="space-y-6">
<div className="space-y-4">
<div className="space-y-2">
<Label htmlFor="name">Full Name</Label>
<Input id="name" placeholder="John Doe" />
</div>
<div className="space-y-2">
<Label htmlFor="email">Email</Label>
<Input id="email" type="email" placeholder="john@example.com" />
</div>
</div>
<Button type="submit" className="w-full transition-colors duration-200">
Submit
</Button>
</form>
Data Table Pattern
tsx
<Card className="shadow-sm">
<CardHeader>
<CardTitle className="text-xl font-semibold">Recent Orders</CardTitle>
</CardHeader>
<CardContent>
<Table>
<TableHeader>
<TableRow>
<TableHead>Order ID</TableHead>
<TableHead>Customer</TableHead>
<TableHead>Status</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{orders.map(order => (
<TableRow key={order.id} className="hover:bg-muted/50 transition-colors">
<TableCell className="font-medium">{order.id}</TableCell>
<TableCell>{order.customer}</TableCell>
<TableCell>
<Badge variant="default">{order.status}</Badge>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</CardContent>
</Card>

Best Practices

  • Match existing design - new designs align with current UI screens and components
  • UI-first approach - complete visual interface before adding business logic
  • Modular code - small, focused, reusable components (avoid monolithic pages)
  • Token efficiency - concise, well-structured code
  • Consistency - follow existing color, spacing, and typography patterns
  • Composability - build with shadcn's philosophy of small components that work together

Common Shadcn Components

  • Layout: Card, Tabs, Sheet, Dialog, Popover
  • Forms: Input, Textarea, Select, Checkbox, Radio, Switch, Label
  • Buttons: Button, Toggle, ToggleGroup
  • Display: Badge, Avatar, Separator, Skeleton, Table
  • Feedback: Alert, Toast, Progress
  • Navigation: NavigationMenu, Dropdown, Command

References

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
5
7-day trend score
9

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 21 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/qodex-ai/ai-agent-skills/component-interface-design/badge)](https://verified-skill.com/skills/qodex-ai/ai-agent-skills/component-interface-design)

Something wrong with this skill or its page? Tell us.