Comprehensive UI/UX design skill for building modern, responsive web applications with Tailwind CSS, shadcn/ui, Material UI, Chakra UI, Ant Design, and Mantine. Use when users need to - (1) Choose a design system for their project, (2) Build responsive layouts and components, (3) Implement forms with validation, (4) Create accessible user interfaces, (5) Design task management UIs (todo apps, dashboards), (6) Apply responsive design patterns, (7) Implement dark mode, or (8) Build component libraries. Triggers include requests like 'design a todo app', 'create responsive layout', 'which UI library should I use', 'implement dark mode', 'build a form with validation', or 'make this mobile-friendly'.
Build modern, accessible, responsive web applications using industry-leading design systems and best practices.
When users ask "which UI library should I use" or need design system guidance:
Read the comparison guide:
references/design-system-comparison.md
Decision workflow:
Quick recommendations:
When users need mobile-friendly layouts or responsive components:
Read the patterns guide:
references/responsive-design-patterns.md
Core principles:
grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3flex flex-col md:flex-rowtext-sm md:text-base lg:text-lgWhen building with Tailwind CSS:
Read Tailwind patterns:
references/tailwind-patterns.md
Common patterns to apply:
rounded-lg border bg-card text-card-foreground shadow-sm p-6inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90flex h-10 w-full rounded-md border border-input bg-background px-3 py-2bg-white dark:bg-slate-950 text-slate-900 dark:text-slate-50When using shadcn/ui (recommended for most projects):
Read component reference:
references/shadcn-components.md
Essential components for todo apps:
npx shadcn-ui@latest add button card input form dialog badge tabs checkbox
Use provided templates:
assets/todo-card-template.tsxassets/task-form-template.tsxPattern: Compose components
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
import { Button } from "@/components/ui/button"
<Card>
<CardHeader>
<CardTitle>Title</CardTitle>
</CardHeader>
<CardContent>
<p>Content</p>
<Button>Action</Button>
</CardContent>
</Card>
When users choose Material UI:
Read MUI patterns:
references/material-ui-patterns.md
Setup theme first:
import { ThemeProvider, createTheme } from '@mui/material/styles'
const theme = createTheme({
palette: {
primary: { main: '#1976d2' },
},
})
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>
Use sx prop for styling:
<Box sx={{ p: 2, mt: 4, borderRadius: 2 }}>
When users choose Chakra UI:
Read Chakra patterns:
references/chakra-ui-patterns.md
Key advantages:
<Box bg="blue.500" p={4} borderRadius="md">useColorMode(), useColorModeValue()<Box w={['100%', '50%', '33%']}>Layout with Stack:
<VStack spacing={4} align="stretch">
<Card>Item 1</Card>
<Card>Item 2</Card>
</VStack>
When building forms with validation:
Use template:
assets/task-form-template.tsx
Pattern: React Hook Form + Zod
import { useForm } from "react-hook-form"
import { zodResolver } from "@hookform/resolvers/zod"
import * as z from "zod"
const schema = z.object({
title: z.string().min(3),
})
const form = useForm({
resolver: zodResolver(schema),
})
Always include:
<FormLabel>)<FormMessage>)<FormDescription>)Always apply:
<button> not <div onClick>aria-label="Delete task"<span className="sr-only">Hidden</span>Tailwind approach:
<div className="bg-white dark:bg-slate-950">
<p className="text-slate-900 dark:text-slate-50">
// Theme toggle
import { useTheme } from "next-themes"
const { theme, setTheme } = useTheme()
Chakra UI approach:
const { colorMode, toggleColorMode } = useColorMode()
const bg = useColorModeValue('white', 'gray.800')
Material UI approach:
const theme = createTheme({
palette: {
mode: prefersDarkMode ? 'dark' : 'light',
},
})
When building todo apps or similar UIs:
Available templates:
Task Card (assets/todo-card-template.tsx)
Task Form (assets/task-form-template.tsx)
Usage:
# Read template
Read: assets/todo-card-template.tsx
# Adapt to project's design system
# Modify imports and styling as needed
Select Design System
references/design-system-comparison.mdSetup Theme/Config
Build Core Components
Apply Responsive Patterns
references/responsive-design-patterns.mdAdd Accessibility
npx shadcn-ui@latest add button card input form dialog badge tabs checkbox
assets/todo-card-template.tsxassets/task-form-template.tsxreferences/responsive-design-patterns.md"Make this responsive"
→ Read: references/responsive-design-patterns.md
→ Apply mobile-first breakpoints
→ Use grid/flexbox patterns
"Add dark mode"
→ For Tailwind: Use dark: prefix
→ For Chakra: Use useColorMode()
→ For MUI: Configure theme palette mode
"Which UI library?"
→ Read: references/design-system-comparison.md
→ Provide recommendation based on requirements
"Build a form with validation"
→ Use: assets/task-form-template.tsx
→ Adapt to project's design system
→ Add custom fields as needed
"Create task card"
→ Use: assets/todo-card-template.tsx
→ Modify for specific features
Spacing scale: 2, 4, 6, 8, 12, 16, 24, 32, 48, 64 (px in 4px increments)
Typography scale: xs (12px), sm (14px), base (16px), lg (18px), xl (20px), 2xl (24px), 3xl (30px)
Breakpoints: sm (640px), md (768px), lg (1024px), xl (1280px), 2xl (1536px)
Border radius: sm (4px), md (8px), lg (16px), full (9999px)
❌ Desktop-first responsive design (always start mobile) ❌ Hardcoded colors (use design tokens/theme) ❌ Div soup (use semantic HTML) ❌ Missing accessibility (always include ARIA, focus states) ❌ Inconsistent spacing (use design system scale) ❌ Non-interactive elements with onClick (use button/a) ❌ Tiny touch targets on mobile (<44px)
references/tailwind-patterns.mdreferences/shadcn-components.mdreferences/material-ui-patterns.mdreferences/chakra-ui-patterns.mdreferences/design-system-comparison.mdreferences/responsive-design-patterns.mdassets/todo-card-template.tsxassets/task-form-template.tsx