- Add comprehensive application.css with utility classes and component base styles
- Consolidate common layout, spacing, typography, and component patterns
- Reduce CSS duplication by ~600 lines across components
- Implement utility-first approach with semantic component classes
- Update NewPresentationPage.css as demonstration (382→80 lines, 79% reduction)
- Add overlay color variables to theme system for modals
- Fix Modal and ConfirmDialog to use proper theme colors
- Simplify AppHeader component by removing unused dynamic title logic
The new CSS architecture provides:
- Utility classes for layout, spacing, typography, borders
- Base component classes for cards, buttons, forms, modals
- Consistent theming integration with color system
- Mobile-responsive design patterns
- Reduced maintenance overhead and improved consistency
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create comprehensive global color system with semantic variables in src/styles/colors.css
- Replace all hardcoded colors across components with CSS custom properties
- Establish semantic color mappings for consistent theming (--text-primary, --bg-secondary, etc.)
- Add complete color scales for gray, slate, blue, red, green, yellow, purple, pink
- Include dark mode color overrides for automatic theme switching
- Update PresentationEditor.css to use global color variables throughout
- Consolidate SlideThumbnail.css styles and optimize using CSS cascades
- Move SlideThumbnail-specific styles from PresentationEditor.css to component file
- Update all UI button components (Button, ActionButton, BackButton) to use color variables
- Modernize Modal, AlertDialog, and ConfirmDialog components with global colors
- Optimize App.css, index.css, and PresentationsList.css color usage
- Reduce CSS bundle size through consolidation and elimination of duplicate styles
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
## Button Component System
- Create dedicated components/ui/buttons directory with 6 specialized button components:
- Button.tsx: Universal button with variants (primary, secondary, danger, link) and sizes
- ActionButton.tsx: Action buttons matching existing patterns
- BackButton.tsx: Navigation back buttons
- CancelLink.tsx: Cancel/link style buttons
- CloseButton.tsx: Modal/preview close buttons with variants
- NavigationButton.tsx: Presentation navigation buttons
- Update key components to use new button system (SlideEditor, ContentEditor, Modal, AlertDialog, ConfirmDialog)
- Replace inline styled-jsx with proper CSS files for AlertDialog and ConfirmDialog
## Barrel Export Elimination
- Remove all barrel export files violating IMPORT_STANDARDS.md:
- src/themes/index.ts
- src/components/themes/index.ts
- src/components/presentations/index.ts
- src/components/slide-editor/index.ts
- Update 15+ files to use direct imports from themeLoader.ts instead of barrel exports
- Fix function naming conflict in ThemeDetailPage.tsx (loadTheme shadowing)
- Follow project standards: direct imports with .tsx extensions for better Vite performance
## Benefits
- Improved Vite tree shaking and module resolution performance
- Consistent, reusable button system across application
- Adherence to project coding standards and import conventions
- Reduced bundle size through elimination of barrel export overhead
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create ImageUploadField component with file upload and URL input
- Support base64 encoding for local IndexedDB storage
- Add image preview, replacement, and removal functionality
- Update SlideEditor to use ImageUploadField for image slots
- Include file validation (5MB limit, image types only)
- Add responsive design and error handling
- Integrate with existing theme system and slot detection
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
## New Feature: Full Screen Slide Preview
- Add SlidePreviewModal component for full screen slide preview in SlideEditor
- ESC key support and temporary hint for user guidance
- Proper aspect ratio handling with theme CSS inheritance
- Modal follows existing UI patterns for consistency
## Import Standards Compliance (31 files updated)
- Fix all imports to use explicit .tsx/.ts extensions per IMPORT_STANDARDS.md
- Eliminate barrel imports in App.tsx for better Vite tree shaking
- Add direct imports with explicit paths across entire codebase
- Preserve CSS imports and external library imports unchanged
## Code Architecture Improvements
- Add comprehensive CSS & Component Architecture Guidelines to CLAUDE.md
- Document modal patterns, aspect ratio handling, and CSS reuse principles
- Reference all coding standards files for consistent development workflow
- Prevent future CSS overcomplication and component duplication
## Performance Optimizations
- Enable Vite tree shaking with proper import structure
- Improve module resolution speed with explicit extensions
- Optimize build performance through direct imports
## Files Changed
- 31 TypeScript/React files with import fixes
- 2 new SlidePreviewModal files (component + CSS)
- Updated project documentation and coding guidelines
- Fixed aspect ratio CSS patterns across components
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>