vibes-plug 2.5.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 (177) 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 +37 -7
  5. package/BLUEPRINT.md +309 -217
  6. package/CHANGELOG.md +133 -1
  7. package/CLAUDE.md +70 -0
  8. package/LICENSE +1 -1
  9. package/README.md +641 -415
  10. package/index.js +19 -0
  11. package/package.json +44 -8
  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 -52
  17. package/skills/ai-evals-benchmark-expert/SKILL.md +188 -0
  18. package/skills/ai-llm-integration-expert/SKILL.md +185 -178
  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 +6 -3
  23. package/skills/api-gateway-proxy-expert/SKILL.md +81 -0
  24. package/skills/app-analyzer-optimizer/SKILL.md +6 -3
  25. package/skills/apple-ecosystem-expert/SKILL.md +144 -141
  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 +210 -24
  29. package/skills/authentication-identity-expert/SKILL.md +278 -275
  30. package/skills/auto-doc-updater/SKILL.md +7 -1
  31. package/skills/autonomous-chaos-monkey/SKILL.md +63 -63
  32. package/skills/autonomous-red-teamer/SKILL.md +172 -28
  33. package/skills/autonomous-tdd-debugger/SKILL.md +70 -64
  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 +9 -6
  38. package/skills/brainstorming/SKILL.md +58 -50
  39. package/skills/browser-automation-expert/SKILL.md +197 -21
  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 +45 -36
  43. package/skills/cloud-hosting-expert/SKILL.md +7 -1
  44. package/skills/coderabbit/SKILL.md +7 -1
  45. package/skills/compliance-gdpr-privacy-expert/SKILL.md +85 -0
  46. package/skills/cron-scheduler-expert/SKILL.md +303 -297
  47. package/skills/data-pipeline-etl-expert/SKILL.md +84 -0
  48. package/skills/data-telemetry-expert/SKILL.md +7 -1
  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 +13 -3
  52. package/skills/dependency-upgrade-migrator/SKILL.md +300 -294
  53. package/skills/design-system-architect/SKILL.md +278 -259
  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 +7 -1
  57. package/skills/doku-payment-gateway/SKILL.md +7 -1
  58. package/skills/domain-driven-design-expert/SKILL.md +82 -0
  59. package/skills/e2e-testing-expert/SKILL.md +7 -1
  60. package/skills/ecommerce-expert/SKILL.md +87 -0
  61. package/skills/edge-serverless-db-expert/SKILL.md +98 -42
  62. package/skills/email-notification-expert/SKILL.md +367 -361
  63. package/skills/error-resilience-expert/SKILL.md +485 -479
  64. package/skills/event-driven-architect/SKILL.md +7 -1
  65. package/skills/feature-flag-analytics-expert/SKILL.md +65 -45
  66. package/skills/file-upload-media-expert/SKILL.md +436 -430
  67. package/skills/firebase-security-expert/SKILL.md +7 -1
  68. package/skills/form-validation-expert/SKILL.md +406 -400
  69. package/skills/fullstack-expert/SKILL.md +60 -1
  70. package/skills/gemini-agent-booster/SKILL.md +173 -135
  71. package/skills/geospatial-maps-expert/SKILL.md +80 -0
  72. package/skills/global-a11y-i18n-expert/SKILL.md +7 -1
  73. package/skills/glsl-shader-expert/SKILL.md +106 -100
  74. package/skills/go-programming-expert/SKILL.md +21 -15
  75. package/skills/graph-rag-knowledge-expert/SKILL.md +159 -0
  76. package/skills/graphql-apollo-expert/SKILL.md +113 -107
  77. package/skills/headless-cms-expert/SKILL.md +181 -0
  78. package/skills/hig/SKILL.md +7 -1
  79. package/skills/js-backend-expert/SKILL.md +218 -216
  80. package/skills/legacy-code-translator/SKILL.md +70 -64
  81. package/skills/local-slm-edge-ai-expert/SKILL.md +167 -0
  82. package/skills/logging-error-tracking-expert/SKILL.md +343 -337
  83. package/skills/mcp-client-orchestrator/SKILL.md +75 -69
  84. package/skills/mcp-server-architect/SKILL.md +294 -194
  85. package/skills/micro-frontend-architect/SKILL.md +111 -105
  86. package/skills/mobile-expo-expert/SKILL.md +8 -2
  87. package/skills/mobile-push-notification-expert/SKILL.md +70 -50
  88. package/skills/modern-css-native-expert/SKILL.md +189 -0
  89. package/skills/monday-design-aesthetic/SKILL.md +7 -1
  90. package/skills/monorepo-architect/SKILL.md +7 -1
  91. package/skills/mpa-orchestrator/SKILL.md +20 -1
  92. package/skills/multi-agent-orchestration/SKILL.md +254 -234
  93. package/skills/multiple-entry-points/SKILL.md +37 -1
  94. package/skills/mvc-expert/SKILL.md +7 -1
  95. package/skills/n8n-automation-expert/SKILL.md +89 -0
  96. package/skills/nextjs-app-router-expert/SKILL.md +148 -0
  97. package/skills/openapi-swagger-codegen-expert/SKILL.md +67 -0
  98. package/skills/payment-gateway-expert/SKILL.md +85 -1
  99. package/skills/pdf-document-generation-expert/SKILL.md +91 -0
  100. package/skills/performance-web-vitals/SKILL.md +7 -1
  101. package/skills/post-quantum-crypto-migrator/SKILL.md +57 -57
  102. package/skills/prd-architect/SKILL.md +7 -1
  103. package/skills/proactive-background-watcher/SKILL.md +67 -61
  104. package/skills/production-ready-hardener/SKILL.md +461 -455
  105. package/skills/project-context-mapper/SKILL.md +84 -78
  106. package/skills/pwa-offline-first-expert/SKILL.md +185 -0
  107. package/skills/python-programming-expert/SKILL.md +407 -401
  108. package/skills/rate-limit-abuse-prevention/SKILL.md +376 -370
  109. package/skills/realtime-collaboration-expert/SKILL.md +55 -1
  110. package/skills/rich-text-editor-expert/SKILL.md +177 -0
  111. package/skills/rust-programming-expert/SKILL.md +7 -1
  112. package/skills/saas-billing/SKILL.md +7 -1
  113. package/skills/saas-multi-tenant/SKILL.md +7 -1
  114. package/skills/saas-mvp-launcher/SKILL.md +20 -1
  115. package/skills/saas-transformer/SKILL.md +499 -488
  116. package/skills/scalability-clean-code/SKILL.md +7 -1
  117. package/skills/search-engine-expert/SKILL.md +89 -0
  118. package/skills/secure-fuzz-testing/SKILL.md +7 -1
  119. package/skills/self-evolving-memory-graph/SKILL.md +90 -74
  120. package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -57
  121. package/skills/senior-frontend/SKILL.md +141 -161
  122. package/skills/seo/SKILL.md +41 -17
  123. package/skills/session-context-loader/SKILL.md +82 -76
  124. package/skills/session-handoff-resume/SKILL.md +7 -1
  125. package/skills/{skill_baru → skill-baru}/SKILL.md +8 -2
  126. package/skills/solidjs-expert/SKILL.md +80 -0
  127. package/skills/spa-orchestrator/SKILL.md +20 -1
  128. package/skills/sse-websocket-streaming-expert/SKILL.md +93 -0
  129. package/skills/state-management-expert/SKILL.md +7 -1
  130. package/skills/supabase-migration/SKILL.md +47 -1
  131. package/skills/supabase-security-expert/SKILL.md +7 -1
  132. package/skills/svelte-sveltekit-expert/SKILL.md +91 -0
  133. package/skills/svg-animation-motion-expert/SKILL.md +115 -0
  134. package/skills/tailwind-expert/SKILL.md +88 -136
  135. package/skills/tanstack-query-expert/SKILL.md +7 -1
  136. package/skills/tauri-expert/SKILL.md +7 -1
  137. package/skills/token-saver/SKILL.md +1 -1
  138. package/skills/typescript-expert/SKILL.md +12 -6
  139. package/skills/ui-components-expert/SKILL.md +165 -279
  140. package/skills/ui-ux-pro-max/SKILL.md +23 -3
  141. package/skills/vector-db-rag-expert/SKILL.md +175 -19
  142. package/skills/vibe-code-gardener/SKILL.md +1 -1
  143. package/skills/visual-qa-vision-agent/SKILL.md +70 -64
  144. package/skills/voice-ai-realtime-agent/SKILL.md +202 -0
  145. package/skills/vue-frontend-expert/SKILL.md +131 -125
  146. package/skills/wasm-edge-computing-expert/SKILL.md +97 -0
  147. package/skills/web-3d-graphics-expert/SKILL.md +136 -130
  148. package/skills/web-game-engine-expert/SKILL.md +101 -95
  149. package/skills/web-scraper/SKILL.md +157 -207
  150. package/skills/website-design-cloner/SKILL.md +179 -173
  151. package/skills/webxr-ar-vr-expert/SKILL.md +122 -116
  152. package/skills/wordpress-headless-expert/SKILL.md +144 -0
  153. package/skills/zero-to-prod-orchestrator/SKILL.md +52 -27
  154. package/skills/zero-trust-secret-vault/SKILL.md +87 -39
  155. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  156. package/.github/workflows/publish.yml +0 -20
  157. package/CONTRIBUTING.md +0 -199
  158. package/SECURITY.md +0 -21
  159. package/banner.png +0 -0
  160. package/skills/autonomous-swarm-director/SKILL.md +0 -69
  161. package/skills/hyper-context-synthesizer/SKILL.md +0 -55
  162. package/skills/llm-cost-arbitrage-router/SKILL.md +0 -59
  163. package/skills/senior-fullstack/SKILL.md +0 -167
  164. package/skills/senior-fullstack/references/architecture_patterns.md +0 -160
  165. package/skills/senior-fullstack/references/development_workflows.md +0 -222
  166. package/skills/senior-fullstack/references/tech_stack_guide.md +0 -190
  167. package/skills/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
  168. package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
  169. package/skills/senior-fullstack/scripts/project_scaffolder.py +0 -114
  170. package/skills/seo-aeo-landing-page-writer/SKILL.md +0 -97
  171. package/skills/seo-geo/SKILL.md +0 -188
  172. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  173. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  174. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
  175. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  176. package/skills/ui_ux_expert/SKILL.md +0 -125
  177. package/vibes-swarm-demo.gif +0 -0
