vibes-plug 1.0.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/.claude/rules/vibes-plug-core.md +32 -0
  2. package/.cursor/rules/vibes-plug-core.mdc +51 -0
  3. package/.cursorrules +42 -0
  4. package/AGENTS.md +96 -0
  5. package/BLUEPRINT.md +309 -125
  6. package/CHANGELOG.md +183 -1
  7. package/CLAUDE.md +70 -0
  8. package/LICENSE +1 -1
  9. package/README.md +641 -263
  10. package/index.js +19 -0
  11. package/package.json +61 -25
  12. package/plugin.json +24 -7
  13. package/scripts/generate_swarm_gif.py +295 -0
  14. package/scripts/install.js +201 -0
  15. package/skills/accessibility-testing-expert/SKILL.md +116 -0
  16. package/skills/ai-cost-token-optimizer/SKILL.md +82 -0
  17. package/skills/ai-evals-benchmark-expert/SKILL.md +188 -0
  18. package/skills/ai-llm-integration-expert/SKILL.md +147 -122
  19. package/skills/ai-media-generation-expert/SKILL.md +172 -0
  20. package/skills/ai-prompt-engineering-expert/SKILL.md +84 -0
  21. package/skills/angular-expert/SKILL.md +148 -0
  22. package/skills/api-design-expert/SKILL.md +316 -309
  23. package/skills/api-gateway-proxy-expert/SKILL.md +81 -0
  24. package/skills/app-analyzer-optimizer/SKILL.md +195 -188
  25. package/skills/apple-ecosystem-expert/SKILL.md +145 -0
  26. package/skills/{asisten_ramah → asisten-ramah}/SKILL.md +7 -1
  27. package/skills/astro-framework-expert/SKILL.md +200 -0
  28. package/skills/async-queue-temporal-expert/SKILL.md +240 -0
  29. package/skills/authentication-identity-expert/SKILL.md +279 -45
  30. package/skills/auto-doc-updater/SKILL.md +219 -203
  31. package/skills/autonomous-chaos-monkey/SKILL.md +63 -0
  32. package/skills/autonomous-red-teamer/SKILL.md +203 -0
  33. package/skills/autonomous-tdd-debugger/SKILL.md +71 -0
  34. package/skills/background-jobs-queue-expert/SKILL.md +235 -0
  35. package/skills/biome-linter-formatter-expert/SKILL.md +89 -0
  36. package/skills/blockchain-web3-expert/SKILL.md +115 -0
  37. package/skills/bootstrap-to-modern/SKILL.md +93 -86
  38. package/skills/brainstorming/SKILL.md +381 -353
  39. package/skills/browser-automation-expert/SKILL.md +222 -0
  40. package/skills/bun-runtime-expert/SKILL.md +7 -1
  41. package/skills/chatbot-messaging-expert/SKILL.md +114 -0
  42. package/skills/ci-cd-devops-architect/SKILL.md +81 -45
  43. package/skills/cloud-hosting-expert/SKILL.md +249 -243
  44. package/skills/coderabbit/SKILL.md +197 -191
  45. package/skills/compliance-gdpr-privacy-expert/SKILL.md +85 -0
  46. package/skills/cron-scheduler-expert/SKILL.md +304 -0
  47. package/skills/data-pipeline-etl-expert/SKILL.md +84 -0
  48. package/skills/data-telemetry-expert/SKILL.md +218 -212
  49. package/skills/data-visualization-expert/SKILL.md +154 -0
  50. package/skills/database-migration-versioning-expert/SKILL.md +90 -0
  51. package/skills/database-orm-expert/SKILL.md +303 -293
  52. package/skills/dependency-upgrade-migrator/SKILL.md +301 -0
  53. package/skills/design-system-architect/SKILL.md +278 -242
  54. package/skills/desktop-electron-expert/SKILL.md +128 -0
  55. package/skills/documentation-site-expert/SKILL.md +59 -0
  56. package/skills/doku-mcp-server/SKILL.md +257 -0
  57. package/skills/doku-payment-gateway/SKILL.md +233 -0
  58. package/skills/domain-driven-design-expert/SKILL.md +82 -0
  59. package/skills/e2e-testing-expert/SKILL.md +320 -314
  60. package/skills/ecommerce-expert/SKILL.md +87 -0
  61. package/skills/edge-serverless-db-expert/SKILL.md +99 -0
  62. package/skills/email-notification-expert/SKILL.md +368 -0
  63. package/skills/error-resilience-expert/SKILL.md +486 -0
  64. package/skills/event-driven-architect/SKILL.md +86 -80
  65. package/skills/feature-flag-analytics-expert/SKILL.md +66 -0
  66. package/skills/file-upload-media-expert/SKILL.md +437 -0
  67. package/skills/firebase-security-expert/SKILL.md +7 -1
  68. package/skills/form-validation-expert/SKILL.md +407 -0
  69. package/skills/fullstack-expert/SKILL.md +260 -201
  70. package/skills/fullstack-expert/references/api_design_guide.md +466 -466
  71. package/skills/fullstack-expert/references/multi_language_backend.md +528 -528
  72. package/skills/fullstack-expert/scripts/api_contract_validator.py +253 -253
  73. package/skills/fullstack-expert/scripts/architecture_analyzer.py +326 -326
  74. package/skills/gemini-agent-booster/SKILL.md +142 -104
  75. package/skills/geospatial-maps-expert/SKILL.md +80 -0
  76. package/skills/global-a11y-i18n-expert/SKILL.md +86 -80
  77. package/skills/glsl-shader-expert/SKILL.md +107 -0
  78. package/skills/go-programming-expert/SKILL.md +300 -294
  79. package/skills/graph-rag-knowledge-expert/SKILL.md +159 -0
  80. package/skills/graphql-apollo-expert/SKILL.md +114 -0
  81. package/skills/headless-cms-expert/SKILL.md +181 -0
  82. package/skills/hig/SKILL.md +193 -187
  83. package/skills/js-backend-expert/SKILL.md +218 -191
  84. package/skills/legacy-code-translator/SKILL.md +71 -0
  85. package/skills/local-slm-edge-ai-expert/SKILL.md +167 -0
  86. package/skills/logging-error-tracking-expert/SKILL.md +344 -0
  87. package/skills/mcp-client-orchestrator/SKILL.md +76 -0
  88. package/skills/mcp-server-architect/SKILL.md +226 -126
  89. package/skills/micro-frontend-architect/SKILL.md +112 -0
  90. package/skills/mobile-expo-expert/SKILL.md +191 -185
  91. package/skills/mobile-push-notification-expert/SKILL.md +71 -0
  92. package/skills/modern-css-native-expert/SKILL.md +189 -0
  93. package/skills/monday-design-aesthetic/SKILL.md +72 -66
  94. package/skills/monorepo-architect/SKILL.md +232 -226
  95. package/skills/mpa-orchestrator/SKILL.md +120 -101
  96. package/skills/multi-agent-orchestration/SKILL.md +173 -153
  97. package/skills/multiple-entry-points/SKILL.md +91 -55
  98. package/skills/mvc-expert/SKILL.md +237 -231
  99. package/skills/n8n-automation-expert/SKILL.md +89 -0
  100. package/skills/nextjs-app-router-expert/SKILL.md +148 -0
  101. package/skills/openapi-swagger-codegen-expert/SKILL.md +67 -0
  102. package/skills/payment-gateway-expert/SKILL.md +129 -45
  103. package/skills/pdf-document-generation-expert/SKILL.md +91 -0
  104. package/skills/performance-web-vitals/SKILL.md +337 -331
  105. package/skills/post-quantum-crypto-migrator/SKILL.md +57 -0
  106. package/skills/prd-architect/SKILL.md +206 -190
  107. package/skills/proactive-background-watcher/SKILL.md +68 -0
  108. package/skills/production-ready-hardener/PRODUCTION_READINESS_REPORT.md +67 -0
  109. package/skills/production-ready-hardener/SKILL.md +461 -468
  110. package/skills/production-ready-hardener/references/production_checklist.md +161 -161
  111. package/skills/production-ready-hardener/scripts/production_readiness_scanner.py +881 -875
  112. package/skills/project-context-mapper/SKILL.md +85 -0
  113. package/skills/pwa-offline-first-expert/SKILL.md +185 -0
  114. package/skills/python-programming-expert/SKILL.md +407 -270
  115. package/skills/rate-limit-abuse-prevention/SKILL.md +377 -0
  116. package/skills/realtime-collaboration-expert/SKILL.md +99 -45
  117. package/skills/rich-text-editor-expert/SKILL.md +177 -0
  118. package/skills/rust-programming-expert/SKILL.md +240 -234
  119. package/skills/saas-billing/SKILL.md +382 -376
  120. package/skills/saas-multi-tenant/SKILL.md +256 -236
  121. package/skills/saas-mvp-launcher/SKILL.md +30 -1
  122. package/skills/saas-transformer/SKILL.md +499 -445
  123. package/skills/saas-transformer/references/billing_integration_guide.md +401 -401
  124. package/skills/saas-transformer/references/feature_gating_patterns.md +137 -137
  125. package/skills/saas-transformer/references/saas_transformation_checklist.md +121 -121
  126. package/skills/saas-transformer/scripts/saas_transformation_scanner.py +39 -29
  127. package/skills/scalability-clean-code/SKILL.md +234 -228
  128. package/skills/search-engine-expert/SKILL.md +89 -0
  129. package/skills/secure-fuzz-testing/SKILL.md +7 -1
  130. package/skills/self-evolving-memory-graph/SKILL.md +91 -0
  131. package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -0
  132. package/skills/senior-frontend/SKILL.md +85 -105
  133. package/skills/seo/SKILL.md +258 -224
  134. package/skills/session-context-loader/SKILL.md +83 -0
  135. package/skills/session-handoff-resume/SKILL.md +163 -157
  136. package/skills/{skill_baru → skill-baru}/SKILL.md +177 -146
  137. package/skills/solidjs-expert/SKILL.md +80 -0
  138. package/skills/spa-orchestrator/SKILL.md +306 -287
  139. package/skills/sse-websocket-streaming-expert/SKILL.md +93 -0
  140. package/skills/state-management-expert/SKILL.md +277 -271
  141. package/skills/supabase-migration/SKILL.md +47 -1
  142. package/skills/supabase-security-expert/SKILL.md +248 -242
  143. package/skills/svelte-sveltekit-expert/SKILL.md +91 -0
  144. package/skills/svg-animation-motion-expert/SKILL.md +115 -0
  145. package/skills/tailwind-expert/SKILL.md +139 -187
  146. package/skills/tanstack-query-expert/SKILL.md +204 -198
  147. package/skills/tauri-expert/SKILL.md +7 -1
  148. package/skills/token-saver/SKILL.md +118 -110
  149. package/skills/typescript-expert/SKILL.md +329 -278
  150. package/skills/ui-components-expert/SKILL.md +166 -63
  151. package/skills/ui-ux-pro-max/SKILL.md +221 -200
  152. package/skills/vector-db-rag-expert/SKILL.md +208 -0
  153. package/skills/vibe-code-gardener/SKILL.md +180 -172
  154. package/skills/visual-qa-vision-agent/SKILL.md +71 -0
  155. package/skills/voice-ai-realtime-agent/SKILL.md +202 -0
  156. package/skills/vue-frontend-expert/SKILL.md +132 -0
  157. package/skills/wasm-edge-computing-expert/SKILL.md +97 -0
  158. package/skills/web-3d-graphics-expert/SKILL.md +137 -0
  159. package/skills/web-game-engine-expert/SKILL.md +102 -0
  160. package/skills/web-scraper/SKILL.md +98 -146
  161. package/skills/website-design-cloner/SKILL.md +180 -0
  162. package/skills/webxr-ar-vr-expert/SKILL.md +123 -0
  163. package/skills/wordpress-headless-expert/SKILL.md +144 -0
  164. package/skills/zero-to-prod-orchestrator/SKILL.md +231 -180
  165. package/skills/zero-trust-secret-vault/SKILL.md +88 -0
  166. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  167. package/CONTRIBUTING.md +0 -199
  168. package/SECURITY.md +0 -21
  169. package/banner.png +0 -0
  170. package/skills/senior-fullstack/SKILL.md +0 -167
  171. package/skills/senior-fullstack/references/architecture_patterns.md +0 -160
  172. package/skills/senior-fullstack/references/development_workflows.md +0 -222
  173. package/skills/senior-fullstack/references/tech_stack_guide.md +0 -190
  174. package/skills/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
  175. package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
  176. package/skills/senior-fullstack/scripts/project_scaffolder.py +0 -114
  177. package/skills/seo-aeo-landing-page-writer/SKILL.md +0 -97
  178. package/skills/seo-geo/SKILL.md +0 -188
  179. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  180. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  181. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
  182. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  183. package/skills/ui_ux_expert/SKILL.md +0 -114
