Comprehensive UI/UX design skill for building modern, responsive web applications with Tailwind CSS, shadcn/ui, Material UI, Chakra UI, Ant Design, and Mantine...
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