@@ -1,280 +1,166 @@
1
- ---
2
- name: ui-components-expert
3
- description: "Expert guide for building production-quality UI components following the 4 pillars: Input Controls, Navigation, Information, and Containers. Covers React 19, Radix UI, shadcn/ui, accessibility (WCAG 2.2), and modern interaction patterns / Panduan ahli membangun komponen UI berkualitas produksi dengan 4 pilar: Kontrol Input, Navigasi, Informasi, dan Kontainer."
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
4
  author: "Roedy Rustam"
5
- ---
6
-
7
- # 🎨 UI Components Expert (2026 Edition)
8
-
9
- [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
-
11
- ---
12
-
13
- <a name="english"></a>
14
- ## English
15
-
16
- ### Description
17
- Expert guide for evaluating, auditing, and building production-quality UI components in 2026. Covers the **4 pillars of UI components** with modern tooling: **shadcn/ui**, **Radix UI**, **Base UI**, **React 19 patterns**, **WCAG 2.2 accessibility**, and micro-interaction design. Use this skill when building, reviewing, or improving any interactive UI element.
18
-
19
- ### Trigger Conditions
20
- - Building or reviewing UI components: buttons, forms, modals, navigation, tooltips, notifications.
21
- - Implementing accessible components with ARIA patterns and keyboard navigation.
22
- - Auditing existing components against WCAG 2.2 and interaction design standards.
23
- - Setting up a component library with **shadcn/ui**, **Radix UI**, or **Base UI**.
24
- - Adding micro-interactions, hover states, focus rings, and animation to components.
25
-
26
- ---
27
-
28
- ### Component Stack Recommendation (2026)
29
-
30
- | Layer | Tool | Purpose |
31
- |---|---|---|
32
- | **Headless Primitives** | Radix UI / Base UI (MUI) | Accessibility, behavior, no styles |
33
- | **Component Library** | shadcn/ui (copy-paste) | Pre-styled, customizable, owns the code |
34
- | **Styling** | Tailwind CSS v4 | Utility-first, design tokens via `@theme` |
35
- | **Animation** | Motion (Framer Motion v12) | Spring physics, layout animations |
36
- | **Icons** | Lucide React | Consistent, tree-shakeable icon set |
37
- | **Forms** | React Hook Form + Zod | Type-safe, performant form state |
38
-
39
- ---
40
-
41
- ### The 4 Pillars of UI Components
42
-
43
- #### Pillar 1: Input Controls
44
- Components that capture user intent and data.
45
- *Examples: Buttons, Checkboxes, Radio Groups, Text Fields, Selects, Switches, Sliders, Date Pickers*
46
-
47
- **Best Practices:**
48
- - **Clear Visual States**: Every input must have distinct `default`, `hover`, `active`, `focus`, `disabled`, and `error` states.
49
- - **Touch Target Sizes**: Minimum 44×44px (WCAG 2.5.8) for all interactive elements on mobile.
50
- - **Immediate Feedback**: Provide visual/haptic feedback on interaction — ripple, color change, or animation.
51
- - **Inline Validation**: Show error messages immediately after blur, not only on submit. Use `aria-invalid` and `aria-describedby` for screen readers.
52
- - **React Hook Form + Zod Pattern**:
53
- ```tsx
54
- import { useForm } from 'react-hook-form';
55
- import { zodResolver } from '@hookform/resolvers/zod';
56
- import { z } from 'zod';
57
-
58
- const schema = z.object({
59
- email: z.string().email('Invalid email address'),
60
- name: z.string().min(2, 'Name must be at least 2 characters'),
61
- });
62
-
63
- export function UserForm() {
64
- const { register, handleSubmit, formState: { errors, isSubmitting } } = useForm({
65
- resolver: zodResolver(schema),
66
- });
67
-
68
- return (
69
- <form onSubmit={handleSubmit(onSubmit)}>
70
- <div>
71
- <input
72
- {...register('email')}
73
- aria-invalid={!!errors.email}
74
- aria-describedby={errors.email ? 'email-error' : undefined}
75
- className="..."
76
- />
77
- {errors.email && (
78
- <p id="email-error" role="alert" className="text-destructive text-sm">
79
- {errors.email.message}
80
- </p>
81
- )}
82
- </div>
83
- <button type="submit" disabled={isSubmitting}>
84
- {isSubmitting ? 'Saving...' : 'Save'}
85
- </button>
86
- </form>
87
- );
88
- }
89
- ```
90
-
91
- ---
92
-
93
- #### Pillar 2: Navigation
94
- Components that help users move through the application structure.
95
- *Examples: Navbars, Tabs, Breadcrumbs, Pagination, Sidebars, Dropdowns, Command Palettes*
96
-
97
- **Best Practices:**
98
- - **Active State Clarity**: Always indicate the current location with a high-contrast visual indicator (filled background, underline, bold text). Never use color alone.
99
- - **Keyboard Navigation**: Tabs must support Arrow Keys; menus must support `Escape` to close; focus must be managed on open/close.
100
- - **Responsive Patterns**: Use bottom navigation on mobile (<768px), collapsible sidebar on tablet, full sidebar on desktop.
101
- - **Command Palette (2026 Standard)**: Add `⌘K` / `Ctrl+K` command palette for power users using `cmdk` library.
102
- - **`<Link>` with View Transitions** (Next.js 15):
103
- ```tsx
104
- import Link from 'next/link';
105
-
106
- // Enables smooth page transitions
107
- <Link href="/dashboard" viewTransition>
108
- Dashboard
109
- </Link>
110
- ```
111
- - **ARIA Roles**: Use `role="navigation"` with `aria-label` on `<nav>`. Mark current page with `aria-current="page"`.
112
-
113
- ---
114
-
115
- #### Pillar 3: Information & Feedback
116
- Components that display status, guidance, or alerts to users.
117
- *Examples: Toast Notifications, Tooltips, Badges, Alert Banners, Progress Bars, Skeletons, Empty States*
118
-
119
- **Best Practices:**
120
- - **Contextual Color System**: Use semantic colors consistently — green (success), red (error/destructive), yellow (warning), blue (info).
121
- - **Toast Notifications**: Use **Sonner** (lightweight, accessible) — limit to 3 concurrent toasts, auto-dismiss success in 4s, keep errors until dismissed.
122
- - **Skeleton Loading**: Prefer skeletons over spinners for content areas — they reduce perceived load time and prevent layout shift (CLS).
123
- ```tsx
124
- // Sonner toast
125
- import { toast } from 'sonner';
126
-
127
- toast.success('Profile updated!');
128
- toast.error('Something went wrong', { description: 'Please try again.' });
129
- toast.promise(saveProfile(), {
130
- loading: 'Saving...',
131
- success: 'Saved!',
132
- error: 'Failed to save',
133
- });
134
- ```
135
- - **Empty States**: Never show blank areas — provide illustration, explanation, and a clear CTA.
136
- - **`aria-live` for Dynamic Content**: Use `aria-live="polite"` for non-urgent updates, `aria-live="assertive"` for critical errors.
137
-
138
- ---
139
-
140
- #### Pillar 4: Containers & Layout
141
- Components that group related content into structured visual units.
142
- *Examples: Cards, Modals (Dialogs), Sheets (Drawers), Accordions, Tabs, Carousels, Popover*
143
-
144
- **Best Practices:**
145
- - **Modal/Dialog (Radix UI)**:
146
- ```tsx
147
- import * as Dialog from '@radix-ui/react-dialog';
148
-
149
- export function ConfirmDialog({ onConfirm }: { onConfirm: () => void }) {
150
- return (
151
- <Dialog.Root>
152
- <Dialog.Trigger asChild>
153
- <button>Delete Account</button>
154
- </Dialog.Trigger>
155
- <Dialog.Portal>
156
- <Dialog.Overlay className="fixed inset-0 bg-black/50 backdrop-blur-sm animate-in fade-in" />
157
- <Dialog.Content
158
- className="fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 bg-background rounded-xl shadow-2xl p-6 w-[400px] animate-in fade-in zoom-in-95"
159
- aria-describedby="dialog-description"
160
- >
161
- <Dialog.Title className="text-lg font-semibold">Are you sure?</Dialog.Title>
162
- <Dialog.Description id="dialog-description" className="text-muted-foreground mt-2">
163
- This action cannot be undone.
164
- </Dialog.Description>
165
- <div className="flex gap-3 mt-6 justify-end">
166
- <Dialog.Close asChild>
167
- <button className="btn-secondary">Cancel</button>
168
- </Dialog.Close>
169
- <button onClick={onConfirm} className="btn-destructive">Delete</button>
170
- </div>
171
- </Dialog.Content>
172
- </Dialog.Portal>
173
- </Dialog.Root>
174
- );
175
- }
176
- ```
177
- - **Focus Trap**: Radix UI handles focus trapping automatically inside dialogs.
178
- - **Scroll Lock**: Lock body scroll when modal is open — Radix handles this.
179
- - **Card Design**: Use subtle shadows + borders for elevation. Never use heavy drop shadows on cards in light mode.
180
- - **Sheet/Drawer**: Use for mobile-first secondary actions. Prefer bottom sheet on mobile, side sheet on desktop.
181
-
182
- ---
183
-
184
- ### Micro-Interaction Checklist (Next-Gen)
185
- These small details separate premium from basic UI:
186
- - [ ] All interactive elements have `:focus-visible` ring (2px, brand color).
187
- - [ ] Buttons have loading state with spinner + disabled state.
188
- - [ ] Form fields animate error shake on invalid submit.
189
- - [ ] **Physics-Based Animation**: Do not rely solely on linear `ease-in-out`. Use Framer Motion (v12) `spring` physics (`stiffness: 300, damping: 20`) for modals, popovers, and interactive elements to provide a natural, snappy feel.
190
- - [ ] Hover transitions on simple buttons use `transition-all duration-200 ease-out`.
191
- - [ ] Modals animate in with fade + scale: `animate-in fade-in zoom-in-95`.
192
- - [ ] List items stagger-animate when rendered (use Motion `stagger`).
193
- - [ ] Skeleton loaders match the exact layout of the content they replace.
194
- - [ ] Dark mode tested for all states (especially error/warning colors).
195
-
196
- ### Accessibility (WCAG 2.2) Quick Reference
197
- | Criterion | Requirement |
198
- |---|---|
199
- | **1.4.3** | Text contrast ≥4.5:1 (normal), ≥3:1 (large/bold) |
200
- | **2.5.8** | Touch target ≥24×24px (min), 44×44px (recommended) |
201
- | **2.4.7** | Focus indicator visible on all interactive elements |
202
- | **2.4.11** | Focus not obscured by sticky headers |
203
- | **3.2.2** | No unexpected context change on input |
204
-
205
- ---
206
-
207
- <a name="bahasa-indonesia"></a>
208
- ## Bahasa Indonesia
209
-
210
- ### Deskripsi
211
- Panduan ahli untuk mengevaluasi, mengaudit, dan membangun komponen UI berkualitas produksi di 2026. Mencakup **4 pilar komponen UI** dengan tooling modern: **shadcn/ui**, **Radix UI**, **Base UI**, **pola React 19**, **aksesibilitas WCAG 2.2**, dan desain micro-interaction. Gunakan skill ini saat membangun, me-review, atau meningkatkan elemen UI interaktif apapun.
212
-
213
- ### Kondisi Pemicu
214
- - Membangun atau me-review komponen UI: tombol, form, modal, navigasi, tooltip, notifikasi.
215
- - Mengimplementasikan komponen aksesibel dengan pola ARIA dan navigasi keyboard.
216
- - Mengaudit komponen yang ada terhadap standar WCAG 2.2 dan desain interaksi.
217
- - Menyiapkan library komponen dengan shadcn/ui, Radix UI, atau Base UI.
218
- - Menambahkan micro-interaction, hover state, focus ring, dan animasi ke komponen.
219
-
220
- ### QA Visual Mandatori (KRITIS)
221
- - **Siklus Verifikasi Visual**: Anda DILARANG KERAS menyelesaikan komponen UI tanpa mengambil screenshot menggunakan `browser_subagent` dan menganalisisnya via `visual-qa-vision-agent`.
222
- - **Standar Pixel-Perfect**: Jangan menebak padding/margin. Ambil gambar, analisis dengan kemampuan Vision Anda, dan koreksi pergeseran tata letak hingga sempurna.
223
-
224
- ### Stack Komponen Rekomendasi (2026)
225
- - **Headless Primitives**: Radix UI / Base UI — aksesibilitas dan behavior tanpa style.
226
- - **Library Komponen**: shadcn/ui — pre-styled, customizable, kode dimiliki sendiri.
227
- - **Styling**: Tailwind CSS v4 — utility-first dengan design token via `@theme`.
228
- - **Animasi**: Motion (Framer Motion v12) — spring physics, layout animations.
229
- - **Form**: React Hook Form + Zod — type-safe, performa tinggi.
230
-
231
- ### 4 Pilar Komponen UI
232
-
233
- #### Pilar 1: Kontrol Input
234
- Komponen yang menangkap input dan data pengguna (tombol, form, checkbox, select, switch).
235
-
236
- **Best Practices:**
237
- - Setiap input harus memiliki state visual yang jelas: `default`, `hover`, `active`, `focus`, `disabled`, `error`.
238
- - Ukuran touch target minimal 44×44px untuk elemen interaktif di mobile.
239
- - Validasi inline dengan pesan error yang muncul setelah blur, bukan hanya saat submit.
240
- - Gunakan `aria-invalid` dan `aria-describedby` untuk screen reader.
241
- - Gunakan **React Hook Form + Zod** untuk form yang type-safe dan berperforma tinggi.
242
-
243
- #### Pilar 2: Navigasi
244
- Komponen yang membantu pengguna bergerak dalam struktur aplikasi (navbar, tab, breadcrumb, sidebar, command palette).
245
-
246
- **Best Practices:**
247
- - Selalu tunjukkan lokasi saat ini dengan indikator visual yang jelas (background, garis bawah, teks tebal).
248
- - Navigasi keyboard wajib: Arrow Keys untuk tab/menu, Escape untuk menutup, fokus terkelola saat buka/tutup.
249
- - Gunakan bottom navigation di mobile, sidebar di desktop.
250
- - Tambahkan command palette `⌘K` untuk power user menggunakan library `cmdk`.
251
- - Tandai halaman aktif dengan `aria-current="page"`.
252
-
253
- #### Pilar 3: Informasi & Feedback
254
- Komponen yang menampilkan status, panduan, atau peringatan (toast, tooltip, badge, skeleton, empty state).
255
-
256
- **Best Practices:**
257
- - Warna semantik yang konsisten: hijau (sukses), merah (error), kuning (peringatan), biru (info).
258
- - Gunakan **Sonner** untuk toast notifikasi — ringan dan aksesibel.
259
- - Gunakan skeleton loader (bukan spinner) untuk area konten guna mengurangi perceived load time.
260
- - Selalu sediakan empty state dengan ilustrasi, penjelasan, dan CTA yang jelas.
261
- - Gunakan `aria-live="polite"` untuk pembaruan konten dinamis.
262
-
263
- #### Pilar 4: Kontainer & Layout
264
- Komponen yang mengelompokkan konten terkait (card, modal/dialog, sheet/drawer, accordion, popover).
265
-
266
- **Best Practices:**
267
- - Gunakan **Radix UI Dialog** untuk modal — menangani focus trap, scroll lock, dan aksesibilitas secara otomatis.
268
- - Animasikan modal dengan fade + scale: `animate-in fade-in zoom-in-95`.
269
- - Gunakan shadow tipis + border untuk elevasi card. Hindari drop shadow berat di mode terang.
270
- - Gunakan bottom sheet di mobile, side sheet di desktop untuk aksi sekunder.
271
-
272
- ### Checklist Micro-Interaction (Next-Gen)
273
- Detail kecil yang membedakan UI premium dari yang biasa:
274
- - [ ] Semua elemen interaktif memiliki `:focus-visible` ring (2px, warna brand).
275
- - [ ] Tombol memiliki loading state dengan spinner + disabled state.
276
- - [ ] **Animasi Fisika (Spring)**: Hindari transisi linier kaku. Gunakan Framer Motion (v12) `spring` (`stiffness: 300, damping: 20`) pada interaksi klik, modal, dan dropdown agar terasa alami dan sangat responsif.
277
- - [ ] Hover transition sederhana menggunakan `transition-all duration-200 ease-out`.
278
- - [ ] Modal dan drawer muncul dengan animasi fade + scale yang mulus.
279
- - [ ] Skeleton loader sesuai persis dengan layout konten yang digantikan.
280
- - [ ] Dark mode diuji untuk semua state (terutama warna error/warning).
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.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: ui-ux-pro-max
3
3
  description: "Comprehensive design guide & BM25 search engine for web and mobile applications across 11 tech stacks / Panduan desain komprehensif & mesin pencari BM25 untuk aplikasi web dan mobile di 11 tech stack."
4
- author: "Roedy Rustam"
4
+ author: "Roedy Rustam"
5
5
  ---
6
6
 
7
7
  # UI/UX Pro Max - Design Intelligence System
@@ -13,8 +13,11 @@ author: "Roedy Rustam"
13
13
  <a name="english"></a>
14
14
  ## English
15
15
 
16
+ ### Orchestration & Integration
17
+ Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
18
+
16
19
  ### Description
17
- UI/UX Pro Max is a comprehensive design intelligence engine equipped with an offline BM25 search index covering color palettes, typography, responsive patterns, icon sets, chart recommendations, UX guidelines, and stack-specific best practices across **11 technology stacks**.
20
+ UI/UX Pro Max is a comprehensive design intelligence engine equipped with an offline BM25 search index covering color palettes, typography, responsive patterns, icon sets, chart recommendations, UX guidelines, **Material Design 3 (M3)**, and stack-specific best practices across **11 technology stacks**.
18
21
 
19
22
  ### Trigger Conditions
20
23
  Reference these guidelines or run the CLI search engine when:
@@ -55,6 +58,7 @@ python scripts/search.py "<query>" --domain <domain> --max-results 3
55
58
  - `icons`: Icon usage guidance, SVG libraries (Lucide, Heroicons), and code imports
56
59
  - `react`: React & Next.js performance optimizations, re-render fixes & dynamic imports
57
60
  - `web`: Web interface guidelines (ARIA, focus traps, virtual list, form inputs)
61
+ - `m3`: Material Design 3 specific design tokens, color roles, elevation, and component specs
58
62
 
59
63
  *Example:* `python scripts/search.py "fintech dark theme" --domain color`
60
64
 
@@ -92,6 +96,7 @@ python scripts/search.py "<query>" --stack <stack> --max-results 3
92
96
  - **Dark Mode**: High contrast foreground elements over dark slate/gray backgrounds; avoid pure black `#000000` text containers unless requested.
93
97
 
94
98
  #### 5. Dashboard & Information Hierarchy
99
+ - **Material Design 3 (M3) Integration**: Follow M3 Layouts (compact, medium, expanded). Use M3 elevation for layering instead of heavy borders.
95
100
  - **Layout Flow**: KPI summary cards top -> Trend charts middle -> Detailed data tables bottom.
96
101
  - **Visual Grid**: Consistent gaps/padding (16px / 24px). Clean subtle borders instead of heavy black dividers.
97
102
  - **Data Viz**: Maximum 3–5 coordinated colors in graphs. Responsive tooltips and legend alignment.
@@ -110,8 +115,11 @@ python scripts/search.py "<query>" --stack <stack> --max-results 3
110
115
  <a name="bahasa-indonesia"></a>
111
116
  ## Bahasa Indonesia
112
117
 
118
+ ### Integrasi Orkestrasi
119
+ Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
120
+
113
121
  ### Deskripsi
114
- UI/UX Pro Max adalah mesin kecerdasan desain komprehensif yang dilengkapi indeks pencarian BM25 offline. Mencakup palet warna, tipografi, pola tata letak responsif, rekomendasi ikon, grafik visualisasi data, pedoman UX, serta praktik terbaik untuk **11 tumpukan teknologi (technology stacks)**.
122
+ UI/UX Pro Max adalah mesin kecerdasan desain komprehensif yang dilengkapi indeks pencarian BM25 offline. Mencakup palet warna, tipografi, pola tata letak responsif, rekomendasi ikon, grafik visualisasi data, pedoman UX, **Material Design 3 (M3)**, serta praktik terbaik untuk **11 tumpukan teknologi (technology stacks)**.
115
123
 
116
124
  ### Kondisi Pemicu
117
125
  Gunakan pedoman ini atau jalankan mesin pencari CLI ketika:
@@ -151,6 +159,7 @@ python scripts/search.py "<kueri>" --domain <domain> --max-results 3
151
159
  - `icons`: Panduan penggunaan ikon, pustaka SVG (Lucide, Heroicons), & import kode
152
160
  - `react`: Optimasi performa React & Next.js, perbaikan re-render & dynamic import
153
161
  - `web`: Pedoman antarmuka web (ARIA, focus trap, virtual list, input form)
162
+ - `m3`: Token desain spesifik Material Design 3, peran warna, elevasi, dan spesifikasi komponen
154
163
 
155
164
  *Contoh:* `python scripts/search.py "fintech dark theme" --domain color`
156
165
 
@@ -188,6 +197,7 @@ python scripts/search.py "<kueri>" --stack <stack> --max-results 3
188
197
  - **Mode Gelap**: Kontras tinggi antara elemen latar depan dengan latar belakang gelap; hindari kontainer teks serba hitam pekat `#000000` kecuali diminta khusus.
189
198
 
190
199
  #### 5. Dashboard & Hierarki Informasi
200
+ - **Integrasi Material Design 3 (M3)**: Ikuti tata letak M3 (compact, medium, expanded). Gunakan elevasi M3 untuk pelapisan alih-alih border tebal.
191
201
  - **Alur Tata Letak**: Kartu ringkasan KPI di atas -> Grafik tren di tengah -> Tabel detail data di bawah.
192
202
  - **Grid Visual**: Konsistensi gap/padding (16px / 24px). Gunakan border halus daripada pembatas tebal hitam.
193
203
  - **Visualisasi Data**: Maksimal 3–5 warna terkoordinasi dalam grafik. Tooltip responsif & perataan legenda yang rapi.
@@ -200,3 +210,13 @@ python scripts/search.py "<kueri>" --stack <stack> --max-results 3
200
210
  - [ ] **Kontras**: Rasio kontras teks minimal 4.5:1 pada mode terang. Border terlihat di kedua mode (terang & gelap).
201
211
  - [ ] **Tata Letak & Responsif**: Diuji pada breakpoint 375px, 768px, 1024px, 1440px. Tidak ada scroll horizontal tak disengaja pada perangkat mobile.
202
212
  - [ ] **Aksesibilitas**: Semua gambar memiliki `alt` text yang bermakna. Form input memiliki `<label>` terhubung atau `aria-label`.
213
+
214
+ ---
215
+ ### 🎨 Automatic Visual Assets Generation Mandate (CRITICAL)
216
+ **MANDATORY**: Whenever you are building a new application, scaffolding a project, or finalizing the initial UI/UX, you MUST automatically use the `generate_image` tool to create a custom logo that perfectly matches the application's core concept and aesthetic.
217
+ This generated image MUST be explicitly used as:
218
+ 1. The primary application logo (e.g., in the header/navbar).
219
+ 2. The website favicon (`favicon.ico` or equivalent).
220
+ 3. The Open Graph (OG) image for SEO metadata (`og:image`).
221
+
222
+ Do not use placeholders for these assets. Generate and integrate them automatically.