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,174 +1,180 @@
1
- ---
2
- name: website-design-cloner
3
- description: "Analyzes and reverse-engineers website designs directly from a target URL, extracting layout structures, design tokens (colors, typography, spacing), component hierarchies, visual assets, and responsive behaviors to enable full 1:1 duplication into modern code (Tailwind CSS v4, React/Next.js, HTML/CSS). / Mempelajari dan merekayasa balik desain situs web langsung dari URL target, mengekstrak struktur layout, design token (warna, tipografi, spacing), hierarki komponen, aset visual, dan perilaku responsif untuk duplikasi 1:1 penuh ke kode modern."
1
+ ---
2
+ name: website-design-cloner
3
+ description: "Analyzes and reverse-engineers website designs directly from a target URL, extracting layout structures, design tokens (colors, typography, spacing), component hierarchies, visual assets, and responsive behaviors to enable full 1:1 duplication into modern code (Tailwind CSS v4, React/Next.js, HTML/CSS). / Mempelajari dan merekayasa balik desain situs web langsung dari URL target, mengekstrak struktur layout, design token (warna, tipografi, spacing), hierarki komponen, aset visual, dan perilaku responsif untuk duplikasi 1:1 penuh ke kode modern."
4
4
  author: "Roedy Rustam"
5
- ---
6
-
7
- # Website Design Cloner & Reverse Engineering 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
- `website-design-cloner` is an advanced URL-to-Code visual reverse engineering skill. It enables AI agents to inspect any target website URL, analyze its visual aesthetic, layout grid, CSS design tokens (OKLCH/HEX colors, typography system, container bounds, shadow tiers, border-radii), DOM structure, and interactive components, and synthesize production-ready code (Tailwind CSS v4, React 19, Next.js 15, HTML5/Vanilla CSS) to achieve a full 1:1 duplication.
18
-
19
- ### Trigger Conditions
20
- - Replicating or cloning a website layout, landing page, or web application directly from a target URL.
21
- - Extracting design systems (color palettes, typography scales, container grids, component patterns) from a reference link.
22
- - Re-creating complex UI components (Hero banners, Bento grids, navbar drawers, pricing tables, footers) based on live URLs.
23
- - Auditing and reverse-engineering third-party website layouts for component scaffolding.
24
-
25
- ---
26
-
27
- ### 5-Step URL-to-Code Reverse Engineering Methodology
28
-
29
- ```mermaid
30
- graph TD
31
- A["Target URL"] --> B["Phase 1: URL Inspection & DOM Scraping"]
32
- B --> C["Phase 2: Design Tokens & CSS Extraction"]
33
- C --> D["Phase 3: Component Hierarchy Breakdown"]
34
- D --> E["Phase 4: 1:1 Code Synthesis (Tailwind v4 + React 19)"]
35
- E --> F["Phase 5: Visual Verification & Polish"]
36
- ```
37
-
38
- #### Phase 1: URL Inspection & Asset Discovery
39
- 1. **Content Fetching**: Retrieve raw DOM, inline CSS, stylesheet links (`<link rel="stylesheet">`), and font imports using `read_url_content`, Firecrawl, Jina Reader API (`https://r.jina.ai/<URL>`), or Playwright browser automation.
40
- 2. **Visual Viewport Inspection**: Capture layout snapshots across break-points:
41
- - Mobile (`375px`)
42
- - Tablet (`768px`)
43
- - Desktop (`1440px+`)
44
- 3. **Asset Mining**: Extract SVG icons (Lucide/Heroicons equivalents), image asset URLs, logo vectors, and background gradients.
45
-
46
- #### Phase 2: Design Tokens & CSS Harvester
47
- Harvest computed styles and synthesize them into Tailwind CSS v4 `@theme` tokens:
48
-
49
- | Token Category | Extracted Properties | Tailwind CSS v4 Mapping |
50
- |---|---|---|
51
- | **Color System** | Primary, Secondary, Background, Neutral slate, Surface, Borders | `--color-primary`, `--color-background`, `--color-surface` |
52
- | **Typography** | Font Family (Google Fonts link), Headings (`h1`-`h6`), Body, Font Weights | `--font-sans`, `--font-mono`, `--text-4xl`, `--font-bold` |
53
- | **Spacing Scale** | Section Padding (`py-16`/`py-24`), Container Max-Width (`1280px`), Gap scale | `--spacing-16`, `--max-width-7xl`, `gap-6` |
54
- | **Borders & Radii** | Card Border Radius (`16px`), Pill Radius (`9999px`), Border Colors | `--radius-xl`, `--color-border` |
55
- | **Effects** | Backdrop Blur (`backdrop-blur-md`), Glassmorphism, Drop Shadows | `shadow-xl shadow-brand/10`, `backdrop-blur-lg` |
56
-
57
- #### Phase 3: Component Hierarchy Breakdown
58
- Deconstruct the target web page into modular, reusable UI components:
59
- - **`HeaderNav`**: Brand logo, navigation menu links, dynamic CTA button, mobile drawer toggle.
60
- - **`HeroSection`**: Eye-catching headline, subheading, action buttons, hero image/video/mockup.
61
- - **`FeatureBento`**: Bento grid containers, icon badges, feature titles, micro-copy.
62
- - **`TestimonialGrid`**: Avatar image, quote text, author metadata, star ratings.
63
- - **`PricingSection`**: Tier cards, billing toggle (Monthly/Annual), highlighted popular badge, feature checklists.
64
- - **`FooterNav`**: Category columns, newsletter subscription form, copyright & social icons.
65
-
66
- #### Phase 4: 1:1 Code Synthesis (Tailwind v4 + React 19)
67
- Synthesize clean, accessible, modern code matching the extracted structure.
68
-
69
- ##### Example: Extracted Tailwind CSS v4 Theme (`tokens.css`)
70
- ```css
71
- @import "tailwindcss";
72
-
73
- @theme {
74
- --font-sans: "Outfit", "Inter", system-ui, sans-serif;
75
- --font-mono: "Fira Code", monospace;
76
-
77
- /* Extracted OKLCH Palette */
78
- --color-brand-primary: oklch(58% 0.23 255);
79
- --color-brand-accent: oklch(68% 0.19 160);
80
- --color-surface-dark: oklch(14% 0.02 255);
81
- --color-surface-card: oklch(18% 0.03 255 / 80%);
82
-
83
- --radius-card: 1.25rem;
84
- }
85
- ```
86
-
87
- ##### Example: Recreated Hero Component (`HeroSection.tsx`)
88
- ```tsx
89
- import React from 'react';
90
-
91
- export function HeroSection() {
92
- return (
93
- <section className="relative overflow-hidden bg-surface-dark py-24 text-white">
94
- {/* Background Glow */}
95
- <div className="absolute top-1/4 left-1/2 -z-10 h-96 w-96 -translate-x-1/2 rounded-full bg-brand-primary/20 blur-3xl" />
96
-
97
- <div className="mx-auto max-w-7xl px-6 text-center">
98
- <span className="inline-block rounded-full bg-brand-primary/10 px-4 py-1.5 text-xs font-semibold text-brand-accent backdrop-blur-md">
99
- ✨ Replicated Design Template
100
- </span>
101
-
102
- <h1 className="mt-6 font-sans text-5xl font-extrabold tracking-tight sm:text-6xl">
103
- Duplicated Full-Fidelity <span className="bg-gradient-to-r from-brand-primary to-brand-accent bg-clip-text text-transparent">Website Layout</span>
104
- </h1>
105
-
106
- <p className="mx-auto mt-6 max-w-2xl text-lg text-slate-300">
107
- Extracted directly from URL using website-design-cloner. Includes precise typography, exact color tokens, and responsive component structure.
108
- </p>
109
-
110
- <div className="mt-8 flex justify-center gap-4">
111
- <button className="rounded-card bg-brand-primary px-6 py-3.5 font-medium text-white shadow-lg shadow-brand-primary/25 transition-all hover:scale-105">
112
- Get Started
113
- </button>
114
- <button className="rounded-card border border-slate-700 bg-slate-800/50 px-6 py-3.5 font-medium text-slate-200 backdrop-blur-md hover:bg-slate-800">
115
- View Live Demo
116
- </button>
117
- </div>
118
- </div>
119
- </section>
120
- );
121
- }
122
- ```
123
-
124
- #### Phase 5: Visual Verification & Polish
125
- - Ensure color contrast passes WCAG 2.2 AAA standard (4.5:1 ratio).
126
- - Validate full responsiveness on mobile viewports.
127
- - Replace broken image assets with synthesized visual placeholders using `generate_image`.
128
-
129
- ---
130
-
131
- <a name="bahasa-indonesia"></a>
132
- ## Bahasa Indonesia
133
-
134
- ### Deskripsi
135
- `website-design-cloner` adalah skill rekayasa balik (*reverse engineering*) visual dari URL ke kode. Skill ini memungkinkan agen AI mempelajari situs web target dari URL, mengaudit estetika visual, grid layout, design token CSS (warna OKLCH/HEX, sistem tipografi, batas kontainer, bayangan, radius border), struktur DOM, dan komponen interaktif, lalu merekonstruksi kode siap produksi (Tailwind CSS v4, React 19, Next.js 15, HTML5/CSS3) untuk mencapai duplikasi 1:1 penuh.
136
-
137
- ### Kondisi Pemicu
138
- - Merekapitulasi atau menduplikasi tata letak situs web, landing page, atau aplikasi web dari URL target.
139
- - Mengekstrak design system (skema warna, skala tipografi, grid kontainer, pola komponen) dari tautan referensi.
140
- - Membangun kembali komponen UI kompleks (banner Hero, Bento grid, drawer navigasi, tabel harga, footer) berdasarkan URL langsung.
141
- - Mempelajari struktur visual dan rekayasa balik situs web pihak ketiga untuk template baru.
142
-
143
- ---
144
-
145
- ### Metodologi 5-Langkah Duplikasi URL-ke-Kode
146
-
147
- 1. **Tahap 1: Inspeksi URL & Penemuan Aset**:
148
- - Mengambil HTML mentah, inline CSS, tautan stylesheet, dan font melalui `read_url_content`, Firecrawl, Jina Reader API (`https://r.jina.ai/<URL>`), atau otomatisasi browser Playwright.
149
- - Mengambil snapshot tampilan visual pada breakpoint Mobile (`375px`), Tablet (`768px`), dan Desktop (`1440px`).
150
- - Ekstraksi ikon SVG, URL gambar, logo, dan gradien latar belakang.
151
-
152
- 2. **Tahap 2: Ekstraksi Design Token & CSS**:
153
- - Mengekstrak properti CSS computed dan menyintesisnya ke dalam token `@theme` Tailwind CSS v4 (sistem warna OKLCH/HEX, tipografi Google Fonts, skala spacing, border radius, dan efek shadow/glassmorphism).
154
-
155
- 3. **Tahap 3: Pembongkaran Hierarki Komponen**:
156
- - Membagi halaman web target menjadi komponen modular: `HeaderNav`, `HeroSection`, `FeatureBento`, `TestimonialGrid`, `PricingSection`, dan `FooterNav`.
157
-
158
- 4. **Tahap 4: Sintesis Kode Presisi 1:1**:
159
- - Menyusun kode bersih dan modular dalam React 19 / Next.js 15 / HTML+CSS modern yang menggunakan token `@theme` Tailwind CSS v4.
160
-
161
- 5. **Tahap 5: Verifikasi Visual & Polishing**:
162
- - Memastikan rasio kontras WCAG 2.2, tes responsivitas mobile, dan membuat aset gambar pengganti presisi dengan tool `generate_image`.
163
-
164
- ---
165
-
166
- ### Matriks Orkestrasi & Handoff Skill
167
-
168
- | Skill Terkait | Peran & Integrasi Handoff |
169
- |---|---|
170
- | `web-scraper` | Mengambil HTML mentah, CSS, dan Markdown dari URL via Jina Reader / Firecrawl API. |
171
- | `design-system-architect` | Menyusun token visual hasil ekstraksi ke dalam design system enterprise berbasis OKLCH & Radix/Base UI. |
172
- | `ui-ux-pro-max` | Memberikan acuan BM25 visual style, pasangan font Google Fonts, dan checklist aksesibilitas WCAG 2.2. |
173
- | `senior-frontend` | Mengimplementasikan kode komponen React 19 / Next.js 15 App Router siap produksi. |
174
- | `tailwind-expert` | Mengatur konfigurasi Tailwind CSS v4 `@theme` dan utilitas responsif. |
5
+ ---
6
+
7
+ # Website Design Cloner & Reverse Engineering Expert (2026 Edition)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
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
+
19
+ ### Description
20
+ `website-design-cloner` is an advanced URL-to-Code visual reverse engineering skill. It enables AI agents to inspect any target website URL, analyze its visual aesthetic, layout grid, CSS design tokens (OKLCH/HEX colors, typography system, container bounds, shadow tiers, border-radii), DOM structure, and interactive components, and synthesize production-ready code (Tailwind CSS v4, React 19, Next.js 15, HTML5/Vanilla CSS) to achieve a full 1:1 duplication.
21
+
22
+ ### Trigger Conditions
23
+ - Replicating or cloning a website layout, landing page, or web application directly from a target URL.
24
+ - Extracting design systems (color palettes, typography scales, container grids, component patterns) from a reference link.
25
+ - Re-creating complex UI components (Hero banners, Bento grids, navbar drawers, pricing tables, footers) based on live URLs.
26
+ - Auditing and reverse-engineering third-party website layouts for component scaffolding.
27
+
28
+ ---
29
+
30
+ ### 5-Step URL-to-Code Reverse Engineering Methodology
31
+
32
+ ```mermaid
33
+ graph TD
34
+ A["Target URL"] --> B["Phase 1: URL Inspection & DOM Scraping"]
35
+ B --> C["Phase 2: Design Tokens & CSS Extraction"]
36
+ C --> D["Phase 3: Component Hierarchy Breakdown"]
37
+ D --> E["Phase 4: 1:1 Code Synthesis (Tailwind v4 + React 19)"]
38
+ E --> F["Phase 5: Visual Verification & Polish"]
39
+ ```
40
+
41
+ #### Phase 1: URL Inspection & Asset Discovery
42
+ 1. **Content Fetching**: Retrieve raw DOM, inline CSS, stylesheet links (`<link rel="stylesheet">`), and font imports using `read_url_content`, Firecrawl, Jina Reader API (`https://r.jina.ai/<URL>`), or Playwright browser automation.
43
+ 2. **Visual Viewport Inspection**: Capture layout snapshots across break-points:
44
+ - Mobile (`375px`)
45
+ - Tablet (`768px`)
46
+ - Desktop (`1440px+`)
47
+ 3. **Asset Mining**: Extract SVG icons (Lucide/Heroicons equivalents), image asset URLs, logo vectors, and background gradients.
48
+
49
+ #### Phase 2: Design Tokens & CSS Harvester
50
+ Harvest computed styles and synthesize them into Tailwind CSS v4 `@theme` tokens:
51
+
52
+ | Token Category | Extracted Properties | Tailwind CSS v4 Mapping |
53
+ |---|---|---|
54
+ | **Color System** | Primary, Secondary, Background, Neutral slate, Surface, Borders | `--color-primary`, `--color-background`, `--color-surface` |
55
+ | **Typography** | Font Family (Google Fonts link), Headings (`h1`-`h6`), Body, Font Weights | `--font-sans`, `--font-mono`, `--text-4xl`, `--font-bold` |
56
+ | **Spacing Scale** | Section Padding (`py-16`/`py-24`), Container Max-Width (`1280px`), Gap scale | `--spacing-16`, `--max-width-7xl`, `gap-6` |
57
+ | **Borders & Radii** | Card Border Radius (`16px`), Pill Radius (`9999px`), Border Colors | `--radius-xl`, `--color-border` |
58
+ | **Effects** | Backdrop Blur (`backdrop-blur-md`), Glassmorphism, Drop Shadows | `shadow-xl shadow-brand/10`, `backdrop-blur-lg` |
59
+
60
+ #### Phase 3: Component Hierarchy Breakdown
61
+ Deconstruct the target web page into modular, reusable UI components:
62
+ - **`HeaderNav`**: Brand logo, navigation menu links, dynamic CTA button, mobile drawer toggle.
63
+ - **`HeroSection`**: Eye-catching headline, subheading, action buttons, hero image/video/mockup.
64
+ - **`FeatureBento`**: Bento grid containers, icon badges, feature titles, micro-copy.
65
+ - **`TestimonialGrid`**: Avatar image, quote text, author metadata, star ratings.
66
+ - **`PricingSection`**: Tier cards, billing toggle (Monthly/Annual), highlighted popular badge, feature checklists.
67
+ - **`FooterNav`**: Category columns, newsletter subscription form, copyright & social icons.
68
+
69
+ #### Phase 4: 1:1 Code Synthesis (Tailwind v4 + React 19)
70
+ Synthesize clean, accessible, modern code matching the extracted structure.
71
+
72
+ ##### Example: Extracted Tailwind CSS v4 Theme (`tokens.css`)
73
+ ```css
74
+ @import "tailwindcss";
75
+
76
+ @theme {
77
+ --font-sans: "Outfit", "Inter", system-ui, sans-serif;
78
+ --font-mono: "Fira Code", monospace;
79
+
80
+ /* Extracted OKLCH Palette */
81
+ --color-brand-primary: oklch(58% 0.23 255);
82
+ --color-brand-accent: oklch(68% 0.19 160);
83
+ --color-surface-dark: oklch(14% 0.02 255);
84
+ --color-surface-card: oklch(18% 0.03 255 / 80%);
85
+
86
+ --radius-card: 1.25rem;
87
+ }
88
+ ```
89
+
90
+ ##### Example: Recreated Hero Component (`HeroSection.tsx`)
91
+ ```tsx
92
+ import React from 'react';
93
+
94
+ export function HeroSection() {
95
+ return (
96
+ <section className="relative overflow-hidden bg-surface-dark py-24 text-white">
97
+ {/* Background Glow */}
98
+ <div className="absolute top-1/4 left-1/2 -z-10 h-96 w-96 -translate-x-1/2 rounded-full bg-brand-primary/20 blur-3xl" />
99
+
100
+ <div className="mx-auto max-w-7xl px-6 text-center">
101
+ <span className="inline-block rounded-full bg-brand-primary/10 px-4 py-1.5 text-xs font-semibold text-brand-accent backdrop-blur-md">
102
+ Replicated Design Template
103
+ </span>
104
+
105
+ <h1 className="mt-6 font-sans text-5xl font-extrabold tracking-tight sm:text-6xl">
106
+ Duplicated Full-Fidelity <span className="bg-gradient-to-r from-brand-primary to-brand-accent bg-clip-text text-transparent">Website Layout</span>
107
+ </h1>
108
+
109
+ <p className="mx-auto mt-6 max-w-2xl text-lg text-slate-300">
110
+ Extracted directly from URL using website-design-cloner. Includes precise typography, exact color tokens, and responsive component structure.
111
+ </p>
112
+
113
+ <div className="mt-8 flex justify-center gap-4">
114
+ <button className="rounded-card bg-brand-primary px-6 py-3.5 font-medium text-white shadow-lg shadow-brand-primary/25 transition-all hover:scale-105">
115
+ Get Started
116
+ </button>
117
+ <button className="rounded-card border border-slate-700 bg-slate-800/50 px-6 py-3.5 font-medium text-slate-200 backdrop-blur-md hover:bg-slate-800">
118
+ View Live Demo
119
+ </button>
120
+ </div>
121
+ </div>
122
+ </section>
123
+ );
124
+ }
125
+ ```
126
+
127
+ #### Phase 5: Visual Verification & Polish
128
+ - Ensure color contrast passes WCAG 2.2 AAA standard (4.5:1 ratio).
129
+ - Validate full responsiveness on mobile viewports.
130
+ - Replace broken image assets with synthesized visual placeholders using `generate_image`.
131
+
132
+ ---
133
+
134
+ <a name="bahasa-indonesia"></a>
135
+ ## Bahasa Indonesia
136
+
137
+ ### Integrasi Orkestrasi
138
+ Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
139
+
140
+ ### Deskripsi
141
+ `website-design-cloner` adalah skill rekayasa balik (*reverse engineering*) visual dari URL ke kode. Skill ini memungkinkan agen AI mempelajari situs web target dari URL, mengaudit estetika visual, grid layout, design token CSS (warna OKLCH/HEX, sistem tipografi, batas kontainer, bayangan, radius border), struktur DOM, dan komponen interaktif, lalu merekonstruksi kode siap produksi (Tailwind CSS v4, React 19, Next.js 15, HTML5/CSS3) untuk mencapai duplikasi 1:1 penuh.
142
+
143
+ ### Kondisi Pemicu
144
+ - Merekapitulasi atau menduplikasi tata letak situs web, landing page, atau aplikasi web dari URL target.
145
+ - Mengekstrak design system (skema warna, skala tipografi, grid kontainer, pola komponen) dari tautan referensi.
146
+ - Membangun kembali komponen UI kompleks (banner Hero, Bento grid, drawer navigasi, tabel harga, footer) berdasarkan URL langsung.
147
+ - Mempelajari struktur visual dan rekayasa balik situs web pihak ketiga untuk template baru.
148
+
149
+ ---
150
+
151
+ ### Metodologi 5-Langkah Duplikasi URL-ke-Kode
152
+
153
+ 1. **Tahap 1: Inspeksi URL & Penemuan Aset**:
154
+ - Mengambil HTML mentah, inline CSS, tautan stylesheet, dan font melalui `read_url_content`, Firecrawl, Jina Reader API (`https://r.jina.ai/<URL>`), atau otomatisasi browser Playwright.
155
+ - Mengambil snapshot tampilan visual pada breakpoint Mobile (`375px`), Tablet (`768px`), dan Desktop (`1440px`).
156
+ - Ekstraksi ikon SVG, URL gambar, logo, dan gradien latar belakang.
157
+
158
+ 2. **Tahap 2: Ekstraksi Design Token & CSS**:
159
+ - Mengekstrak properti CSS computed dan menyintesisnya ke dalam token `@theme` Tailwind CSS v4 (sistem warna OKLCH/HEX, tipografi Google Fonts, skala spacing, border radius, dan efek shadow/glassmorphism).
160
+
161
+ 3. **Tahap 3: Pembongkaran Hierarki Komponen**:
162
+ - Membagi halaman web target menjadi komponen modular: `HeaderNav`, `HeroSection`, `FeatureBento`, `TestimonialGrid`, `PricingSection`, dan `FooterNav`.
163
+
164
+ 4. **Tahap 4: Sintesis Kode Presisi 1:1**:
165
+ - Menyusun kode bersih dan modular dalam React 19 / Next.js 15 / HTML+CSS modern yang menggunakan token `@theme` Tailwind CSS v4.
166
+
167
+ 5. **Tahap 5: Verifikasi Visual & Polishing**:
168
+ - Memastikan rasio kontras WCAG 2.2, tes responsivitas mobile, dan membuat aset gambar pengganti presisi dengan tool `generate_image`.
169
+
170
+ ---
171
+
172
+ ### Matriks Orkestrasi & Handoff Skill
173
+
174
+ | Skill Terkait | Peran & Integrasi Handoff |
175
+ |---|---|
176
+ | `web-scraper` | Mengambil HTML mentah, CSS, dan Markdown dari URL via Jina Reader / Firecrawl API. |
177
+ | `design-system-architect` | Menyusun token visual hasil ekstraksi ke dalam design system enterprise berbasis OKLCH & Radix/Base UI. |
178
+ | `ui-ux-pro-max` | Memberikan acuan BM25 visual style, pasangan font Google Fonts, dan checklist aksesibilitas WCAG 2.2. |
179
+ | `senior-frontend` | Mengimplementasikan kode komponen React 19 / Next.js 15 App Router siap produksi. |
180
+ | `tailwind-expert` | Mengatur konfigurasi Tailwind CSS v4 `@theme` dan utilitas responsif. |
@@ -1,117 +1,123 @@
1
- ---
2
- name: webxr-ar-vr-expert
3
- description: "Expert guide for WebXR (Web-based Virtual and Augmented Reality) development using Babylon.js and Three.js. Covers device compatibility, immersive sessions, controllers, and hit-testing."
1
+ ---
2
+ name: webxr-ar-vr-expert
3
+ description: "Expert guide for WebXR (Web-based Virtual and Augmented Reality) development using Babylon.js and Three.js. Covers device compatibility, immersive sessions, controllers, and hit-testing."
4
4
  author: "Roedy Rustam"
