This document tracks implemented and remaining features for the MUI Theme Builder project.
Last Updated: December 3, 2025
- Simultaneous light & dark mode editing
- Visual property editor for palette, typography, spacing, and shapes
- Code editor with TypeScript autocomplete
- Real-time theme preview
- Theme templates (Material Design, Modern, Minimal, iOS 26)
- Template registry system with extensibility
- Color scheme toggle
- Design storage and persistence (localStorage)
- Undo/Redo history system
- Export ThemeOptions (partial)
- Export full Theme object
- Export formats: TypeScript, JavaScript, JSON
- Clean, copy-paste ready code output
- TypeScript/JavaScript code editor with syntax highlighting
- MUI theme autocomplete
- Code validation (AST-based)
- Security validation (prevents code injection)
- Domain-Specific Language (DSL) for safe code execution
- Diff view support
- Code override system
- Modern, intuitive interface
- Responsive design
- Dark mode support
- Keyboard shortcuts
- Properties panel (Designer & Developer modes)
- Explorer panel with canvas objects tree
- Toolbar with quick actions
- Canvas with zoom/pan controls
- Viewport simulation for responsive testing
- Multiple preview components (Dashboard, Blog, Contact Form, etc.)
- Product card grid
- Checkout example
- MUI components registry (auto-discovered)
- Preview registry system
- Real-time theme application
- Layered compilation pipeline (Base → Visual → Code → Compiled)
- Theme compiler with validation and transformation
- State management (Zustand-based design store)
- Feature flags system
- Security boundary (DSL prevents arbitrary code execution)
-
Paste Option Implementation - Import theme from clipboard JSON
- File:
src/Editor/Design/Draft/Methods/PasteOption.tsx - TODO: Call store action to import theme options (line 23)
- File:
-
Blank Option Implementation - Create empty design with preset
- File:
src/Editor/Design/Draft/Methods/BlankOption.tsx - TODO: Call store to create an empty design with chosen preset (line 8)
- File:
- Dynamic Resource Generator - AI-powered theme generation
- Files:
DynamicResourceGenerator.tsx,resourceGeneratorMap.tsx - Status: FAB UI implemented, but generation logic missing
- Buttons exist for: "Generate Colors", "Generate Typography", "Generate Appearance"
- Scope unclear: How far to take this feature?
- Potential: Color palette generation, typography scales, appearance presets
- Files:
- Missing Typography Variants - Only H1-H6 and Button implemented
- Currently missing editors for:
- body1, body2
- subtitle1, subtitle2
- caption
- overline
- File:
src/Editor/Properties/Typography/Typography.tsx - Note: Mentioned in font family config but no dedicated editors
- Currently missing editors for:
-
Layout Properties - Empty folder structure exists
- Folder:
src/Editor/Properties/Appearance/Layout/ - Potential properties: Container queries, CSS Grid/Flexbox utilities
- Folder:
-
Effects Properties - Empty folder structure exists
- Folder:
src/Editor/Properties/Appearance/Effects/ - Potential properties: Backdrop blur, glass morphism, gradients
- Ideas file exists:
appearance-category-idea-source.tswith presets like:- RTL content support
- Remove AppBar elevation
- Glass backgrounds
- iOS switches
- Disable ripple effects
- Dense UI variants
- Folder:
- Size/Density Properties - No visual editor exists
- Mentioned in appearance ideas: Dense buttons, inputs, lists, tables, menus
- MUI density customization not exposed in UI
-
Properties Panel Padding - Match right padding of page content
- File:
src/Editor/Properties/PropertiesPanel.tsx - FIXME: Match right padding of page content (line 126)
- File:
-
CSS Style Input Width - Remove magic number
- File:
src/Editor/Properties/Appearance/Styles/CssStyleInputOption.tsx - FIXME: Magic number for width: "6ch" (line 80)
- File:
-
Color Scheme Toggle Size - Match activity bar button sizes
- File:
src/Editor/Design/Current/Modify/ColorSchemeToggle.tsx - TODO: Match the size of other activity bar actions/buttons (line 54)
- File:
From src/Editor/Design/compiler/README.md:
- Support for custom MUI components in DSL
- Advanced breakpoint queries (not, print, etc.)
- Type-safe DSL builder API
- Performance profiling for large themes
- Incremental transformation (only changed paths)
Currently missing visual editors for:
- Breakpoints - Responsive breakpoints customization
- Present in code completions but no visual editor
- Z-Index - Layer stacking customization
- Present in code completions but no visual editor
- Transitions - Animation timing and easing
- Present in code completions but no visual editor
- Mixins - Custom theme mixins
- Present in code completions but no visual editor
- Shadows - Elevation shadow customization
- No visual editor found (only in templates)
- Could include shadow color, blur, spread controls
- Components - Component-specific style overrides UI
- Code validation exists, but no dedicated visual editor
- This is the biggest gap for power users
- More Design Templates - Per README: "Submission are encouraged via pull request"
- Current templates: Material, Modern, Minimal, iOS 26
- Need: More design presets from different design systems
- Potential: Chakra UI-inspired, Tailwind-inspired, Bootstrap-inspired, etc.
- Version history dialog (feature-flagged)
- Save/restore design versions
- Production Ready - Currently disabled in production by default
- Feature flag:
SHOW_VERSION_HISTORY(default: dev only)
- Feature flag:
-
Complete Typography Variants
- Add body1, body2, subtitle1, subtitle2, caption, overline editors
- Current: Only 40% of typography system covered
-
Complete New Design Methods
- Implement Paste Option (import from JSON)
- Implement Blank Option (start from scratch)
-
Component Style Overrides UI
- Visual editor for
components.MuiButton.styleOverrides, etc. - This is a major MUI feature that's only accessible via code editor
- Could be similar to Chrome DevTools style inspector
- Visual editor for
-
Resource Generator Feature Scope
- Decide how far to take AI/algorithmic generation
- Options:
- Basic: Generate harmonious color palettes from base color
- Medium: Generate typography scales, spacing scales
- Advanced: Full theme generation from description/image
- Implementation depends on your vision
-
Layout & Effects Properties
- Implement appearance presets from
appearance-category-idea-source.ts - Add visual editors for Layout and Effects folders
- Include: RTL, glass morphism, density controls, etc.
- Implement appearance presets from
-
Complete Theme Property Coverage
- Visual editors for breakpoints, shadows, transitions
- Would achieve full theme customization parity
-
UI Polish
- Fix padding/sizing TODOs/FIXMEs
- Consistent spacing and sizing across UI
-
More Templates
- Add more design system templates
- Community contributions encouraged
-
Compiler Enhancements
- Custom component support in DSL
- Performance profiling for large themes
-
Advanced Features
- Type-safe DSL builder API
- Incremental transformation optimization
- Advanced breakpoint queries
Based on analysis of existing MUI theme tools, here are features that competitors have but are missing from this project:
-
Cloud Sync/Save - Save themes to cloud (not just localStorage)
- Competitors: Have cloud storage, team sharing
- Current: Only localStorage (limited to single browser)
-
Theme Import from URL - Load themes from remote URLs
- Useful for sharing themes via links
- Current: Only local file/paste support planned
-
Theme Marketplace/Gallery - Browse and use community themes
- Competitors: Have curated theme galleries
- Could integrate with GitHub discussions or dedicated site
-
npm Package Export - Generate ready-to-publish npm package
- Include package.json, README, TypeScript declarations
- One-click publish workflow
-
CDN Link Generation - Generate CDN-hosted theme files
- Useful for quick prototyping without install
-
Figma/Design Tool Export - Export color tokens to Figma
- Competitors: Have Figma plugin integration
- Useful for design-dev handoff
-
Live Preview URL - Deploy preview to temporary URL
- Share live preview with stakeholders
- Current: Only local preview
-
TypeScript Type Generation - Generate augmented theme types
- For custom palette colors, component variants
- Improves autocomplete in user's IDE
-
Theme Diff Viewer - Compare two themes side-by-side
- Useful for reviewing changes or comparing templates
- Could show visual and code differences
-
A11y Checker - Accessibility validation tool
- Check contrast ratios automatically
- WCAG compliance suggestions
- Current: MUI handles contrast text, but no explicit validator UI
-
Browser Extension - Extract themes from websites
- Capture colors, typography from any site
- Competitors: Have browser extensions
-
VS Code Extension - Edit themes in VS Code
- Sync with editor for seamless workflow
- Current: Standalone web app only
-
Comments/Annotations - Add notes to theme properties
- Document design decisions
- Team collaboration
-
Change History/Audit Log - Track who changed what
- Beyond undo/redo, show full history
- Current: Version history exists but limited
-
Theme Variants/Branches - Create theme variations
- Like Git branches for themes
- Compare and merge variants
-
Component Props Defaults - Set default props for components
- Example: Make all buttons
variant="contained"by default - Current: Only
styleOverridesvia code editor
- Example: Make all buttons
-
Custom Component Library - Define custom component styles
- Beyond MUI components
- Theme your own design system
-
CSS Variables Export - Generate CSS custom properties
- For use outside React/MUI
- Useful for hybrid apps
-
Responsive Typography - Fluid typography with
clamp()- Auto-scaling typography between breakpoints
- Current: Fixed sizes per breakpoint
-
Animation Presets - Pre-built transition/animation sets
- Smooth, snappy, bouncy, etc.
- Apply globally to all components
-
Theme Tokens Documentation - Auto-generate theme docs
- Create styleguide/documentation site from theme
- Show all colors, typography, spacing with examples
These would significantly enhance the user experience:
-
Keyboard Shortcuts Panel - Visual shortcut reference
- Current: Shortcuts exist but no discoverable UI
-
Command Palette - Quick command search (Cmd/Ctrl+K)
- Navigate features, apply presets, change views
- Like VS Code/Figma command palette
-
Recent Themes - Quick access to recently edited themes
- Currently buried in collection dialog
-
Theme Search - Search saved themes by name/properties
- Filter by color, template, date modified
-
Dark Mode for Editor - Dark theme for the editor itself
- Current: Editor UI is always light (themes can be dark)
-
Custom Canvas Backgrounds - Change preview background
- Patterns, gradients, colors
- See how theme looks on different surfaces
-
Responsive Preview Grid - See all breakpoints at once
- Current: One breakpoint at a time
- Show mobile, tablet, desktop side-by-side
-
Component State Preview - Show hover, focus, disabled states
- Interactive state inspector
- Current: Need to interact manually
-
Interactive Tutorial - Guided onboarding
- Teach users how to use the editor
- Feature discovery tour
-
Theme Analyzer - Analyze theme quality
- Accessibility score
- Consistency score (spacing, colors)
- Best practices recommendations
-
Design System Generator - Generate full design system docs
- From theme, create component library documentation
- Like Storybook but auto-generated from theme
-
CI/CD Integration - GitHub Actions for theme validation
- Auto-check theme changes in PRs
- Prevent breaking changes
-
Webhook Support - Notify external systems on theme changes
- Trigger rebuilds, notify design team
-
API Access - Programmatic theme manipulation
- REST/GraphQL API for theme operations
- Headless theme editing
-
Theme Size Analyzer - Show bundle impact
- Estimate KB added to bundle
- Suggest optimizations
-
Lazy Loading Themes - Code-split theme imports
- Generate code for dynamic theme loading
- Reduce initial bundle size
-
Mobile Editor - Touch-optimized editing
- Current: Desktop-first design
- Edit themes on tablets/phones
-
Progressive Web App - Installable app
- Offline editing support
- Native-like experience
-
Old- Replaced by registry systemdesignTemplates.ts -
Old DSL validator exports- Consolidated into compiler module -
Separate light/dark theme objects- Migrated tocolorSchemes
-
DevSandbox.tsx - Development sandbox preview component
- Purpose unclear, may be for testing/prototyping
-
appearance-category-idea-source.ts - In Properties/Appearance
- Name suggests it's a reference/idea file, not production code
-
Deprecated Functions - In
src/Editor/Design/compiler/index.ts- Old exports marked as deprecated but still present
- May need cleanup/removal
| Category | Implemented | Remaining | Coverage |
|---|---|---|---|
| Core Editing | 9/9 | 0 | ✅ 100% |
| Export System | 4/4 | 0 | ✅ 100% |
| Code Editor | 7/7 | 0 | ✅ 100% |
| Typography (Visual) | 2/8 | 6 | 🔴 25% |
| Appearance (Visual) | 2/7 | 5 | 🔴 29% |
| Theme Properties (Visual) | 4/10 | 6 | 🟡 40% |
| Preview System | 5/5 | 0 | ✅ 100% |
| UI/UX Polish | 8/11 | 3 | 🟡 73% |
| Templates | 4/4+ | Infinite | 🟢 Good |
| Compiler | 5/10 | 5 | 🟡 50% |
| Resource Generator | 1/4 | 3 | 🟡 25% |
Overall Completion: ~70% (revised down from 75% due to discovered gaps)
- Typography: Only H1-H6 + Button (missing body, subtitle, caption, overline)
- Appearance: Layout and Effects folders completely empty
- Resource Generator: UI exists but no generation logic
- Component Overrides: No visual editor (code-only)
-
Complete Typography Variants
- Add body1, body2, subtitle1, subtitle2, caption, overline
- Copy existing Headline component pattern
- Biggest bang for buck: 25% → 100% typography coverage
-
Implement Paste/Blank Options
- Wire up existing UI to store actions
- Low-hanging fruit with clear TODOs
-
Fix UI TODOs/FIXMEs
- Three small polish items
- Quick visual improvements
-
Resource Generator Scope Decision & Implementation
- Option A (Simple): Color palette generator from base color
- Option B (Medium): + Typography scale generator
- Option C (Advanced): + AI-powered full theme generation
- Recommendation: Start with Option A, validate demand before B/C
-
Component Style Overrides Visual Editor
- This is THE power user feature
- Could be MUI's version of Chrome DevTools style panel
- High complexity but huge value
-
Complete Appearance Properties
- Implement Layout folder (container queries, density)
- Implement Effects folder (glass morphism, presets from ideas file)
- Fill the empty folders with actual functionality
-
Theme Property Editors
- Breakpoints, shadows, transitions visual editors
- Nice-to-have but low priority vs core gaps
-
More Templates
- Community-driven, accept PRs
- Chakra, Tailwind, Ant Design inspired themes
-
Competitor-Inspired Features
- Pick from "Missing Features" list based on user feedback
- Start with: A11y checker, theme diff viewer, dark mode for editor
-
Cloud Sync & Collaboration
- Requires backend infrastructure
- Consider Supabase/Firebase for quick implementation
-
VS Code Extension
- Bring the editor to where developers work
- Sync with web app
-
Design System Generator
- Auto-generate full component library docs from theme
- Like Storybook but theme-centric
- ✅ Core editing (done)
- ✅ Export (done)
- ✅ Code editor (done)
- 🔴 Complete typography variants (critical gap)
- 🔴 Paste/Blank options (broken workflow)
- 🟡 Component overrides UI (power user feature)
- 🟡 Resource generator (if scope is clear)
- 🟡 Layout/Effects properties
- 🟡 A11y checker
- 🟡 Theme diff viewer
- 🟢 More templates
- Cloud sync
- Collaboration features
- VS Code extension
- Browser extension
- Design system generator
- README.md - Project overview and feature highlights
- docs/FEATURE_FLAGS.md - Feature flag system documentation
- docs/Technical-Problem-Analysis.md - Architectural challenges
- docs/Technical-Problem-Approach.md - Implementation strategy
- src/Editor/Design/compiler/README.md - Compiler architecture
- src/Editor/Templates/README.md - Template system guide