@@ -1,63 +1,166 @@
1
- ---
2
- name: ui-components-expert
3
- description: Expert guide for checking and improving the 4 main pillars of UI components: input controls, navigation, information, and containers. / Panduan ahli untuk memeriksa dan meningkatkan 4 pilar utama komponen UI: kontrol input, navigasi, informasi, dan kontainer.
4
- ---
5
-
6
- # 🎨 UI Components 4 Pillars Expert
7
-
8
- Skill ini memberikan panduan komprehensif untuk mengevaluasi, mengaudit, dan meningkatkan 4 pilar utama komponen User Interface (UI). Tujuannya adalah memastikan setiap komponen tidak hanya terlihat indah secara visual (Aesthetics), tetapi juga berfungsi secara intuitif (Usability), dapat diakses oleh semua pengguna (Accessibility/a11y), dan konsisten dengan sistem desain.
9
-
10
- ## 🎯 4 Pilar Utama Komponen UI
11
-
12
- ### 1. Kontrol Input (Input Controls)
13
- Komponen yang memungkinkan pengguna berinteraksi dan memasukkan data.
14
- *Contoh: Buttons, Checkboxes, Radio Buttons, Text Fields, Toggles/Switches, Dropdowns.*
15
-
16
- **✅ Checklist & Best Practices:**
17
- - **State Visual yang Jelas:** Pastikan ada perbedaan visual yang jelas untuk state `Default`, `Hover`, `Active/Pressed`, `Focus` (untuk aksesibilitas keyboard), dan `Disabled`.
18
- - **Ukuran Target Sentuh (Touch Target):** Minimal 44x44 pixel (berdasarkan standar HIG/Material) untuk kenyamanan pengguna mobile.
19
- - **Feedback Langsung:** Berikan umpan balik instan saat input berinteraksi (misalnya riak/ripple effect, perubahan warna, animasi transisi).
20
- - **Validasi & Error Handling:** Tampilkan pesan error yang spesifik dan inline pada form input, gunakan warna merah dan ikon peringatan, jangan hanya mengandalkan warna.
21
- - **Aksesibilitas (a11y):** Gunakan tag label yang terhubung ke input (misal `htmlFor`), sertakan atribut `aria-invalid` jika ada error.
22
-
23
- ### 2. Navigasi (Navigation)
24
- Komponen yang membantu pengguna bergerak di dalam struktur aplikasi atau situs web.
25
- *Contoh: Menus, Tabs, Breadcrumbs, Pagination, Sidebars, Bottom Navigation.*
26
-
27
- **✅ Checklist & Best Practices:**
28
- - **Indikasi Lokasi Saat Ini (Active State):** Pengguna harus selalu tahu di mana mereka berada. Highlight menu atau tab yang sedang aktif dengan warna kontras, garis bawah, atau background tebal.
29
- - **Hierarki yang Logis:** Kelompokkan item navigasi berdasarkan kepentingannya. Jangan tampilkan terlalu banyak opsi (prinsip Hick's Law).
30
- - **Responsivitas:** Gunakan *Hamburger Menu* atau *Bottom Navigation* di perangkat mobile, pertahankan tab yang bisa digeser (swipeable/scrollable).
31
- - **Breadcrumbs:** Gunakan breadcrumbs untuk hierarki yang lebih dalam dari 2 level agar pengguna bisa dengan mudah kembali ke halaman induk.
32
-
33
- ### 3. Informasi (Information)
34
- Komponen yang menyampaikan status, panduan, atau peringatan kepada pengguna.
35
- *Contoh: Notifications (Toasts), Tooltips, Badges, Alerts, Progress Bars, Spinners.*
36
-
37
- **✅ Checklist & Best Practices:**
38
- - **Pewarnaan Kontekstual:** Gunakan warna standar untuk status: Hijau (Sukses), Merah (Error), Kuning/Oranye (Peringatan), Biru (Informasi).
39
- - **Kemudahan Menutup (Dismissibility):** Berikan opsi (tombol X) untuk menutup notifikasi persisten. Untuk toast notifikasi sukses/info, berikan *auto-dismiss* (misalnya setelah 3-5 detik).
40
- - **Tooltips:** Hanya muncul saat di-*hover* (desktop) atau ditekan lama (mobile). Jangan gunakan tooltips untuk informasi kritis yang wajib dibaca, gunakan teks bantuan inline.
41
- - **Animasi Transisi:** Notifikasi harus muncul dan menghilang dengan animasi yang halus (slide in/out, fade in/out) agar tidak mengejutkan pengguna.
42
-
43
- ### 4. Kontainer (Containers)
44
- Komponen yang mengelompokkan konten terkait menjadi unit visual yang terstruktur.
45
- *Contoh: Cards, Modals (Dialogs), Accordions, Drawers/Bottom Sheets, Carousels.*
46
-
47
- **✅ Checklist & Best Practices:**
48
- - **Visual Hierarchy & Depth:** Gunakan *Drop Shadows* atau batas tipis (borders) untuk membedakan kontainer dari background utama. Bedakan elevasi (z-index) antara Card biasa dan Modal yang melayang.
49
- - **Fokus Manajemen pada Modal:** Saat modal terbuka, background harus digelapkan (overlay/backdrop), *scroll* halaman di belakang harus dikunci (body `overflow: hidden`), dan fokus keyboard harus "terperangkap" (trap focus) di dalam modal. Bisa ditutup dengan tombol Escape (ESC) atau mengklik di luar area modal (backdrop click).
50
- - **Padding dan Whitespace:** Berikan ruang bernapas (padding) yang cukup di dalam kontainer. Hindari teks atau elemen yang terlalu menempel pada tepi *Card*.
51
- - **Clear Call to Action (CTA):** Pada Modal atau Card interaktif, pastikan tombol aksi utama (misal: "Simpan", "Beli") jelas dan ditempatkan secara logis (biasanya di kanan bawah atau bawah tengah).
52
-
53
- ## 🛠 Panduan Penggunaan Skill
54
-
55
- Ketika Anda diminta untuk memeriksa atau meningkatkan UI aplikasi:
56
-
57
- 1. **Identifikasi Komponen:** Kategorikan setiap komponen yang ada di halaman tersebut ke dalam 4 pilar di atas.
58
- 2. **Audit Berdasarkan Checklist:** Jalankan checklist di atas pada komponen yang sedang direview. Cari kekurangan dalam *state*, aksesibilitas, responsivitas, dan umpan balik (feedback).
59
- 3. **Usulkan Peningkatan Konkret:**
60
- - **Perbaikan CSS/Tailwind:** Usulkan penambahan class seperti `focus:ring-2 focus:outline-none`, `hover:bg-gray-100`, atau transisi yang mulus `transition-colors duration-200`.
61
- - **Peningkatan Aksesibilitas (a11y):** Berikan kode ARIA role atau atribut pendukung.
62
- - **Interaksi JavaScript (opsional):** Jika diperlukan untuk modal atau tab, usulkan struktur state yang menangkap interaksi pengguna dengan benar.
63
- 4. **Fokus pada Detail "Micro-interactions":** Peningkatan kecil pada *hover state* atau animasi *toast* berdampak besar pada impresi kualitas UI.
1
+ ---
2
+ name: ui-components-expert
3
+ description: 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
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # 🎨 UI Components Expert (2026/2027 Edition)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Description
17
+ 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.
18
+
19
+ ### Trigger Conditions
20
+ - Build or review UI components (buttons, forms, modals, navigation, tooltips).
21
+ - Implement accessible components (ARIA patterns, keyboard navigation).
22
+ - Audit components against WCAG 2.2.
23
+ - Set up component libraries (shadcn/ui, Radix UI, Base UI).
24
+ - Add micro-interactions and animations.
25
+
26
+ ## Orchestration & Integration
27
+ This skill orchestrates and connects with:
28
+ - `senior-frontend`: For overall React 19 / Next.js 15 architecture.
29
+ - `tailwind-expert`: For Tailwind v4 styling and theming.
30
+ - `design-system-architect`: For system-wide design tokens and primitives.
31
+ - `hig`: For Human Interface Guidelines (Hierarchy, Harmony, Consistency).
32
+
33
+ ### Component Stack (2026/2027)
34
+ - **Headless Primitives**: Radix UI / Base UI (Accessibility, behavior).
35
+ - **Component Library**: shadcn/ui (Pre-styled, customizable).
36
+ - **Styling**: Tailwind CSS v4 (Utility-first, `@theme` tokens).
37
+ - **Animation**: Motion / Framer Motion v12 (Spring physics).
38
+ - **Icons**: Lucide React.
39
+ - **Forms**: React Hook Form + Zod.
40
+
41
+ ### The 4 Pillars of UI Components
42
+
43
+ #### 1: Input Controls
44
+ Capture user intent and data (Buttons, Forms, Selects).
45
+ - **M3 Integration (if requested)**: Use M3 button variants: Filled, Tonal, Elevated, Outlined, and Text. Include FABs (Floating Action Buttons) for primary screen actions.
46
+ - **Visual States**: Define `default`, `hover`, `active`, `focus`, `disabled`, and `error`.
47
+ - **Touch Targets**: Minimum 44×44px (WCAG 2.5.8), M3 recommends 48x48px.
48
+ - **Immediate Feedback**: Provide visual ripple or scale animation on interaction.
49
+ - **Inline Validation**: Show errors on blur. Use `aria-invalid` and `aria-describedby`.
50
+ - **Stack**: React Hook Form + Zod.
51
+
52
+ #### 2: Navigation
53
+ Move through application structure (Navbars, Tabs, Command Palettes).
54
+ - **M3 Integration (if requested)**: Use M3 Navigation Bar for mobile (bottom), Navigation Rail for tablet, and Navigation Drawer for desktop.
55
+ - **Active State**: Indicate current location with high-contrast visual indicators.
56
+ - **Keyboard Navigation**: Support Arrow Keys for tabs, `Escape` to close.
57
+ - **Responsive**: Bottom navigation (<768px), collapsible sidebar (tablet), full sidebar (desktop).
58
+ - **Command Palette**: Add `⌘K` via `cmdk`.
59
+ - **Next.js 15**: Use `<Link viewTransition>` for smooth transitions.
60
+ - **ARIA**: Use `role="navigation"` and `aria-current="page"`.
61
+
62
+ #### 3: Information & Feedback
63
+ Display status and guidance (Toasts, Skeletons, Empty States).
64
+ - **M3 Integration (if requested)**: Use Snackbar for transient messages. Use Badges on navigation icons for notifications.
65
+ - **Color Semantics**: Green (success), red (error), yellow (warning), blue (info).
66
+ - **Toasts**: Use **Sonner**. Limit to 3 concurrent. Auto-dismiss success, keep errors until dismissed.
67
+ - **Loading**: Use Skeletons matching exact content layout over spinners (prevents CLS).
68
+ - **Empty States**: Provide illustration, context, and clear CTA.
69
+ - **ARIA**: `aria-live="polite"` (updates), `aria-live="assertive"` (critical).
70
+
71
+ #### 4: Containers & Layout
72
+ Group related content (Cards, Modals, Sheets).
73
+ - **M3 Integration (if requested)**: Use M3 Card variants: Elevated, Filled, Outlined. Follow M3 Dialog guidelines for Modals.
74
+ - **Modals**: Use Radix UI Dialog. It handles focus trapping and scroll locking automatically.
75
+ - **Animation**: Animate in (`animate-in fade-in zoom-in-95`).
76
+ - **Cards**: Use subtle shadows + borders. Avoid heavy drop shadows in light mode.
77
+ - **Sheets**: Use bottom sheet for mobile secondary actions, side sheet for desktop.
78
+
79
+ ### Micro-Interaction Checklist
80
+ - [ ] Implement `:focus-visible` ring (2px, brand color) on all interactives.
81
+ - [ ] **M3 State Layers**: If using M3, ensure interactive elements have distinct Hover, Focus, Pressed, and Dragged state layers.
82
+ - [ ] Add loading state (spinner + disabled) to submit buttons.
83
+ - [ ] Use **Framer Motion v12 spring physics** (`stiffness: 300, damping: 20`) for natural, snappy interactions. Avoid rigid linear transitions.
84
+ - [ ] Use `transition-all duration-200 ease-out` for simple hovers.
85
+ - [ ] Test dark mode for all states (especially error contrast).
86
+
87
+ ### WCAG 2.2 Quick Reference
88
+ - **1.4.3**: Text contrast ≥4.5:1.
89
+ - **2.5.8**: Touch target ≥24×24px (min), 44×44px (target).
90
+ - **2.4.7**: Visible focus indicator.
91
+
92
+ ---
93
+
94
+ <a name="bahasa-indonesia"></a>
95
+ ## Bahasa Indonesia
96
+
97
+ ### Deskripsi
98
+ 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.
99
+
100
+ ### Kondisi Pemicu
101
+ - Membangun atau me-review komponen UI (tombol, form, modal, navigasi).
102
+ - Implementasi komponen aksesibel (pola ARIA, navigasi keyboard).
103
+ - Audit komponen berdasarkan WCAG 2.2.
104
+ - Setup library komponen (shadcn/ui, Radix UI, Base UI).
105
+ - Menambahkan micro-interaction dan animasi.
106
+
107
+ ## Integrasi Orkestrasi
108
+ Skill ini mengorkestrasi dan terhubung dengan:
109
+ - `senior-frontend`: Untuk arsitektur keseluruhan React 19 / Next.js 15.
110
+ - `tailwind-expert`: Untuk styling dan theming Tailwind v4.
111
+ - `design-system-architect`: Untuk design token dan primitif skala sistem.
112
+ - `hig`: Untuk panduan Human Interface (Hierarki, Harmoni, Konsistensi).
113
+
114
+ ### QA Visual Mandatori
115
+ - Wajib gunakan `browser_subagent` dan `visual-qa-vision-agent` untuk validasi layout.
116
+ - Standar Pixel-Perfect: Jangan menebak ukuran. Ambil screenshot dan koreksi pergeseran tata letak.
117
+
118
+ ### Stack Komponen (2026/2027)
119
+ - **Headless**: Radix UI / Base UI.
120
+ - **Library**: shadcn/ui.
121
+ - **Styling**: Tailwind CSS v4.
122
+ - **Animasi**: Motion / Framer Motion v12.
123
+ - **Form**: React Hook Form + Zod.
124
+
125
+ ### 4 Pilar Komponen UI
126
+
127
+ #### 1: Kontrol Input
128
+ Tangkap data (Tombol, Form, Select).
129
+ - **Integrasi M3 (jika diminta)**: Gunakan varian tombol M3: Filled, Tonal, Elevated, Outlined, dan Text. Sertakan FABs (Floating Action Buttons).
130
+ - Definisikan state visual: `default`, `hover`, `active`, `focus`, `disabled`, `error`.
131
+ - Target sentuh minimal 44×44px (M3 merekomendasikan 48x48px).
132
+ - Tampilkan error saat blur dengan `aria-invalid` dan `aria-describedby`.
133
+ - Gunakan React Hook Form + Zod.
134
+
135
+ #### 2: Navigasi
136
+ Pergerakan pengguna (Navbar, Tab, Command Palette).
137
+ - **Integrasi M3 (jika diminta)**: Gunakan Navigation Bar M3 untuk mobile, Navigation Rail untuk tablet, dan Navigation Drawer untuk desktop.
138
+ - Gunakan indikator visual kontras tinggi untuk lokasi aktif.
139
+ - Wajib dukung navigasi keyboard (Arrow Keys, Escape).
140
+ - Responsive: Bottom navigation (<768px), sidebar desktop.
141
+ - Gunakan `cmdk` untuk Command Palette `⌘K`.
142
+ - Tandai navigasi aktif dengan `aria-current="page"`.
143
+
144
+ #### 3: Informasi & Feedback
145
+ Tampilkan status (Toast, Skeleton, Empty State).
146
+ - **Integrasi M3 (jika diminta)**: Gunakan Snackbar untuk pesan sementara. Gunakan Badges pada ikon navigasi.
147
+ - Gunakan warna semantik secara konsisten.
148
+ - Gunakan **Sonner** untuk toast (maks 3 sekaligus).
149
+ - Gunakan Skeleton persis sesuai layout (jangan gunakan spinner untuk layout) guna mencegah CLS.
150
+ - Sediakan ilustrasi dan CTA pada Empty State.
151
+
152
+ #### 4: Kontainer & Layout
153
+ Kelompokkan konten (Card, Modal, Sheet).
154
+ - **Integrasi M3 (jika diminta)**: Gunakan varian Card M3: Elevated, Filled, Outlined. Ikuti panduan Dialog M3 untuk modal.
155
+ - Gunakan Radix UI Dialog untuk modal (menangani focus trap dan scroll lock).
156
+ - Animasikan kemunculan modal (fade + scale).
157
+ - Gunakan shadow tipis untuk elevasi card di mode terang.
158
+ - Gunakan bottom sheet di mobile.
159
+
160
+ ### Checklist Micro-Interaction
161
+ - [ ] Ring `:focus-visible` (2px) pada elemen interaktif.
162
+ - [ ] **State Layers M3**: Jika menggunakan M3, pastikan elemen interaktif memiliki lapisan status (Hover, Focus, Pressed, Dragged) yang berbeda.
163
+ - [ ] State loading pada tombol.
164
+ - [ ] Gunakan **Framer Motion v12 spring physics** (`stiffness: 300, damping: 20`) untuk interaksi alami.
165
+ - [ ] Transisi hover `transition-all duration-200 ease-out`.
166
+ - [ ] Uji kontras warna dark mode.