# 14. Branding & Design System

## Visual Identity

Sasha Studio uses a modern, professional aesthetic with a dark-first design approach. The UI is inspired by developer tools (VS Code, Claude Code) but adapted for non-technical business users.

## Color System

### Theme Support

Dark and light themes supported, toggled via `DarkModeToggle` component. Theme state managed in `ThemeContext.jsx`.

### Workflow Editor Colors (Step Types)

| Step Type | Color | Usage |
|-----------|-------|-------|
| Transform | Blue | Data transformation steps |
| Skill | Purple | Skill reference nodes |
| Tool | Green | Tool execution nodes |
| Decision | Amber | Decision/branching points |
| Gate | Red | Approval gates |
| Parallel / Subagent | Teal | Parallel execution groups |
| End | Gray | Terminal nodes |
| Artifact | (to right of step) | Output file indicators |
| Audit | Amber | Audit output paths |
| Error | Red | Error conditions |

### System Health Dashboard Colors

| Status | Color | Threshold |
|--------|-------|-----------|
| Green | Success | Disk < 70%, healthy |
| Yellow | Warning | Disk 70-85% |
| Red | Critical | Disk > 85% |

## Typography

| Element | Current Implementation |
|---------|----------------------|
| Font family | System font stack (inherited from browser) |
| Code font | Monospace (CodeMirror default) |
| Heading hierarchy | Standard HTML h1-h6 |
| Body text | Default sizing |

**Note:** No custom font or explicit typography system observed in the codebase. Uses browser defaults and component library defaults.

## Component Library

### UI Primitives (Shadcn-style)

Located in `src/components/ui/`:

| Component | File | Purpose |
|-----------|------|---------|
| Badge | `badge.jsx` | Status indicators, labels |
| Button | `button.jsx` | Action buttons |
| Input | `input.jsx` | Text inputs |
| ScrollArea | `scroll-area.jsx` | Scrollable containers |

### Icon System

| Library | Usage |
|---------|-------|
| Phosphor Icons (`@phosphor-icons/react`) | Primary icon set |
| Lucide React (`lucide-react`) | Secondary icons |
| Custom icons | `src/components/icons/index.jsx` (Check, CheckCircle, etc.) |
| Emoji-to-icon | `rehypeEmojiToPhosphor.js` converts emoji in markdown to Phosphor icons |

### Layout Patterns

| Pattern | Implementation |
|---------|---------------|
| Sidebar + content | Main app layout |
| Modal dialogs | Settings, create forms, confirmations |
| Toast notifications | `ToastContainer` + `ToastContext` |
| Expandable sections | Analytics reports |
| Card grid | Skills, personas, integrations |
| Tab navigation | File downloads, settings panels |
| Floating action bar | `FloatingIconBar` for quick actions |

### Animation & Motion

| Library | Usage |
|---------|-------|
| Framer Motion | UI transitions, component animations |
| CSS transitions | Hover states, theme switching |
| `WaveText` | Animated text during loading/streaming |
| `TrackmakerRaw/Prose` | Response rendering animations |

## Responsive Design

| Breakpoint | Behavior |
|-----------|----------|
| Desktop (>1024px) | Full sidebar + content layout |
| Tablet (768-1024px) | Collapsed sidebar (icons only) |
| Mobile (<768px) | `MobileNav` bottom navigation, stacked layout |

## Content Style

| Element | Convention |
|---------|-----------|
| Product name | "Sasha Studio" or "Sasha" |
| Onboarding metaphor | "New team member" / "employee" framing |
| Error messages | Direct, actionable (e.g., "Invalid credentials", "File exceeds maximum size") |
| Button labels | Action verbs ("Save", "Create", "Delete", "Run") |
| Empty states | Descriptive message + CTA button |
| Confirmation dialogs | Warning message + destructive action button (red) |
