# Planning Guide
AeThex Studio is a browser-based cross-platform game development IDE with file management, multi-platform preview, AI assistance, and project templates.
**Experience Qualities**:
1. **Professional** - Should feel like a complete IDE with file navigation, tabs, and split panels like VS Code
2. **Intelligent** - AI assistance deeply integrated with context awareness and code suggestions
3. **Cross-Platform** - Unified workspace showing Roblox, Web, and Mobile development simultaneously
**Complexity Level**: Complex Application (advanced functionality with multiple views and state management)
This is now a full-featured IDE with file tree navigation, multiple open files, tabbed editor, AI chat panel, console output, multi-platform preview, and project templates - creating a complete game development workspace.
## Essential Features
### File Tree Navigator
- **Functionality**: Left sidebar showing folder/file hierarchy with create, rename, and delete operations
- **Purpose**: Organize multiple scripts and manage project structure like a real IDE
- **Trigger**: Always visible on desktop, accessible via tabs on mobile
- **Progression**: User clicks "New File" → enters name → new file appears in tree → clicks to open
- **Success criteria**: Files persist between sessions, operations work smoothly, selected file highlights
### Multi-File Tabs
- **Functionality**: Horizontal tabs showing open files with close buttons
- **Purpose**: Work with multiple scripts simultaneously without losing context
- **Trigger**: Opening a file from tree adds a tab
- **Progression**: User opens file → tab appears → clicks tab to switch → clicks X to close
- **Success criteria**: Active tab highlighted, tab state persists, smooth switching
### Multi-Platform Preview
- **Functionality**: Modal showing Roblox, Web, and Mobile viewports side-by-side with shared state sync
- **Purpose**: Visualize how game runs across all platforms simultaneously
- **Trigger**: User clicks "Preview" button in toolbar
- **Progression**: Click Preview → modal opens → see three viewport mockups → view synced state table → close modal
- **Success criteria**: Modal is visually impressive with glassmorphism, state sync table updates, deploy buttons present
### New Project Wizard
- **Functionality**: 3-step modal for creating projects with templates, platform selection, and feature toggles
- **Purpose**: Quick-start new games with appropriate scaffolding
- **Trigger**: User clicks "New Project" button in toolbar
- **Progression**: Click New Project → choose template → configure settings → review → create → file tree populates
- **Success criteria**: Stepper UI shows progress, all template types available, settings persist
### Console Output Panel
- **Functionality**: Bottom panel showing logs filtered by platform (Roblox/Web/Mobile/System)
- **Purpose**: Display runtime output and errors from all platforms in one place
- **Trigger**: Always visible on desktop (collapsible), shows logs automatically
- **Progression**: Code runs → logs appear → filter by platform → clear logs button
- **Success criteria**: Color-coded messages, platform badges, auto-scroll, clear functionality
### User Profile Menu
- **Functionality**: Avatar dropdown in toolbar showing GitHub profile with sign-out option
- **Purpose**: Display current user identity and provide account actions
- **Trigger**: Click avatar icon in top-right
- **Progression**: User logged in → avatar shows → click opens menu → see profile info
- **Success criteria**: Fetches real GitHub user via spark.user(), displays avatar and email
## Edge Case Handling
- **Empty File Tree**: Show placeholder with "Create your first file" message
- **No Open Files**: Display welcome message in editor area
- **AI Errors**: Display user-friendly error messages if AI service is unavailable
- **Large Scripts**: Monaco handles large files, warn if exceeds 10,000 lines
- **Invalid Operations**: Prevent deleting root folder, renaming to empty string
- **Network Issues**: Show offline indicator if can't reach AI or user services
- **Mobile Layout**: Stack panels vertically with tab navigation for Files/Editor/AI
## Design Direction
The design should evoke a professional game development IDE with futuristic gaming aesthetics - dark themes with vibrant cyan/purple accents, glassmorphism effects in modals, and smooth panel animations. This is VS Code meets Unreal Engine editor with a playful gaming twist.
## Color Selection
A dark, code-focused theme with vibrant accent colors inspired by Roblox's playful brand and gaming aesthetics.
- **Primary Color**: oklch(0.45 0.20 265) - Deep electric blue that represents technical precision and digital creativity
- **Secondary Colors**:
- Background: oklch(0.15 0.02 265) - Near-black with subtle blue tint
- Surface: oklch(0.20 0.03 265) - Slightly elevated dark panels
- **Accent Color**: oklch(0.75 0.20 150) - Vibrant cyan-green for CTAs, highlights, and active states
- **Foreground/Background Pairings**:
- Primary (Deep Blue): White text (oklch(0.98 0 0)) - Ratio 7.2:1 ✓
- Accent (Cyan-Green): Dark text (oklch(0.15 0.02 265)) - Ratio 8.1:1 ✓
- Background (Near-Black): Light text (oklch(0.85 0.03 265)) - Ratio 12.3:1 ✓
- Surface (Dark Panel): Light text (oklch(0.85 0.03 265)) - Ratio 10.5:1 ✓
## Font Selection
Typography should feel technical yet approachable - monospace for code, clean sans-serif for UI.
- **Typographic Hierarchy**:
- H1 (App Title): Space Grotesk Bold/32px/tight tracking (-0.02em)
- H2 (Section Headers): Space Grotesk Semibold/20px/normal tracking
- Body (UI Text): Inter Medium/14px/relaxed line-height (1.6)
- Code (Editor): JetBrains Mono Regular/14px/monospace
- Small (Hints): Inter Regular/12px/muted color
## Animations
Animations should feel snappy and technical - quick state transitions with subtle easing that reinforces the digital tool aesthetic. Use framer-motion for panel slides and modal appearances, but keep transitions under 200ms to avoid feeling sluggish. Add micro-interactions on buttons (scale on press) and smooth scrolling in the chat panel.
## Component Selection
- **Components**:
- `Button` with accent variant for primary actions (New Project, Preview)
- `Card` for template previews, project configs, and preview mockups
- `Dialog` for Preview Modal, New Project Modal, About dialog
- `DropdownMenu` for file context menus and user profile menu
- `Avatar` for user profile display
- `ScrollArea` for file tree, chat messages, console logs
- `Tabs` for template categories, preview modes, console filters, mobile navigation
- `Input` for file rename, project name entry
- `Checkbox` for platform selection in new project
- `Switch` for Nexus Engine and Passport Auth toggles
- `Badge` for popular templates, platform indicators, status labels
- `Tooltip` for button explanations and feature descriptions
- `ResizablePanel` for adjustable sidebar and panel widths
- Custom Monaco Editor wrapper
- Custom FileTree with nested folders
- Custom FileTabs with close buttons
- Custom ConsolePanel with platform filtering
- **Customizations**:
- Monaco editor with dark theme configuration
- File tree with expand/collapse animations
- Preview modal with glassmorphism effects (backdrop-blur)
- Multi-platform viewport mockups with device frames
- Shared state sync table with color-coded status
- Console with platform-specific badge colors
- **States**:
- Buttons: Accent primary (New Project), Ghost secondary (Templates, Copy)
- File items: Selected (accent background), Hover (muted background)
- Tabs: Active (accent bottom border), Inactive (transparent)
- Console logs: Color by type (red error, yellow warn, blue info)
- **Icon Selection**:
- File tree: ``, ``, ``, ``, ``
- Toolbar: `` (New Project), `` (Preview), `` (Profile)
- Preview: `` (Refresh), ``, ``, ``
- Console: `` (Console icon)
- All from Phosphor Icons
- **Spacing**:
- Container padding: p-4
- Panel borders: border-border (1px)
- Component gaps: gap-4 for sections, gap-2 for grouped items
- File tree indent: 12px per level
- **Mobile**:
- Tabs for Files/Editor/AI switching on mobile
- File tree full-screen on mobile
- Hide console panel on mobile
- Preview modal scrollable on small screens
- Stepper in New Project modal scales down