🎨 UI Components Expert (2026/2027 Edition)
English | Bahasa Indonesia
English
Description
Evaluate, audit, and build production-quality UI components. Apply the 4 pillars of UI components with modern tooling: shadcn/ui, Radix UI, Base UI, React 19, Tailwind v4, Material Design 3 (M3), WCAG 2.2, and micro-interaction design.
Trigger Conditions
- Build or review UI components (buttons, forms, modals, navigation, tooltips).
- Implement accessible components (ARIA patterns, keyboard navigation).
- Audit components against WCAG 2.2.
- Set up component libraries (shadcn/ui, Radix UI, Base UI).
- Add micro-interactions and animations.
Orchestration & Integration
This skill orchestrates and connects with:
senior-frontend: For overall React 19 / Next.js 15 architecture.
tailwind-expert: For Tailwind v4 styling and theming.
design-system-architect: For system-wide design tokens and primitives.
hig: For Human Interface Guidelines (Hierarchy, Harmony, Consistency).
Component Stack (2026/2027)
- Headless Primitives: Radix UI / Base UI (Accessibility, behavior).
- Component Library: shadcn/ui (Pre-styled, customizable).
- Styling: Tailwind CSS v4 (Utility-first,
@theme tokens).
- Animation: Motion / Framer Motion v12 (Spring physics).
- Icons: Lucide React.
- Forms: React Hook Form + Zod.
The 4 Pillars of UI Components
1: Input Controls
Capture user intent and data (Buttons, Forms, Selects).
- M3 Integration (if requested): Use M3 button variants: Filled, Tonal, Elevated, Outlined, and Text. Include FABs (Floating Action Buttons) for primary screen actions.
- Visual States: Define
default, hover, active, focus, disabled, and error.
- Touch Targets: Minimum 44×44px (WCAG 2.5.8), M3 recommends 48x48px.
- Immediate Feedback: Provide visual ripple or scale animation on interaction.
- Inline Validation: Show errors on blur. Use
aria-invalid and aria-describedby.
- Stack: React Hook Form + Zod.
2: Navigation
Move through application structure (Navbars, Tabs, Command Palettes).
- M3 Integration (if requested): Use M3 Navigation Bar for mobile (bottom), Navigation Rail for tablet, and Navigation Drawer for desktop.
- Active State: Indicate current location with high-contrast visual indicators.
- Keyboard Navigation: Support Arrow Keys for tabs,
Escape to close.
- Responsive: Bottom navigation (<768px), collapsible sidebar (tablet), full sidebar (desktop).
- Command Palette: Add
⌘K via cmdk.
- Next.js 15: Use
<Link viewTransition> for smooth transitions.
- ARIA: Use
role="navigation" and aria-current="page".
3: Information & Feedback
Display status and guidance (Toasts, Skeletons, Empty States).
- M3 Integration (if requested): Use Snackbar for transient messages. Use Badges on navigation icons for notifications.
- Color Semantics: Green (success), red (error), yellow (warning), blue (info).
- Toasts: Use Sonner. Limit to 3 concurrent. Auto-dismiss success, keep errors until dismissed.
- Loading: Use Skeletons matching exact content layout over spinners (prevents CLS).
- Empty States: Provide illustration, context, and clear CTA.
- ARIA:
aria-live="polite" (updates), aria-live="assertive" (critical).
4: Containers & Layout
Group related content (Cards, Modals, Sheets).
- M3 Integration (if requested): Use M3 Card variants: Elevated, Filled, Outlined. Follow M3 Dialog guidelines for Modals.
- Modals: Use Radix UI Dialog. It handles focus trapping and scroll locking automatically.
- Animation: Animate in (
animate-in fade-in zoom-in-95).
- Cards: Use subtle shadows + borders. Avoid heavy drop shadows in light mode.
- Sheets: Use bottom sheet for mobile secondary actions, side sheet for desktop.
Micro-Interaction Checklist
WCAG 2.2 Quick Reference
- 1.4.3: Text contrast ≥4.5:1.
- 2.5.8: Touch target ≥24×24px (min), 44×44px (target).
- 2.4.7: Visible focus indicator.
Bahasa Indonesia
Deskripsi
Evaluasi, audit, dan bangun komponen UI berkualitas produksi. Terapkan 4 pilar komponen UI dengan tooling modern: shadcn/ui, Radix UI, Base UI, React 19, Tailwind v4, Material Design 3 (M3), WCAG 2.2, dan desain micro-interaction.
Kondisi Pemicu
- Membangun atau me-review komponen UI (tombol, form, modal, navigasi).
- Implementasi komponen aksesibel (pola ARIA, navigasi keyboard).
- Audit komponen berdasarkan WCAG 2.2.
- Setup library komponen (shadcn/ui, Radix UI, Base UI).
- Menambahkan micro-interaction dan animasi.
Integrasi Orkestrasi
Skill ini mengorkestrasi dan terhubung dengan:
senior-frontend: Untuk arsitektur keseluruhan React 19 / Next.js 15.
tailwind-expert: Untuk styling dan theming Tailwind v4.
design-system-architect: Untuk design token dan primitif skala sistem.
hig: Untuk panduan Human Interface (Hierarki, Harmoni, Konsistensi).
QA Visual Mandatori
- Wajib gunakan
browser_subagent dan visual-qa-vision-agent untuk validasi layout.
- Standar Pixel-Perfect: Jangan menebak ukuran. Ambil screenshot dan koreksi pergeseran tata letak.
Stack Komponen (2026/2027)
- Headless: Radix UI / Base UI.
- Library: shadcn/ui.
- Styling: Tailwind CSS v4.
- Animasi: Motion / Framer Motion v12.
- Form: React Hook Form + Zod.
4 Pilar Komponen UI
1: Kontrol Input
Tangkap data (Tombol, Form, Select).
- Integrasi M3 (jika diminta): Gunakan varian tombol M3: Filled, Tonal, Elevated, Outlined, dan Text. Sertakan FABs (Floating Action Buttons).
- Definisikan state visual:
default, hover, active, focus, disabled, error.
- Target sentuh minimal 44×44px (M3 merekomendasikan 48x48px).
- Tampilkan error saat blur dengan
aria-invalid dan aria-describedby.
- Gunakan React Hook Form + Zod.
2: Navigasi
Pergerakan pengguna (Navbar, Tab, Command Palette).
- Integrasi M3 (jika diminta): Gunakan Navigation Bar M3 untuk mobile, Navigation Rail untuk tablet, dan Navigation Drawer untuk desktop.
- Gunakan indikator visual kontras tinggi untuk lokasi aktif.
- Wajib dukung navigasi keyboard (Arrow Keys, Escape).
- Responsive: Bottom navigation (<768px), sidebar desktop.
- Gunakan
cmdk untuk Command Palette ⌘K.
- Tandai navigasi aktif dengan
aria-current="page".
3: Informasi & Feedback
Tampilkan status (Toast, Skeleton, Empty State).
- Integrasi M3 (jika diminta): Gunakan Snackbar untuk pesan sementara. Gunakan Badges pada ikon navigasi.
- Gunakan warna semantik secara konsisten.
- Gunakan Sonner untuk toast (maks 3 sekaligus).
- Gunakan Skeleton persis sesuai layout (jangan gunakan spinner untuk layout) guna mencegah CLS.
- Sediakan ilustrasi dan CTA pada Empty State.
4: Kontainer & Layout
Kelompokkan konten (Card, Modal, Sheet).
- Integrasi M3 (jika diminta): Gunakan varian Card M3: Elevated, Filled, Outlined. Ikuti panduan Dialog M3 untuk modal.
- Gunakan Radix UI Dialog untuk modal (menangani focus trap dan scroll lock).
- Animasikan kemunculan modal (fade + scale).
- Gunakan shadow tipis untuk elevasi card di mode terang.
- Gunakan bottom sheet di mobile.
Checklist Micro-Interaction
1---2name: ui-components-expert3description: Expert guide for building production-quality UI components following the 4 pillars. Covers React 19, Radix UI, Base UI, Tailwind v4, Material Design 3 (M3), WCAG 2.2 / Panduan ahli membangun komponen UI berkualitas produksi dengan M3.4---56# 🎨 UI Components Expert (2026/2027 Edition)78[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)910---1112<a name="english"></a>13## English1415### Description16Evaluate, audit, and build production-quality UI components. Apply the 4 pillars of UI components with modern tooling: **shadcn/ui**, **Radix UI**, **Base UI**, **React 19**, **Tailwind v4**, **Material Design 3 (M3)**, **WCAG 2.2**, and micro-interaction design.1718### Trigger Conditions19- Build or review UI components (buttons, forms, modals, navigation, tooltips).20- Implement accessible components (ARIA patterns, keyboard navigation).21- Audit components against WCAG 2.2.22- Set up component libraries (shadcn/ui, Radix UI, Base UI).23- Add micro-interactions and animations.2425## Orchestration & Integration26This skill orchestrates and connects with:27- `senior-frontend`: For overall React 19 / Next.js 15 architecture.28- `tailwind-expert`: For Tailwind v4 styling and theming.29- `design-system-architect`: For system-wide design tokens and primitives.30- `hig`: For Human Interface Guidelines (Hierarchy, Harmony, Consistency).3132### Component Stack (2026/2027)33- **Headless Primitives**: Radix UI / Base UI (Accessibility, behavior).34- **Component Library**: shadcn/ui (Pre-styled, customizable).35- **Styling**: Tailwind CSS v4 (Utility-first, `@theme` tokens).36- **Animation**: Motion / Framer Motion v12 (Spring physics).37- **Icons**: Lucide React.38- **Forms**: React Hook Form + Zod.3940### The 4 Pillars of UI Components4142#### 1: Input Controls43Capture user intent and data (Buttons, Forms, Selects).44- **M3 Integration (if requested)**: Use M3 button variants: Filled, Tonal, Elevated, Outlined, and Text. Include FABs (Floating Action Buttons) for primary screen actions.45- **Visual States**: Define `default`, `hover`, `active`, `focus`, `disabled`, and `error`.46- **Touch Targets**: Minimum 44×44px (WCAG 2.5.8), M3 recommends 48x48px.47- **Immediate Feedback**: Provide visual ripple or scale animation on interaction.48- **Inline Validation**: Show errors on blur. Use `aria-invalid` and `aria-describedby`.49- **Stack**: React Hook Form + Zod.5051#### 2: Navigation52Move through application structure (Navbars, Tabs, Command Palettes).53- **M3 Integration (if requested)**: Use M3 Navigation Bar for mobile (bottom), Navigation Rail for tablet, and Navigation Drawer for desktop.54- **Active State**: Indicate current location with high-contrast visual indicators.55- **Keyboard Navigation**: Support Arrow Keys for tabs, `Escape` to close.56- **Responsive**: Bottom navigation (<768px), collapsible sidebar (tablet), full sidebar (desktop).57- **Command Palette**: Add `⌘K` via `cmdk`.58- **Next.js 15**: Use `<Link viewTransition>` for smooth transitions.59- **ARIA**: Use `role="navigation"` and `aria-current="page"`.6061#### 3: Information & Feedback62Display status and guidance (Toasts, Skeletons, Empty States).63- **M3 Integration (if requested)**: Use Snackbar for transient messages. Use Badges on navigation icons for notifications.64- **Color Semantics**: Green (success), red (error), yellow (warning), blue (info).65- **Toasts**: Use **Sonner**. Limit to 3 concurrent. Auto-dismiss success, keep errors until dismissed.66- **Loading**: Use Skeletons matching exact content layout over spinners (prevents CLS).67- **Empty States**: Provide illustration, context, and clear CTA.68- **ARIA**: `aria-live="polite"` (updates), `aria-live="assertive"` (critical).6970#### 4: Containers & Layout71Group related content (Cards, Modals, Sheets).72- **M3 Integration (if requested)**: Use M3 Card variants: Elevated, Filled, Outlined. Follow M3 Dialog guidelines for Modals.73- **Modals**: Use Radix UI Dialog. It handles focus trapping and scroll locking automatically.74- **Animation**: Animate in (`animate-in fade-in zoom-in-95`).75- **Cards**: Use subtle shadows + borders. Avoid heavy drop shadows in light mode.76- **Sheets**: Use bottom sheet for mobile secondary actions, side sheet for desktop.7778### Micro-Interaction Checklist79- [ ] Implement `:focus-visible` ring (2px, brand color) on all interactives.80- [ ] **M3 State Layers**: If using M3, ensure interactive elements have distinct Hover, Focus, Pressed, and Dragged state layers.81- [ ] Add loading state (spinner + disabled) to submit buttons.82- [ ] Use **Framer Motion v12 spring physics** (`stiffness: 300, damping: 20`) for natural, snappy interactions. Avoid rigid linear transitions.83- [ ] Use `transition-all duration-200 ease-out` for simple hovers.84- [ ] Test dark mode for all states (especially error contrast).8586### WCAG 2.2 Quick Reference87- **1.4.3**: Text contrast ≥4.5:1.88- **2.5.8**: Touch target ≥24×24px (min), 44×44px (target).89- **2.4.7**: Visible focus indicator.9091---9293<a name="bahasa-indonesia"></a>94## Bahasa Indonesia9596### Deskripsi97Evaluasi, audit, dan bangun komponen UI berkualitas produksi. Terapkan 4 pilar komponen UI dengan tooling modern: **shadcn/ui**, **Radix UI**, **Base UI**, **React 19**, **Tailwind v4**, **Material Design 3 (M3)**, **WCAG 2.2**, dan desain micro-interaction.9899### Kondisi Pemicu100- Membangun atau me-review komponen UI (tombol, form, modal, navigasi).101- Implementasi komponen aksesibel (pola ARIA, navigasi keyboard).102- Audit komponen berdasarkan WCAG 2.2.103- Setup library komponen (shadcn/ui, Radix UI, Base UI).104- Menambahkan micro-interaction dan animasi.105106## Integrasi Orkestrasi107Skill ini mengorkestrasi dan terhubung dengan:108- `senior-frontend`: Untuk arsitektur keseluruhan React 19 / Next.js 15.109- `tailwind-expert`: Untuk styling dan theming Tailwind v4.110- `design-system-architect`: Untuk design token dan primitif skala sistem.111- `hig`: Untuk panduan Human Interface (Hierarki, Harmoni, Konsistensi).112113### QA Visual Mandatori114- Wajib gunakan `browser_subagent` dan `visual-qa-vision-agent` untuk validasi layout.115- Standar Pixel-Perfect: Jangan menebak ukuran. Ambil screenshot dan koreksi pergeseran tata letak.116117### Stack Komponen (2026/2027)118- **Headless**: Radix UI / Base UI.119- **Library**: shadcn/ui.120- **Styling**: Tailwind CSS v4.121- **Animasi**: Motion / Framer Motion v12.122- **Form**: React Hook Form + Zod.123124### 4 Pilar Komponen UI125126#### 1: Kontrol Input127Tangkap data (Tombol, Form, Select).128- **Integrasi M3 (jika diminta)**: Gunakan varian tombol M3: Filled, Tonal, Elevated, Outlined, dan Text. Sertakan FABs (Floating Action Buttons).129- Definisikan state visual: `default`, `hover`, `active`, `focus`, `disabled`, `error`.130- Target sentuh minimal 44×44px (M3 merekomendasikan 48x48px).131- Tampilkan error saat blur dengan `aria-invalid` dan `aria-describedby`.132- Gunakan React Hook Form + Zod.133134#### 2: Navigasi135Pergerakan pengguna (Navbar, Tab, Command Palette).136- **Integrasi M3 (jika diminta)**: Gunakan Navigation Bar M3 untuk mobile, Navigation Rail untuk tablet, dan Navigation Drawer untuk desktop.137- Gunakan indikator visual kontras tinggi untuk lokasi aktif.138- Wajib dukung navigasi keyboard (Arrow Keys, Escape).139- Responsive: Bottom navigation (<768px), sidebar desktop.140- Gunakan `cmdk` untuk Command Palette `⌘K`.141- Tandai navigasi aktif dengan `aria-current="page"`.142143#### 3: Informasi & Feedback144Tampilkan status (Toast, Skeleton, Empty State).145- **Integrasi M3 (jika diminta)**: Gunakan Snackbar untuk pesan sementara. Gunakan Badges pada ikon navigasi.146- Gunakan warna semantik secara konsisten.147- Gunakan **Sonner** untuk toast (maks 3 sekaligus).148- Gunakan Skeleton persis sesuai layout (jangan gunakan spinner untuk layout) guna mencegah CLS.149- Sediakan ilustrasi dan CTA pada Empty State.150151#### 4: Kontainer & Layout152Kelompokkan konten (Card, Modal, Sheet).153- **Integrasi M3 (jika diminta)**: Gunakan varian Card M3: Elevated, Filled, Outlined. Ikuti panduan Dialog M3 untuk modal.154- Gunakan Radix UI Dialog untuk modal (menangani focus trap dan scroll lock).155- Animasikan kemunculan modal (fade + scale).156- Gunakan shadow tipis untuk elevasi card di mode terang.157- Gunakan bottom sheet di mobile.158159### Checklist Micro-Interaction160- [ ] Ring `:focus-visible` (2px) pada elemen interaktif.161- [ ] **State Layers M3**: Jika menggunakan M3, pastikan elemen interaktif memiliki lapisan status (Hover, Focus, Pressed, Dragged) yang berbeda.162- [ ] State loading pada tombol.163- [ ] Gunakan **Framer Motion v12 spring physics** (`stiffness: 300, damping: 20`) untuk interaksi alami.164- [ ] Transisi hover `transition-all duration-200 ease-out`.165- [ ] Uji kontras warna dark mode.