@iamnishankhan/opencode-kit-grok 1.0.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.
- package/bin/cli.js +46 -0
- package/kit/.opencode/AGENTS.md +392 -0
- package/kit/.opencode/README.md +71 -0
- package/kit/.opencode/USAGE.md +405 -0
- package/kit/.opencode/agents/backend-specialist.md +278 -0
- package/kit/.opencode/agents/code-archaeologist.md +114 -0
- package/kit/.opencode/agents/database-architect.md +233 -0
- package/kit/.opencode/agents/debugger.md +234 -0
- package/kit/.opencode/agents/devops-engineer.md +252 -0
- package/kit/.opencode/agents/documentation-writer.md +111 -0
- package/kit/.opencode/agents/explorer-agent.md +83 -0
- package/kit/.opencode/agents/frontend-specialist.md +606 -0
- package/kit/.opencode/agents/game-developer.md +169 -0
- package/kit/.opencode/agents/mobile-developer.md +385 -0
- package/kit/.opencode/agents/orchestrator.md +213 -0
- package/kit/.opencode/agents/penetration-tester.md +197 -0
- package/kit/.opencode/agents/performance-optimizer.md +194 -0
- package/kit/.opencode/agents/product-manager.md +120 -0
- package/kit/.opencode/agents/product-owner.md +103 -0
- package/kit/.opencode/agents/project-planner.md +418 -0
- package/kit/.opencode/agents/qa-automation-engineer.md +113 -0
- package/kit/.opencode/agents/security-auditor.md +179 -0
- package/kit/.opencode/agents/seo-specialist.md +119 -0
- package/kit/.opencode/agents/test-engineer.md +169 -0
- package/kit/.opencode/commands/brainstorm.md +113 -0
- package/kit/.opencode/commands/coordinate.md +72 -0
- package/kit/.opencode/commands/create.md +63 -0
- package/kit/.opencode/commands/debug.md +102 -0
- package/kit/.opencode/commands/deploy.md +175 -0
- package/kit/.opencode/commands/enhance.md +62 -0
- package/kit/.opencode/commands/orchestrate.md +241 -0
- package/kit/.opencode/commands/plan.md +89 -0
- package/kit/.opencode/commands/preview.md +80 -0
- package/kit/.opencode/commands/remember.md +67 -0
- package/kit/.opencode/commands/status.md +86 -0
- package/kit/.opencode/commands/test.md +143 -0
- package/kit/.opencode/commands/verify.md +71 -0
- package/kit/.opencode/memory/MEMORY.md +6 -0
- package/kit/.opencode/memory/feedback-history.md +9 -0
- package/kit/.opencode/memory/project-conventions.md +16 -0
- package/kit/.opencode/memory/tech-decisions.md +10 -0
- package/kit/.opencode/memory/user-preferences.md +9 -0
- package/kit/.opencode/opencode.json +15 -0
- package/kit/.opencode/scripts/README.md +95 -0
- package/kit/.opencode/scripts/auto_preview.py +149 -0
- package/kit/.opencode/scripts/checklist.py +75 -0
- package/kit/.opencode/scripts/component_registry.py +238 -0
- package/kit/.opencode/scripts/dependency_graph.py +73 -0
- package/kit/.opencode/scripts/generate_manifest.py +44 -0
- package/kit/.opencode/scripts/session_manager.py +120 -0
- package/kit/.opencode/scripts/tests/test_toolkit.py +238 -0
- package/kit/.opencode/scripts/validate_kit.py +397 -0
- package/kit/.opencode/scripts/validation_runner.py +216 -0
- package/kit/.opencode/scripts/verify_all.py +85 -0
- package/kit/.opencode/skills/api-patterns/SKILL.md +83 -0
- package/kit/.opencode/skills/api-patterns/api-style.md +42 -0
- package/kit/.opencode/skills/api-patterns/auth.md +24 -0
- package/kit/.opencode/skills/api-patterns/documentation.md +26 -0
- package/kit/.opencode/skills/api-patterns/graphql.md +41 -0
- package/kit/.opencode/skills/api-patterns/rate-limiting.md +31 -0
- package/kit/.opencode/skills/api-patterns/response.md +37 -0
- package/kit/.opencode/skills/api-patterns/rest.md +40 -0
- package/kit/.opencode/skills/api-patterns/scripts/api_validator.py +211 -0
- package/kit/.opencode/skills/api-patterns/security-testing.md +122 -0
- package/kit/.opencode/skills/api-patterns/trpc.md +41 -0
- package/kit/.opencode/skills/api-patterns/versioning.md +22 -0
- package/kit/.opencode/skills/app-builder/SKILL.md +78 -0
- package/kit/.opencode/skills/app-builder/agent-coordination.md +71 -0
- package/kit/.opencode/skills/app-builder/feature-building.md +53 -0
- package/kit/.opencode/skills/app-builder/project-detection.md +45 -0
- package/kit/.opencode/skills/app-builder/scaffolding.md +110 -0
- package/kit/.opencode/skills/app-builder/tech-stack.md +41 -0
- package/kit/.opencode/skills/app-builder/templates/SKILL.md +39 -0
- package/kit/.opencode/skills/app-builder/templates/astro-static/TEMPLATE.md +78 -0
- package/kit/.opencode/skills/app-builder/templates/chrome-extension/TEMPLATE.md +96 -0
- package/kit/.opencode/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/kit/.opencode/skills/app-builder/templates/electron-desktop/TEMPLATE.md +97 -0
- package/kit/.opencode/skills/app-builder/templates/express-api/TEMPLATE.md +89 -0
- package/kit/.opencode/skills/app-builder/templates/flutter-app/TEMPLATE.md +93 -0
- package/kit/.opencode/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +97 -0
- package/kit/.opencode/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
- package/kit/.opencode/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +125 -0
- package/kit/.opencode/skills/app-builder/templates/nextjs-static/TEMPLATE.md +174 -0
- package/kit/.opencode/skills/app-builder/templates/nuxt-app/TEMPLATE.md +127 -0
- package/kit/.opencode/skills/app-builder/templates/python-fastapi/TEMPLATE.md +94 -0
- package/kit/.opencode/skills/app-builder/templates/react-native-app/TEMPLATE.md +121 -0
- package/kit/.opencode/skills/architecture/SKILL.md +57 -0
- package/kit/.opencode/skills/architecture/context-discovery.md +43 -0
- package/kit/.opencode/skills/architecture/examples.md +94 -0
- package/kit/.opencode/skills/architecture/pattern-selection.md +68 -0
- package/kit/.opencode/skills/architecture/patterns-reference.md +50 -0
- package/kit/.opencode/skills/architecture/trade-off-analysis.md +77 -0
- package/kit/.opencode/skills/bash-linux/SKILL.md +201 -0
- package/kit/.opencode/skills/batch-operations/SKILL.md +105 -0
- package/kit/.opencode/skills/behavioral-modes/SKILL.md +253 -0
- package/kit/.opencode/skills/brainstorming/SKILL.md +178 -0
- package/kit/.opencode/skills/brainstorming/dynamic-questioning.md +350 -0
- package/kit/.opencode/skills/clean-code/SKILL.md +201 -0
- package/kit/.opencode/skills/code-review-checklist/SKILL.md +111 -0
- package/kit/.opencode/skills/code-review-graph/SKILL.md +305 -0
- package/kit/.opencode/skills/context-compression/SKILL.md +145 -0
- package/kit/.opencode/skills/coordinator-mode/SKILL.md +208 -0
- package/kit/.opencode/skills/database-design/SKILL.md +54 -0
- package/kit/.opencode/skills/database-design/database-selection.md +43 -0
- package/kit/.opencode/skills/database-design/indexing.md +39 -0
- package/kit/.opencode/skills/database-design/migrations.md +48 -0
- package/kit/.opencode/skills/database-design/optimization.md +36 -0
- package/kit/.opencode/skills/database-design/orm-selection.md +30 -0
- package/kit/.opencode/skills/database-design/schema-design.md +56 -0
- package/kit/.opencode/skills/database-design/scripts/schema_validator.py +172 -0
- package/kit/.opencode/skills/deployment-procedures/SKILL.md +243 -0
- package/kit/.opencode/skills/design-spec/SKILL.md +185 -0
- package/kit/.opencode/skills/design-spec/collection.md +106 -0
- package/kit/.opencode/skills/documentation-templates/SKILL.md +196 -0
- package/kit/.opencode/skills/frontend-architecture/SKILL.md +245 -0
- package/kit/.opencode/skills/frontend-design/SKILL.md +1222 -0
- package/kit/.opencode/skills/frontend-design/redesign.md +178 -0
- package/kit/.opencode/skills/frontend-design/scripts/accessibility_checker.py +145 -0
- package/kit/.opencode/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/kit/.opencode/skills/frontend-design/style-brutalist.md +92 -0
- package/kit/.opencode/skills/frontend-design/style-minimalist.md +85 -0
- package/kit/.opencode/skills/game-development/2d-games/SKILL.md +118 -0
- package/kit/.opencode/skills/game-development/3d-games/SKILL.md +134 -0
- package/kit/.opencode/skills/game-development/SKILL.md +169 -0
- package/kit/.opencode/skills/game-development/game-art/SKILL.md +184 -0
- package/kit/.opencode/skills/game-development/game-audio/SKILL.md +189 -0
- package/kit/.opencode/skills/game-development/game-design/SKILL.md +128 -0
- package/kit/.opencode/skills/game-development/mobile-games/SKILL.md +107 -0
- package/kit/.opencode/skills/game-development/multiplayer/SKILL.md +131 -0
- package/kit/.opencode/skills/game-development/pc-games/SKILL.md +143 -0
- package/kit/.opencode/skills/game-development/vr-ar/SKILL.md +122 -0
- package/kit/.opencode/skills/game-development/web-games/SKILL.md +149 -0
- package/kit/.opencode/skills/geo-fundamentals/SKILL.md +158 -0
- package/kit/.opencode/skills/geo-fundamentals/scripts/geo_checker.py +273 -0
- package/kit/.opencode/skills/i18n-localization/SKILL.md +156 -0
- package/kit/.opencode/skills/i18n-localization/scripts/i18n_checker.py +223 -0
- package/kit/.opencode/skills/intelligent-routing/SKILL.md +337 -0
- package/kit/.opencode/skills/lint-and-validate/SKILL.md +47 -0
- package/kit/.opencode/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/kit/.opencode/skills/lint-and-validate/scripts/type_coverage.py +245 -0
- package/kit/.opencode/skills/mcp-builder/SKILL.md +205 -0
- package/kit/.opencode/skills/memory-system/SKILL.md +181 -0
- package/kit/.opencode/skills/mobile-design/SKILL.md +396 -0
- package/kit/.opencode/skills/mobile-design/decision-trees.md +516 -0
- package/kit/.opencode/skills/mobile-design/mobile-backend.md +491 -0
- package/kit/.opencode/skills/mobile-design/mobile-color-system.md +420 -0
- package/kit/.opencode/skills/mobile-design/mobile-debugging.md +122 -0
- package/kit/.opencode/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/kit/.opencode/skills/mobile-design/mobile-navigation.md +458 -0
- package/kit/.opencode/skills/mobile-design/mobile-performance.md +767 -0
- package/kit/.opencode/skills/mobile-design/mobile-testing.md +356 -0
- package/kit/.opencode/skills/mobile-design/mobile-typography.md +433 -0
- package/kit/.opencode/skills/mobile-design/platform-android.md +666 -0
- package/kit/.opencode/skills/mobile-design/platform-ios.md +561 -0
- package/kit/.opencode/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/kit/.opencode/skills/mobile-design/touch-psychology.md +537 -0
- package/kit/.opencode/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +351 -0
- package/kit/.opencode/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/kit/.opencode/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/kit/.opencode/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/kit/.opencode/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/kit/.opencode/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/kit/.opencode/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/kit/.opencode/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/kit/.opencode/skills/nextjs-react-expert/9-cache-components.md +103 -0
- package/kit/.opencode/skills/nextjs-react-expert/SKILL.md +293 -0
- package/kit/.opencode/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/kit/.opencode/skills/nextjs-react-expert/scripts/react_performance_checker.py +281 -0
- package/kit/.opencode/skills/nodejs-best-practices/SKILL.md +336 -0
- package/kit/.opencode/skills/parallel-agents/SKILL.md +192 -0
- package/kit/.opencode/skills/performance-profiling/SKILL.md +145 -0
- package/kit/.opencode/skills/performance-profiling/scripts/bundle_analyzer.py +120 -0
- package/kit/.opencode/skills/performance-profiling/scripts/lighthouse_audit.py +108 -0
- package/kit/.opencode/skills/plan-writing/SKILL.md +153 -0
- package/kit/.opencode/skills/powershell-windows/SKILL.md +169 -0
- package/kit/.opencode/skills/python-patterns/SKILL.md +443 -0
- package/kit/.opencode/skills/red-team-tactics/SKILL.md +201 -0
- package/kit/.opencode/skills/rust-pro/SKILL.md +177 -0
- package/kit/.opencode/skills/seo-fundamentals/SKILL.md +131 -0
- package/kit/.opencode/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/kit/.opencode/skills/server-management/SKILL.md +163 -0
- package/kit/.opencode/skills/simplify-code/SKILL.md +131 -0
- package/kit/.opencode/skills/skillify/SKILL.md +115 -0
- package/kit/.opencode/skills/systematic-debugging/SKILL.md +111 -0
- package/kit/.opencode/skills/tailwind-patterns/SKILL.md +271 -0
- package/kit/.opencode/skills/tdd-workflow/SKILL.md +151 -0
- package/kit/.opencode/skills/testing-patterns/SKILL.md +180 -0
- package/kit/.opencode/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/kit/.opencode/skills/verify-changes/SKILL.md +127 -0
- package/kit/.opencode/skills/vulnerability-scanner/SKILL.md +278 -0
- package/kit/.opencode/skills/vulnerability-scanner/checklists.md +124 -0
- package/kit/.opencode/skills/vulnerability-scanner/scripts/dependency_analyzer.py +144 -0
- package/kit/.opencode/skills/vulnerability-scanner/scripts/security_scan.py +410 -0
- package/kit/.opencode/skills/web-design-guidelines/SKILL.md +56 -0
- package/kit/.opencode/skills/webapp-testing/SKILL.md +189 -0
- package/kit/.opencode/skills/webapp-testing/scripts/playwright_runner.py +123 -0
- package/lib/init.js +61 -0
- package/package.json +21 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
## Collection
|
|
2
|
+
|
|
3
|
+
### AI & LLM Platforms
|
|
4
|
+
|
|
5
|
+
- [**Claude**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/claude/DESIGN.md) - Anthropic's AI assistant. Warm terracotta accent, clean editorial layout
|
|
6
|
+
- [**Cohere**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/cohere/DESIGN.md) - Enterprise AI platform. Vibrant gradients, data-rich dashboard aesthetic
|
|
7
|
+
- [**ElevenLabs**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/elevenlabs/DESIGN.md) - AI voice platform. Dark cinematic UI, audio-waveform aesthetics
|
|
8
|
+
- [**Minimax**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/minimax/DESIGN.md) - AI model provider. Bold dark interface with neon accents
|
|
9
|
+
- [**Mistral AI**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/mistral.ai/DESIGN.md) - Open-weight LLM provider. French-engineered minimalism, purple-toned
|
|
10
|
+
- [**Ollama**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/ollama/DESIGN.md) - Run LLMs locally. Terminal-first, monochrome simplicity
|
|
11
|
+
- [**OpenCode AI**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/opencode.ai/DESIGN.md) - AI coding platform. Developer-centric dark theme
|
|
12
|
+
- [**Replicate**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/replicate/DESIGN.md) - Run ML models via API. Clean white canvas, code-forward
|
|
13
|
+
- [**Runway**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/runwayml/DESIGN.md) - AI creative-tools platform with an editorial film-festival aesthetic — cinematic dark heroes, paper-white reading bands, single proprietary sans, and pure black pill CTAs.
|
|
14
|
+
- [**Together AI**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/together.ai/DESIGN.md) - Open-source AI infrastructure. Technical, blueprint-style design
|
|
15
|
+
- [**VoltAgent**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/voltagent/DESIGN.md) - AI agent framework. Void-black canvas, emerald accent, terminal-native
|
|
16
|
+
- [**xAI**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/x.ai/DESIGN.md) - Elon Musk's AI lab. Stark monochrome, futuristic minimalism
|
|
17
|
+
|
|
18
|
+
### Developer Tools & IDEs
|
|
19
|
+
|
|
20
|
+
- [**Cursor**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/cursor/DESIGN.md) - AI-first code editor. Sleek dark interface, gradient accents
|
|
21
|
+
- [**Expo**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/expo/DESIGN.md) - React Native platform. Dark theme, tight letter-spacing, code-centric
|
|
22
|
+
- [**Lovable**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/lovable/DESIGN.md) - AI full-stack builder. Playful gradients, friendly dev aesthetic
|
|
23
|
+
- [**Raycast**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/raycast/DESIGN.md) - Productivity launcher. Sleek dark chrome, vibrant gradient accents
|
|
24
|
+
- [**Superhuman**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/superhuman/DESIGN.md) - Fast email client. Premium dark UI, keyboard-first, purple glow
|
|
25
|
+
- [**Vercel**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/vercel/DESIGN.md) - Frontend deployment platform. Black and white precision, Geist font
|
|
26
|
+
- [**Warp**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/warp/DESIGN.md) - Modern terminal. Dark IDE-like interface, block-based command UI
|
|
27
|
+
|
|
28
|
+
### Backend, Database & DevOps
|
|
29
|
+
|
|
30
|
+
- [**ClickHouse**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/clickhouse/DESIGN.md) - Fast analytics database. Yellow-accented, technical documentation style
|
|
31
|
+
- [**Composio**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/composio/DESIGN.md) - Tool integration platform. Modern dark with colorful integration icons
|
|
32
|
+
- [**HashiCorp**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/hashicorp/DESIGN.md) - Infrastructure automation. Enterprise-clean, black and white
|
|
33
|
+
- [**MongoDB**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/mongodb/DESIGN.md) - Document database. Green leaf branding, developer documentation focus
|
|
34
|
+
- [**PostHog**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/posthog/DESIGN.md) - Product analytics. Playful hedgehog branding, developer-friendly dark UI
|
|
35
|
+
- [**Sanity**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/sanity/DESIGN.md) - Headless content platform with a dark-first editorial marketing surface — 112px display type, IBM Plex Mono technical eyebrows, and a single coral-red accent reserved for the highest-priority CTA.
|
|
36
|
+
- [**Sentry**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/sentry/DESIGN.md) - Error monitoring. Dark dashboard, data-dense, pink-purple accent
|
|
37
|
+
- [**Supabase**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/supabase/DESIGN.md) - Open-source Firebase alternative. Dark emerald theme, code-first
|
|
38
|
+
|
|
39
|
+
### Productivity & SaaS
|
|
40
|
+
|
|
41
|
+
- [**Cal.com**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/cal/DESIGN.md) - Open-source scheduling. Clean neutral UI, developer-oriented simplicity
|
|
42
|
+
- [**Intercom**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/intercom/DESIGN.md) - Customer messaging. Friendly blue palette, conversational UI patterns
|
|
43
|
+
- [**Linear**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/linear.app/DESIGN.md) - Project management for engineers. Ultra-minimal, precise, purple accent
|
|
44
|
+
- [**Mintlify**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/mintlify/DESIGN.md) - Documentation platform. Clean, green-accented, reading-optimized
|
|
45
|
+
- [**Notion**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/notion/DESIGN.md) - All-in-one workspace. Warm minimalism, serif headings, soft surfaces
|
|
46
|
+
- [**Resend**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/resend/DESIGN.md) - Email API for developers. Minimal dark theme, monospace accents
|
|
47
|
+
- [**Zapier**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/zapier/DESIGN.md) - Automation platform. Warm orange, friendly illustration-driven
|
|
48
|
+
|
|
49
|
+
### Design & Creative Tools
|
|
50
|
+
|
|
51
|
+
- [**Airtable**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/airtable/DESIGN.md) - Spreadsheet-database hybrid. Colorful, friendly, structured data aesthetic
|
|
52
|
+
- [**Clay**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/clay/DESIGN.md) - Creative agency. Organic shapes, soft gradients, art-directed layout
|
|
53
|
+
- [**Figma**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/figma/DESIGN.md) - Collaborative design tool. Vibrant multi-color, playful yet professional
|
|
54
|
+
- [**Framer**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/framer/DESIGN.md) - Website builder. Bold black and blue, motion-first, design-forward
|
|
55
|
+
- [**Miro**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/miro/DESIGN.md) - Visual collaboration. Bright yellow accent, infinite canvas aesthetic
|
|
56
|
+
- [**Webflow**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/webflow/DESIGN.md) - Visual web builder. Blue-accented, polished marketing site aesthetic
|
|
57
|
+
|
|
58
|
+
### Fintech & Crypto
|
|
59
|
+
|
|
60
|
+
- [**Binance**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/binance/DESIGN.md) - Crypto exchange. Bold Binance Yellow on monochrome, trading-floor urgency
|
|
61
|
+
- [**Coinbase**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/coinbase/DESIGN.md) - Crypto exchange. Clean blue identity, trust-focused, institutional feel
|
|
62
|
+
- [**Kraken**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/kraken/DESIGN.md) - Crypto trading platform. Purple-accented dark UI, data-dense dashboards
|
|
63
|
+
- [**Mastercard**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/mastercard/DESIGN.md) - Global payments network. Warm cream canvas, orbital pill shapes, editorial warmth
|
|
64
|
+
- [**Revolut**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/revolut/DESIGN.md) - Digital banking. Sleek dark interface, gradient cards, fintech precision
|
|
65
|
+
- [**Stripe**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/stripe/DESIGN.md) - Payment infrastructure. Signature purple gradients, weight-300 elegance
|
|
66
|
+
- [**Wise**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/wise/DESIGN.md) - International money transfer. Bright green accent, friendly and clear
|
|
67
|
+
|
|
68
|
+
### E-commerce & Retail
|
|
69
|
+
|
|
70
|
+
- [**Airbnb**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/airbnb/DESIGN.md) - Travel marketplace. Warm coral accent, photography-driven, rounded UI
|
|
71
|
+
- [**Meta**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/meta/DESIGN.md) - Tech retail store. Photography-first, binary light/dark surfaces, Meta Blue CTAs
|
|
72
|
+
- [**Nike**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/nike/DESIGN.md) - Athletic retail. Monochrome UI, massive uppercase Futura, full-bleed photography
|
|
73
|
+
- [**Shopify**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/shopify/DESIGN.md) - E-commerce platform. Dark-first cinematic, neon green accent, ultra-light display type
|
|
74
|
+
- [**Starbucks**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/starbucks/DESIGN.md) - Coffee retail flagship. Four-tier earth-green system, warm cream canvas, proprietary SoDoSans typography
|
|
75
|
+
|
|
76
|
+
### Media & Consumer Tech
|
|
77
|
+
|
|
78
|
+
- [**Apple**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/apple/DESIGN.md) - Consumer electronics. Premium white space, SF Pro, cinematic imagery
|
|
79
|
+
- [**HP**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/hp/DESIGN.md) - PC and printer maker. Pure white canvas, HP Electric Blue signal CTA, geometric Forma DJR Micro, blue chevron decorations
|
|
80
|
+
- [**IBM**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/ibm/DESIGN.md) - Enterprise technology. Carbon design system, structured blue palette
|
|
81
|
+
- [**NVIDIA**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/nvidia/DESIGN.md) - GPU computing. Green-black energy, technical power aesthetic
|
|
82
|
+
- [**Pinterest**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/pinterest/DESIGN.md) - Visual discovery platform. Red accent, masonry grid, image-first
|
|
83
|
+
- [**PlayStation**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/playstation/DESIGN.md) - Gaming console retail. Three-surface channel layout, cyan hover-scale interaction
|
|
84
|
+
- [**SpaceX**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/spacex/DESIGN.md) - Space technology. Stark black and white, full-bleed imagery, futuristic
|
|
85
|
+
- [**Spotify**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/spotify/DESIGN.md) - Music streaming. Vibrant green on dark, bold type, album-art-driven
|
|
86
|
+
- [**The Verge**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/theverge/DESIGN.md) - Tech editorial media. Acid-mint and ultraviolet accents, Manuka display type
|
|
87
|
+
- [**Uber**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/uber/DESIGN.md) - Mobility platform. Bold black and white, tight type, urban energy
|
|
88
|
+
- [**Vodafone**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/vodafone/DESIGN.md) - Global telecom brand. Monumental uppercase display, Vodafone Red chapter bands
|
|
89
|
+
- [**WIRED**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/wired/DESIGN.md) - Tech magazine. Paper-white broadsheet density, custom serif, ink-blue links
|
|
90
|
+
|
|
91
|
+
### Automotive
|
|
92
|
+
|
|
93
|
+
- [**BMW**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/bmw/DESIGN.md) - Luxury automotive. Dark premium surfaces, precise German engineering aesthetic
|
|
94
|
+
- [**BMW M**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/bmw-m/DESIGN.md) - Performance automotive. Motorsport-inspired contrast, M color accents, precision-driven layout
|
|
95
|
+
- [**Bugatti**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/bugatti/DESIGN.md) - Luxury hypercar. Cinema-black canvas, monochrome austerity, monumental display type
|
|
96
|
+
- [**Ferrari**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/ferrari/DESIGN.md) - Luxury automotive. Chiaroscuro black-white editorial, Ferrari Red with extreme sparseness
|
|
97
|
+
- [**Lamborghini**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/lamborghini/DESIGN.md) - Luxury automotive. True black cathedral, gold accent, LamboType custom Neo-Grotesk
|
|
98
|
+
- [**Renault**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/renault/DESIGN.md) - French automotive. Vivid aurora gradients, NouvelR proprietary typeface, zero-radius buttons
|
|
99
|
+
- [**Tesla**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/tesla/DESIGN.md) - Electric vehicles. Radical subtraction, cinematic full-viewport photography, Universal Sans
|
|
100
|
+
|
|
101
|
+
### Retro Web · DESIGN.md Nostalgia
|
|
102
|
+
|
|
103
|
+
A Saturday series — DESIGN.md files extracted from the web of the 1990s. Drop one in and tell your AI agent to build a period-accurate vintage UI.
|
|
104
|
+
|
|
105
|
+
- [**Dell (1996)**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/dell-1996/DESIGN.md) - Catalog-era enterprise web. Literal black page frame, flat color-block "ribbon cards", chunky Helvetica-Black titles over Times Roman body, and hand-cut GIF stickers (NEW! bursts, award seals, beveled product photos).
|
|
106
|
+
- [**Nintendo.com (2001)**](https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/nintendo-2001/DESIGN.md) - Y2K "console chrome" web. Brushed-periwinkle beveled metal panels, a halftone-dotted carbon nav glowing amber, outlined Arial-Black box-art wordmarks over circuit-board hero fields, and a pixel Mario welcome bubble.
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: documentation-templates
|
|
3
|
+
description: Documentation templates and structure guidelines. README, API docs, code comments, and AI-friendly documentation.
|
|
4
|
+
compatibility: opencode
|
|
5
|
+
metadata:
|
|
6
|
+
when_to_use: "\"When writing README files, API documentation, code comments, or generating AI-friendly documentation.\""
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
# Documentation Templates
|
|
10
|
+
|
|
11
|
+
> Templates and structure guidelines for common documentation types.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. README Structure
|
|
16
|
+
|
|
17
|
+
### Essential Sections (Priority Order)
|
|
18
|
+
|
|
19
|
+
| Section | Purpose |
|
|
20
|
+
|---------|---------|
|
|
21
|
+
| **Title + One-liner** | What is this? |
|
|
22
|
+
| **Quick Start** | Running in <5 min |
|
|
23
|
+
| **Features** | What can I do? |
|
|
24
|
+
| **Configuration** | How to customize |
|
|
25
|
+
| **API Reference** | Link to detailed docs |
|
|
26
|
+
| **Contributing** | How to help |
|
|
27
|
+
| **License** | Legal |
|
|
28
|
+
|
|
29
|
+
### README Template
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# Project Name
|
|
33
|
+
|
|
34
|
+
Brief one-line description.
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
[Minimum steps to run]
|
|
39
|
+
|
|
40
|
+
## Features
|
|
41
|
+
|
|
42
|
+
- Feature 1
|
|
43
|
+
- Feature 2
|
|
44
|
+
|
|
45
|
+
## Configuration
|
|
46
|
+
|
|
47
|
+
| Variable | Description | Default |
|
|
48
|
+
|----------|-------------|---------|
|
|
49
|
+
| PORT | Server port | 3000 |
|
|
50
|
+
|
|
51
|
+
## Documentation
|
|
52
|
+
|
|
53
|
+
- [API Reference](./docs/api.md)
|
|
54
|
+
- [Architecture](./docs/architecture.md)
|
|
55
|
+
|
|
56
|
+
## License
|
|
57
|
+
|
|
58
|
+
MIT
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 2. API Documentation Structure
|
|
64
|
+
|
|
65
|
+
### Per-Endpoint Template
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
## GET /users/:id
|
|
69
|
+
|
|
70
|
+
Get a user by ID.
|
|
71
|
+
|
|
72
|
+
**Parameters:**
|
|
73
|
+
| Name | Type | Required | Description |
|
|
74
|
+
|------|------|----------|-------------|
|
|
75
|
+
| id | string | Yes | User ID |
|
|
76
|
+
|
|
77
|
+
**Response:**
|
|
78
|
+
- 200: User object
|
|
79
|
+
- 404: User not found
|
|
80
|
+
|
|
81
|
+
**Example:**
|
|
82
|
+
[Request and response example]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 3. Code Comment Guidelines
|
|
88
|
+
|
|
89
|
+
### JSDoc/TSDoc Template
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
/**
|
|
93
|
+
* Brief description of what the function does.
|
|
94
|
+
*
|
|
95
|
+
* @param paramName - Description of parameter
|
|
96
|
+
* @returns Description of return value
|
|
97
|
+
* @throws ErrorType - When this error occurs
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* const result = functionName(input);
|
|
101
|
+
*/
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### When to Comment
|
|
105
|
+
|
|
106
|
+
| ✅ Comment | ❌ Don't Comment |
|
|
107
|
+
|-----------|-----------------|
|
|
108
|
+
| Why (business logic) | What (obvious) |
|
|
109
|
+
| Complex algorithms | Every line |
|
|
110
|
+
| Non-obvious behavior | Self-explanatory code |
|
|
111
|
+
| API contracts | Implementation details |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 4. Changelog Template (Keep a Changelog)
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
# Changelog
|
|
119
|
+
|
|
120
|
+
## [Unreleased]
|
|
121
|
+
### Added
|
|
122
|
+
- New feature
|
|
123
|
+
|
|
124
|
+
## [1.0.0] - 2025-01-01
|
|
125
|
+
### Added
|
|
126
|
+
- Initial release
|
|
127
|
+
### Changed
|
|
128
|
+
- Updated dependency
|
|
129
|
+
### Fixed
|
|
130
|
+
- Bug fix
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 5. Architecture Decision Record (ADR)
|
|
136
|
+
|
|
137
|
+
```markdown
|
|
138
|
+
# ADR-001: [Title]
|
|
139
|
+
|
|
140
|
+
## Status
|
|
141
|
+
Accepted / Deprecated / Superseded
|
|
142
|
+
|
|
143
|
+
## Context
|
|
144
|
+
Why are we making this decision?
|
|
145
|
+
|
|
146
|
+
## Decision
|
|
147
|
+
What did we decide?
|
|
148
|
+
|
|
149
|
+
## Consequences
|
|
150
|
+
What are the trade-offs?
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 6. AI-Friendly Documentation
|
|
156
|
+
|
|
157
|
+
### llms.txt Template
|
|
158
|
+
|
|
159
|
+
For AI crawlers and agents:
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
# Project Name
|
|
163
|
+
> One-line objective.
|
|
164
|
+
|
|
165
|
+
## Core Files
|
|
166
|
+
- [src/index.ts]: Main entry
|
|
167
|
+
- [src/api/]: API routes
|
|
168
|
+
- [docs/]: Documentation
|
|
169
|
+
|
|
170
|
+
## Key Concepts
|
|
171
|
+
- Concept 1: Brief explanation
|
|
172
|
+
- Concept 2: Brief explanation
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### MCP-Ready Documentation
|
|
176
|
+
|
|
177
|
+
For RAG indexing:
|
|
178
|
+
- Clear H1-H3 hierarchy
|
|
179
|
+
- JSON/YAML examples for data structures
|
|
180
|
+
- Mermaid diagrams for flows
|
|
181
|
+
- Self-contained sections
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 7. Structure Principles
|
|
186
|
+
|
|
187
|
+
| Principle | Why |
|
|
188
|
+
|-----------|-----|
|
|
189
|
+
| **Scannable** | Headers, lists, tables |
|
|
190
|
+
| **Examples first** | Show, don't just tell |
|
|
191
|
+
| **Progressive detail** | Simple → Complex |
|
|
192
|
+
| **Up to date** | Outdated = misleading |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
> **Remember:** Templates are starting points. Adapt to your project's needs.
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-architecture
|
|
3
|
+
description: How to organize frontend code — separation of concerns (UI / logic / data / type), file responsibility, state tiers, API services, schema validation, and framework conventions for React/Next and Vue. Structural rules, not visual design.
|
|
4
|
+
compatibility: opencode
|
|
5
|
+
metadata:
|
|
6
|
+
when_to_use: "\"When structuring a frontend codebase or reviewing how frontend code is organized — where logic, API calls, state, types, and validation should live; component vs hook/composable boundaries; Next.js s"
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
# Frontend Architecture
|
|
10
|
+
|
|
11
|
+
> How to organize frontend code so it scales. Separation of concerns over file-type folders.
|
|
12
|
+
> Applies to React/Next and Vue. For directory layout, follow [app-builder](../app-builder/scaffolding.md). For visual design, see [frontend-design](../frontend-design/SKILL.md). For React/Next performance, see [nextjs-react-expert](../nextjs-react-expert/SKILL.md).
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. Separation of Concerns — the core rule
|
|
17
|
+
|
|
18
|
+
Split code into four layers by responsibility. A unit of code does ONE of these, not several:
|
|
19
|
+
|
|
20
|
+
| Layer | Holds | Lives in |
|
|
21
|
+
|-------|-------|----------|
|
|
22
|
+
| **UI** | Rendering, markup, presentational state | `components/` |
|
|
23
|
+
| **Logic** | State, effects, data transforms, reusable UI logic | `hooks/` (React) · `composables/` (Vue) |
|
|
24
|
+
| **Data** | API calls, fetch/axios, cache keys | `lib/` / service files (`*.api.ts`) |
|
|
25
|
+
| **Type** | TypeScript types, domain models | `types.ts` / `*.types.ts` |
|
|
26
|
+
| **Validation** | Form/data schemas | `*.schema.ts` (zod/yup/valibot) |
|
|
27
|
+
|
|
28
|
+
> **Directory layout** (top-level folders) follows the project's scaffolding skill — do not invent a competing structure here. This skill is about *which layer code belongs to*, not where the folders sit.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 2. File Responsibility & Size
|
|
33
|
+
|
|
34
|
+
One clear responsibility per file. Size is a **signal, not a hard limit** — a clear 230-line file beats a 90-line file that fetches, validates, renders, and juggles modals + toasts.
|
|
35
|
+
|
|
36
|
+
| File type | Comfortable range |
|
|
37
|
+
|-----------|-------------------|
|
|
38
|
+
| UI component | 80–180 lines |
|
|
39
|
+
| Page / screen | 100–220 lines |
|
|
40
|
+
| Hook / composable | 40–150 lines |
|
|
41
|
+
| API service | 50–200 lines |
|
|
42
|
+
| Type / schema | flexible |
|
|
43
|
+
|
|
44
|
+
Split a file when it mixes UI + API + business logic + validation + state. Don't split a coherent file just to hit a number.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Components render UI; logic goes elsewhere
|
|
49
|
+
|
|
50
|
+
Components should primarily render. Push fetching/state/transforms into a hook or composable.
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
// ❌ Component owns the data layer
|
|
54
|
+
function ProductList() {
|
|
55
|
+
const [products, setProducts] = useState([])
|
|
56
|
+
useEffect(() => { fetch('/api/products').then(r => r.json()).then(setProducts) }, [])
|
|
57
|
+
return <div>{/* render */}</div>
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ✅ Component renders; logic lives in a hook
|
|
61
|
+
function ProductList() {
|
|
62
|
+
const { products, isLoading } = useProducts()
|
|
63
|
+
if (isLoading) return <Loading />
|
|
64
|
+
return <div>{/* render */}</div>
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
- Custom hooks must start with `use`.
|
|
69
|
+
- A component calling an API directly is acceptable only for the smallest one-off cases.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 4. Next.js — Server Components by default
|
|
74
|
+
|
|
75
|
+
In the App Router, `page.tsx` and `layout.tsx` are Server Components. Reach for `"use client"` only when you actually need the client.
|
|
76
|
+
|
|
77
|
+
| Server Component | Client Component |
|
|
78
|
+
|------------------|------------------|
|
|
79
|
+
| Fetch data, read DB/API | Form, modal, dropdown |
|
|
80
|
+
| Handle secret tokens | Event handlers, animation |
|
|
81
|
+
| Render static/semi-static layout | `useState`/`useEffect`, browser APIs (`window`, `localStorage`) |
|
|
82
|
+
|
|
83
|
+
Keep client components small. Don't `"use client"` a whole page for one interactive button — extract the button into its own client component and keep the page a Server Component.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 5. Vue — Composition API + composables
|
|
88
|
+
|
|
89
|
+
For full production apps, prefer the Composition API with `<script setup>` Single File Components. (Options API is fine for simple cases / progressive enhancement.)
|
|
90
|
+
|
|
91
|
+
- `components/` → UI
|
|
92
|
+
- `composables/` → reusable pure logic (`useX`)
|
|
93
|
+
- service files → API calls
|
|
94
|
+
|
|
95
|
+
Use a composable for reusable pure logic; use a component when reusing both logic and layout.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 6. State — start local, escalate only when needed
|
|
100
|
+
|
|
101
|
+
| Need | Use |
|
|
102
|
+
|------|-----|
|
|
103
|
+
| Component-internal state | `useState` / `ref` |
|
|
104
|
+
| Reusable state/logic in one feature | custom hook / composable |
|
|
105
|
+
| Shared UI state in a subtree | Context (React) / `provide`-`inject` (Vue) |
|
|
106
|
+
| Cross-app, complex, persisted | Zustand / Pinia / Redux |
|
|
107
|
+
| Server state / API cache | TanStack Query (react-query) / similar |
|
|
108
|
+
|
|
109
|
+
Don't reach for global state (or Redux) on day one of a small app. Server state belongs in a query library, not a global store.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 7. API in service files
|
|
114
|
+
|
|
115
|
+
Never scatter raw `fetch`/`axios` across components.
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
// user.api.ts
|
|
119
|
+
export async function getUsers() {
|
|
120
|
+
const res = await http.get('/users')
|
|
121
|
+
return res.data
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// useUsers.ts
|
|
125
|
+
export function useUsers() {
|
|
126
|
+
return useQuery({ queryKey: ['users'], queryFn: getUsers })
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Always handle loading, error, and empty states explicitly.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 8. Forms validate against a schema
|
|
135
|
+
|
|
136
|
+
Don't inline long validation inside a component.
|
|
137
|
+
|
|
138
|
+
- React/Next: react-hook-form + zod (or yup)
|
|
139
|
+
- Vue: vee-validate + zod/yup
|
|
140
|
+
|
|
141
|
+
Keep schemas in `*.schema.ts` next to the form they validate.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 9. Naming
|
|
146
|
+
|
|
147
|
+
Descriptive, not cryptic. Context from the folder is allowed, but lean explicit.
|
|
148
|
+
|
|
149
|
+
| Prefer | Avoid |
|
|
150
|
+
|--------|-------|
|
|
151
|
+
| `UserProfileCard.tsx` | `Card.tsx` |
|
|
152
|
+
| `useCreateBooking.ts` | `handle.ts` |
|
|
153
|
+
| `booking.api.ts` | `api.ts` (bare) |
|
|
154
|
+
| `booking.schema.ts` | `data.ts` |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 10. Props
|
|
159
|
+
|
|
160
|
+
Type props explicitly. When a component takes many related fields, pass the object, not a scatter of primitives.
|
|
161
|
+
|
|
162
|
+
```tsx
|
|
163
|
+
// ✅
|
|
164
|
+
type ProductCardProps = { product: Product; onSelect?: (p: Product) => void }
|
|
165
|
+
|
|
166
|
+
// ❌ seven loose props
|
|
167
|
+
<ProductCard id={id} name={name} price={price} image={image} discount={discount} stock={stock} />
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 11. Anti "god component"
|
|
173
|
+
|
|
174
|
+
Split a component when it shows these tells:
|
|
175
|
+
|
|
176
|
+
- longer than ~200 lines
|
|
177
|
+
- more than ~3 `useEffect`/`watch`
|
|
178
|
+
- many `useState`/`ref`
|
|
179
|
+
- renders UI **and** fetches API
|
|
180
|
+
- many `if/else` business branches
|
|
181
|
+
- multiple modals/tables/forms in one file
|
|
182
|
+
|
|
183
|
+
Decompose along the page seams:
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
Page
|
|
187
|
+
├─ Header
|
|
188
|
+
├─ Filter
|
|
189
|
+
├─ Table / List
|
|
190
|
+
├─ Pagination
|
|
191
|
+
└─ Modal / Form
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 12. Tailwind class hygiene
|
|
197
|
+
|
|
198
|
+
- If a `className` runs past ~5–8 logical groups, extract a component.
|
|
199
|
+
- Repeated patterns → a reusable component or variant helper.
|
|
200
|
+
- No complex conditional logic inline in `className` — use `cn()`.
|
|
201
|
+
|
|
202
|
+
```tsx
|
|
203
|
+
// ✅
|
|
204
|
+
const cardClassName = cn(
|
|
205
|
+
'rounded-xl border p-4',
|
|
206
|
+
isActive && 'bg-blue-500 text-white',
|
|
207
|
+
isError && 'border-red-500',
|
|
208
|
+
)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 13. TypeScript
|
|
214
|
+
|
|
215
|
+
- Enable `strict: true`.
|
|
216
|
+
- Avoid `any`.
|
|
217
|
+
- Type props, API responses, and domain models explicitly.
|
|
218
|
+
- Prefer union types over enums when a union suffices.
|
|
219
|
+
- Validate external data with schemas (zod) — types alone don't guard runtime input.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 14. Minimum testing
|
|
224
|
+
|
|
225
|
+
Don't test everything up front; do cover:
|
|
226
|
+
|
|
227
|
+
- utilities → unit tests
|
|
228
|
+
- important hooks/composables → unit tests
|
|
229
|
+
- main forms → validation tests
|
|
230
|
+
- critical flows → e2e
|
|
231
|
+
|
|
232
|
+
Colocate (`useBooking.test.ts` next to `useBooking.ts`) or keep `tests/unit` + `tests/e2e` — pick one and stay consistent.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 15. Accessibility floor
|
|
237
|
+
|
|
238
|
+
- Use `<button>` for actions, not `<div onClick>`.
|
|
239
|
+
- Every input has a label; every image has `alt`.
|
|
240
|
+
- Modals support keyboard escape + focus trap.
|
|
241
|
+
- Forms surface errors clearly.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
> **Remember:** one file = one responsibility · UI doesn't own logic · logic → hook/composable · API → service · validation → schema · types separate · Next is server-first · Vue is composable-first. Directory structure comes from the scaffolding skill, not from here.
|