mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-26 23:04:57 +00:00
249 lines
11 KiB
Markdown
249 lines
11 KiB
Markdown
# Atomic Design Visual Guide
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ ATOMIC DESIGN HIERARCHY │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
┌─────────────┐
|
|
│ ATOMS │ Smallest building blocks
|
|
│ (shadcn) │ Cannot be divided further
|
|
└──────┬──────┘
|
|
│ Button, Input, Label, Badge, Avatar, etc.
|
|
│
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ MOLECULES │ Simple combinations (2-5 atoms)
|
|
│ (6 total) │ Single focused purpose
|
|
└──────┬──────┘
|
|
│ • AppHeader (logo + nav buttons)
|
|
│ • AppFooter (links + copyright)
|
|
│ • GodCredentialsBanner (alert + text + button)
|
|
│ • ProfileCard (avatar + labels + values)
|
|
│ • SecurityWarningDialog (dialog + title + list + buttons)
|
|
│ • PasswordChangeDialog (dialog + form + inputs + buttons)
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ ORGANISMS │ Complex features (many atoms/molecules)
|
|
│ (40+ total)│ Business logic included
|
|
└──────┬──────┘
|
|
│
|
|
├─ BUILDERS
|
|
│ • Builder (drag-drop interface)
|
|
│ • Canvas (component renderer)
|
|
│ • ComponentCatalog (searchable list)
|
|
│ • PropertyInspector (dynamic forms)
|
|
│
|
|
├─ EDITORS
|
|
│ • SchemaEditor (Monaco + validation)
|
|
│ • CodeEditor (Monaco + syntax highlighting)
|
|
│ • LuaEditor (Monaco + security scan)
|
|
│ • JsonEditor (Monaco + validation)
|
|
│ • NerdModeIDE (full IDE panel)
|
|
│
|
|
├─ MANAGERS
|
|
│ • DatabaseManager (query interface)
|
|
│ • UserManagement (CRUD operations)
|
|
│ • PackageManager (install/uninstall)
|
|
│ • CssClassManager (class library)
|
|
│ • ThemeEditor (color customization)
|
|
│
|
|
└─ FEATURES
|
|
• IRCWebchat (real-time chat)
|
|
• WorkflowEditor (workflow config)
|
|
• AuditLogViewer (log display)
|
|
• ScreenshotAnalyzer (AI analysis)
|
|
|
|
▼
|
|
┌─────────────┐
|
|
│ PAGES │ Complete views (Level 1-5)
|
|
│ (5 total) │ Compose organisms together
|
|
└─────────────┘
|
|
• Level1 (Landing page)
|
|
• Level2 (User dashboard)
|
|
• Level3 (Admin panel)
|
|
• Level4 (God builder)
|
|
• Level5 (Super God panel)
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ IMPORT PATH EXAMPLES │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
// Atoms (basic UI elements)
|
|
import { Button, Input, Label, Badge } from '@/components/atoms'
|
|
|
|
// Molecules (simple composites)
|
|
import {
|
|
AppHeader,
|
|
ProfileCard,
|
|
SecurityWarningDialog
|
|
} from '@/components/molecules'
|
|
|
|
// Organisms (complex features)
|
|
import {
|
|
ComponentCatalog,
|
|
PropertyInspector,
|
|
SchemaEditor,
|
|
UserManagement
|
|
} from '@/components/organisms'
|
|
|
|
// Pages
|
|
import Level4 from '@/components/Level4'
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ DEPENDENCY FLOW RULES │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
✅ ALLOWED:
|
|
Atoms → [nothing custom, only React/external]
|
|
Molecules → Atoms
|
|
Organisms → Atoms, Molecules, other Organisms
|
|
Pages → Atoms, Molecules, Organisms
|
|
|
|
❌ FORBIDDEN:
|
|
Atoms → Molecules or Organisms
|
|
Molecules → Organisms
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ COMPONENT COMPOSITION EXAMPLE │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
PAGE (Level4.tsx)
|
|
└─ Contains:
|
|
├─ AppHeader (molecule)
|
|
│ └─ Button (atom)
|
|
│ └─ Badge (atom)
|
|
│
|
|
├─ ComponentCatalog (organism)
|
|
│ ├─ Input (atom)
|
|
│ ├─ Button (atom)
|
|
│ └─ ScrollArea (atom)
|
|
│
|
|
├─ PropertyInspector (organism)
|
|
│ ├─ Label (atom)
|
|
│ ├─ Input (atom)
|
|
│ ├─ Select (atom)
|
|
│ └─ Button (atom)
|
|
│
|
|
└─ SchemaEditor (organism)
|
|
├─ Dialog (atom)
|
|
├─ Button (atom)
|
|
└─ MonacoEditor (external)
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ COMPLEXITY DECISION TREE │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
Is it a single UI element?
|
|
│
|
|
├─ YES → ATOM (use shadcn/ui)
|
|
│ Examples: Button, Input, Badge
|
|
│
|
|
└─ NO → Is it 2-5 simple elements working together?
|
|
│
|
|
├─ YES → MOLECULE
|
|
│ Examples: FormField (Label + Input + Error)
|
|
│ CardHeader (Avatar + Title + Subtitle)
|
|
│
|
|
└─ NO → Is it a complex feature with logic?
|
|
│
|
|
└─ YES → ORGANISM
|
|
Examples: SchemaEditor, UserManagement
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ FILE STRUCTURE │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
src/components/
|
|
│
|
|
├── atoms/
|
|
│ ├── index.ts # Re-exports shadcn components
|
|
│ └── README.md # Documentation
|
|
│
|
|
├── molecules/
|
|
│ ├── index.ts # Exports all molecules
|
|
│ ├── README.md # Documentation
|
|
│ └── [molecule components] # Optional: move here or use exports
|
|
│
|
|
├── organisms/
|
|
│ ├── index.ts # Exports all organisms
|
|
│ ├── README.md # Documentation
|
|
│ └── [organism components] # Optional: move here or use exports
|
|
│
|
|
├── ui/ # shadcn components (unchanged)
|
|
│ └── [all shadcn components]
|
|
│
|
|
├── shared/ # Shared utilities
|
|
│ ├── AppHeader.tsx # Molecule
|
|
│ └── AppFooter.tsx # Molecule
|
|
│
|
|
├── level1/ # Level 1 sections
|
|
│ ├── HeroSection.tsx # Organism
|
|
│ ├── FeaturesSection.tsx # Organism
|
|
│ └── NavigationBar.tsx # Organism
|
|
│
|
|
└── [Level1.tsx - Level5.tsx] # Top-level pages
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ KEY BENEFITS │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
📦 MODULARITY
|
|
Components are self-contained and reusable
|
|
|
|
🔍 DISCOVERABILITY
|
|
Easy to find components by complexity level
|
|
|
|
🧪 TESTABILITY
|
|
Atoms and molecules test in isolation easily
|
|
|
|
📚 DOCUMENTATION
|
|
Structure serves as living documentation
|
|
|
|
🎯 CONSISTENCY
|
|
Shared atoms ensure visual consistency
|
|
|
|
⚡ DEVELOPMENT SPEED
|
|
Compose features faster from existing parts
|
|
|
|
🔄 MAINTAINABILITY
|
|
Changes to atoms propagate automatically
|
|
|
|
🎓 ONBOARDING
|
|
New developers understand hierarchy quickly
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ QUICK REFERENCE COUNTS │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
Atoms: 12+ (all from shadcn/ui)
|
|
Molecules: 6 (simple composites)
|
|
Organisms: 40+ (complex features)
|
|
Pages: 5 (Level 1-5)
|
|
|
|
Total Components: 60+
|
|
|
|
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ IMPLEMENTATION STATUS │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
[✅] Documentation created (ATOMIC_DESIGN.md)
|
|
[✅] Component classification map (COMPONENT_MAP.md)
|
|
[✅] Visual guide (ATOMIC_STRUCTURE.md)
|
|
[✅] Index files with exports created
|
|
[✅] README files for each level
|
|
[⏳] Physical file migration (optional)
|
|
[⏳] Import path updates (can be gradual)
|
|
[⏳] Add to PRD
|
|
```
|