5
- ---
6
-
7
- # WebXR AR/VR Expert
8
-
9
- [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
-
11
- ---
12
-
13
- <a name="english"></a>
14
- ## English
15
-
16
- ### Description
17
- Production-grade guidance for building immersive **Augmented Reality (AR)** and **Virtual Reality (VR)** experiences in the browser using the **WebXR Device API**. Focuses on implementation via **Babylon.js** (which has industry-leading WebXR support) and **Three.js** / React Three Fiber.
18
-
19
- ### Trigger Conditions
20
- Activate this skill when the user is:
21
- - Building AR/VR experiences for Oculus/Meta Quest, Apple Vision Pro, or mobile AR devices.
22
- - Setting up an `immersive-vr` or `immersive-ar` WebXR session.
23
- - Implementing controller tracking, hand tracking, or teleportation in 3D space.
24
- - Using AR Hit-Testing to place digital objects on physical surfaces (floors/tables).
25
-
26
- ### Core Concepts
27
-
28
- #### 1. Babylon.js WebXR Setup
29
- Babylon.js provides the most robust default WebXR experience.
30
- ```typescript
31
- import { Scene, FreeCamera, Vector3, Engine } from '@babylonjs/core';
32
-
33
- async function setupXR(scene: Scene) {
34
- // Initialize default WebXR experience
35
- // This automatically adds the "Enter VR/AR" button, teleportation, and controller models
36
- const xr = await scene.createDefaultXRExperienceAsync({
37
- uiOptions: {
38
- sessionMode: 'immersive-vr', // or 'immersive-ar'
39
- },
40
- optionalFeatures: true
41
- });
42
-
43
- // Example: Listen for controller input
44
- xr.input.onControllerAddedObservable.add((controller) => {
45
- controller.onMotionControllerInitObservable.add((motionController) => {
46
- // Handle button presses
47
- });
48
- });
49
- }
50
- ```
51
-
52
- #### 2. Three.js / React Three Fiber Setup
53
- In R3F, use `@react-three/xr`.
54
- ```tsx
55
- import { Canvas } from '@react-three/fiber';
56
- import { XR, createXRStore } from '@react-three/xr';
57
-
58
- const store = createXRStore();
59
-
60
- export default function App() {
61
- return (
62
- <>
63
- <button onClick={() => store.enterVR()}>Enter VR</button>
64
- <Canvas>
65
- <XR store={store}>
66
- <mesh>
67
- <boxGeometry />
68
- <meshBasicMaterial color="red" />
69
- </mesh>
70
- </XR>
71
- </Canvas>
72
- </>
73
- );
74
- }
75
- ```
76
-
77
- #### 3. AR Hit-Testing
78
- In AR mode, "Hit-Testing" allows you to detect real-world surfaces.
79
- - Ensure `immersive-ar` is used.
80
- - Request the `hit-test` feature when initializing the session.
81
- - Use the hit-test results (a matrix/position) to place a reticle or object.
82
-
83
- ### Best Practices
84
- - **Performance is Critical:** VR requires a consistent 72 to 90 FPS (or 120 FPS on Apple Vision Pro). Dropped frames cause motion sickness.
85
- - **Polycount:** Keep polygon counts and draw calls low.
86
- - **UI in XR:** Standard HTML UI will not work in immersive mode. You must use 3D UI (e.g., Babylon's GUI 3D system or Three.js spatial HTML layers if supported).
87
-
88
- ---
89
-
90
- ### Integration with Other Skills (MANDATORY)
91
- This skill works best when combined with:
92
- - `web-3d-graphics-expert` — For building the 3D scene that XR will visualize.
93
- - `apple-ecosystem-expert` For optimizing WebXR compatibility with iOS (Safari) and visionOS.
94
- - `web-game-engine-expert` For adding physics to VR interactions (e.g., throwing objects).
95
-
96
- ### Referenced By Orchestrators (MANDATORY)
97
- - `brainstorming` — Add to "3D & Graphics" or "Spatial Computing".
98
- - `zero-to-prod-orchestrator` — Phase 5 (Frontend / XR Implementation).
99
-
100
- ---
101
-
102
- <a name="bahasa-indonesia"></a>
103
- ## Bahasa Indonesia
104
-
105
- ### Deskripsi
106
- Panduan ahli untuk pengembangan *Virtual Reality* (VR) dan *Augmented Reality* (AR) di web menggunakan **WebXR API**. Difokuskan pada implementasi menggunakan **Babylon.js** dan **Three.js** untuk ekosistem *Spatial Computing*.
107
-
108
- ### Kondisi Pemicu
109
- - Mengembangkan aplikasi VR/AR untuk Meta Quest, Apple Vision Pro, atau Mobile AR.
110
- - Mengimplementasikan pelacakan pengontrol (controller), pelacakan tangan (hand tracking), atau teleportasi.
111
- - Menggunakan AR Hit-Testing untuk meletakkan objek 3D di permukaan dunia nyata.
112
-
113
- ### Panduan Singkat
114
- - **Performa Mutlak:** Jaga FPS tetap stabil di angka 72-90 FPS. *Frame drop* pada VR menyebabkan rasa mual (motion sickness) pada pengguna. Batasi jumlah poligon dan *draw calls*.
115
- - **Babylon.js sebagai Prioritas:** Untuk proyek XR berskala besar, prioritaskan Babylon.js karena dukungan bawaannya untuk interaksi VR, fisika, dan UI 3D jauh lebih matang dibanding library lain.
116
- - **UI Spasial:** Ingat bahwa elemen HTML biasa tidak muncul di dalam sesi `immersive-vr` atau `immersive-ar`. Anda harus membuat UI berupa objek 3D (seperti panel yang melayang di udara).
117
- - **Hit-Testing:** Untuk AR, gunakan fitur *Hit-Test* yang disediakan WebXR API untuk mengenali lantai atau meja sebagai tempat menaruh objek.
5
+ ---
6
+
7
+ # WebXR AR/VR Expert
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
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
+
19
+ ### Description
20
+ Production-grade guidance for building immersive **Augmented Reality (AR)** and **Virtual Reality (VR)** experiences in the browser using the **WebXR Device API**. Focuses on implementation via **Babylon.js** (which has industry-leading WebXR support) and **Three.js** / React Three Fiber.
21
+
22
+ ### Trigger Conditions
23
+ Activate this skill when the user is:
24
+ - Building AR/VR experiences for Oculus/Meta Quest, Apple Vision Pro, or mobile AR devices.
25
+ - Setting up an `immersive-vr` or `immersive-ar` WebXR session.
26
+ - Implementing controller tracking, hand tracking, or teleportation in 3D space.
27
+ - Using AR Hit-Testing to place digital objects on physical surfaces (floors/tables).
28
+
29
+ ### Core Concepts
30
+
31
+ #### 1. Babylon.js WebXR Setup
32
+ Babylon.js provides the most robust default WebXR experience.
33
+ ```typescript
34
+ import { Scene, FreeCamera, Vector3, Engine } from '@babylonjs/core';
35
+
36
+ async function setupXR(scene: Scene) {
37
+ // Initialize default WebXR experience
38
+ // This automatically adds the "Enter VR/AR" button, teleportation, and controller models
39
+ const xr = await scene.createDefaultXRExperienceAsync({
40
+ uiOptions: {
41
+ sessionMode: 'immersive-vr', // or 'immersive-ar'
42
+ },
43
+ optionalFeatures: true
44
+ });
45
+
46
+ // Example: Listen for controller input
47
+ xr.input.onControllerAddedObservable.add((controller) => {
48
+ controller.onMotionControllerInitObservable.add((motionController) => {
49
+ // Handle button presses
50
+ });
51
+ });
52
+ }
53
+ ```
54
+
55
+ #### 2. Three.js / React Three Fiber Setup
56
+ In R3F, use `@react-three/xr`.
57
+ ```tsx
58
+ import { Canvas } from '@react-three/fiber';
59
+ import { XR, createXRStore } from '@react-three/xr';
60
+
61
+ const store = createXRStore();
62
+
63
+ export default function App() {
64
+ return (
65
+ <>
66
+ <button onClick={() => store.enterVR()}>Enter VR</button>
67
+ <Canvas>
68
+ <XR store={store}>
69
+ <mesh>
70
+ <boxGeometry />
71
+ <meshBasicMaterial color="red" />
72
+ </mesh>
73
+ </XR>
74
+ </Canvas>
75
+ </>
76
+ );
77
+ }
78
+ ```
79
+
80
+ #### 3. AR Hit-Testing
81
+ In AR mode, "Hit-Testing" allows you to detect real-world surfaces.
82
+ - Ensure `immersive-ar` is used.
83
+ - Request the `hit-test` feature when initializing the session.
84
+ - Use the hit-test results (a matrix/position) to place a reticle or object.
85
+
86
+ ### Best Practices
87
+ - **Performance is Critical:** VR requires a consistent 72 to 90 FPS (or 120 FPS on Apple Vision Pro). Dropped frames cause motion sickness.
88
+ - **Polycount:** Keep polygon counts and draw calls low.
89
+ - **UI in XR:** Standard HTML UI will not work in immersive mode. You must use 3D UI (e.g., Babylon's GUI 3D system or Three.js spatial HTML layers if supported).
90
+
91
+ ---
92
+
93
+ ### Integration with Other Skills (MANDATORY)
94
+ This skill works best when combined with:
95
+ - `web-3d-graphics-expert` — For building the 3D scene that XR will visualize.
96
+ - `apple-ecosystem-expert` For optimizing WebXR compatibility with iOS (Safari) and visionOS.
97
+ - `web-game-engine-expert` — For adding physics to VR interactions (e.g., throwing objects).
98
+
99
+ ### Referenced By Orchestrators (MANDATORY)
100
+ - `brainstorming` — Add to "3D & Graphics" or "Spatial Computing".
101
+ - `zero-to-prod-orchestrator` — Phase 5 (Frontend / XR Implementation).
102
+
103
+ ---
104
+
105
+ <a name="bahasa-indonesia"></a>
106
+ ## Bahasa Indonesia
107
+
108
+ ### Integrasi Orkestrasi
109
+ Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
110
+
111
+ ### Deskripsi
112
+ Panduan ahli untuk pengembangan *Virtual Reality* (VR) dan *Augmented Reality* (AR) di web menggunakan **WebXR API**. Difokuskan pada implementasi menggunakan **Babylon.js** dan **Three.js** untuk ekosistem *Spatial Computing*.
113
+
114
+ ### Kondisi Pemicu
115
+ - Mengembangkan aplikasi VR/AR untuk Meta Quest, Apple Vision Pro, atau Mobile AR.
116
+ - Mengimplementasikan pelacakan pengontrol (controller), pelacakan tangan (hand tracking), atau teleportasi.
117
+ - Menggunakan AR Hit-Testing untuk meletakkan objek 3D di permukaan dunia nyata.
118
+
119
+ ### Panduan Singkat
120
+ - **Performa Mutlak:** Jaga FPS tetap stabil di angka 72-90 FPS. *Frame drop* pada VR menyebabkan rasa mual (motion sickness) pada pengguna. Batasi jumlah poligon dan *draw calls*.
121
+ - **Babylon.js sebagai Prioritas:** Untuk proyek XR berskala besar, prioritaskan Babylon.js karena dukungan bawaannya untuk interaksi VR, fisika, dan UI 3D jauh lebih matang dibanding library lain.
122
+ - **UI Spasial:** Ingat bahwa elemen HTML biasa tidak muncul di dalam sesi `immersive-vr` atau `immersive-ar`. Anda harus membuat UI berupa objek 3D (seperti panel yang melayang di udara).
123
+ - **Hit-Testing:** Untuk AR, gunakan fitur *Hit-Test* yang disediakan WebXR API untuk mengenali lantai atau meja sebagai tempat menaruh objek.