import { Section } from '@/components/ui/section'
// Basic usage
<Section padding="md" background="default">
<h1>Content</h1>
</Section>
// With gradient background
<Section padding="lg" background="gradient" container={false}>
<CustomContainer>Content</CustomContainer>
</Section>import { Heading } from '@/components/ui/heading'
// Semantic levels (auto-sized)
<Heading level={1}>Main Title</Heading>
<Heading level={2}>Subtitle</Heading>
// With gradient
<Heading level={1} gradient>Gradient Title</Heading>
// Custom size override
<Heading level={3} size="2xl">Large H3</Heading>import { Button } from '@/components/ui/button'
// New gradient variants
<Button variant="gradient">Primary Gradient</Button>
<Button variant="gradient-blue">Blue Gradient</Button>
<Button variant="gradient-accent">Accent Gradient</Button>
// Enterprise variant
<Button variant="enterprise">Enterprise CTA</Button>import { Card } from '@/components/ui/card'
// Clean surface variants
<Card surface="default">Standard card</Card>
<Card surface="muted">Muted background</Card>
<Card surface="elevated">High elevation</Card>
<Card surface="glass">Glass effect</Card>
// With padding control
<Card surface="elevated" padding="lg">
Large padding content
</Card>import { MetricCard } from '@/components/dashboard/metric-card'
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4">
<MetricCard
title="Total Users"
value={1234}
icon={<Users className="h-4 w-4" />}
description="Registered users"
variant="primary"
/>
</div>import { ActionCard } from '@/components/dashboard/action-card'
import { Card } from '@/components/ui/card'
// Elevated card with hover states
<Link href="/path">
<Card surface="elevated" className="group cursor-pointer">
<CardContent className="flex items-center p-6">
<div className="rounded-xl bg-primary/15 p-3 mr-4 group-hover:bg-primary/25 transition-colors">
<Icon className="h-6 w-6 text-primary" />
</div>
<div className="flex-1">
<h3 className="font-semibold text-base mb-0.5">Title</h3>
<p className="text-sm text-muted-foreground">Description</p>
</div>
</CardContent>
</Card>
</Link>gap-4= 1rem (16px)gap-6= 1.5rem (24px)gap-8= 2rem (32px)
shadow-sm= Subtle shadowshadow-md= Medium shadowshadow-lg= Large shadowshadow-xl= Extra large shadow
rounded-xl= 0.75rem (12px) - Cards, iconsrounded-lg= 0.5rem (8px) - Buttonsrounded-md= 0.375rem (6px) - Inputs
- Duration:
300ms - Timing:
cubic-bezier(0.16,1,0.3,1)
// Icon backgrounds (15% opacity)
<div className="bg-primary/15"> // Blue
<div className="bg-success/15"> // Green
<div className="bg-accent/15"> // Teal
<div className="bg-warning/15"> // Amber
<div className="bg-info/15"> // Blue
<div className="bg-destructive/15"> // Red
// Hover states (25% opacity)
className="group-hover:bg-primary/25"# Apply RLS policies
npx supabase db push
# Type check
npm run type-check
# Run dev server
npm run dev
# Build for production
npm run build<DashboardShell title="Dashboard" subtitle="Description">
{/* Metrics */}
<div className="grid gap-4 md:grid-cols-3">
<MetricCard ... />
</div>
{/* Actions */}
<DashboardSection title="Quick Actions">
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
<Card surface="elevated">...</Card>
</div>
</DashboardSection>
</DashboardShell><Section padding="lg" background="gradient">
<div className="text-center max-w-4xl mx-auto">
<Heading level={1} gradient>
Transform Clinical Education
</Heading>
<p className="mt-4 text-lg text-muted-foreground">
Description text
</p>
<div className="mt-8 flex gap-4 justify-center">
<Button variant="gradient-blue" size="lg">
Get Started
</Button>
<Button variant="outline" size="lg">
Learn More
</Button>
</div>
</div>
</Section>// 1 col mobile, 2 col tablet, 3 col desktop
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
// 1 col mobile, 2 col tablet, 4 col desktop
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4">
// Equal columns with auto-fit
<div className="grid gap-4 grid-cols-[repeat(auto-fit,minmax(280px,1fr))]">- ✅ Use semantic HTML (Heading component)
- ✅ Provide ARIA labels for icons
- ✅ Ensure keyboard navigation works
- ✅ Test with screen readers
- ✅ Check color contrast ratios
- ✅ Respect reduced motion preferences
Reference: See /COMPONENT_LIBRARY_POLISH.md for full documentation