feat: Add theme system with 7 themes including Otaku and Pink Pink

- Implement ThemeContext with CSS variables for dynamic theming
- Add theme presets: Cyberpunk, Windows Classic, Dark Modern, Matrix, Industrial, Otaku Mode, Pink Pink
- Add theme selector UI in Footer with color preview
- Theme persists to localStorage
- Each theme has unique background effects, colors, and styling
- Otaku Mode: anime-style dark purple with pink/purple glow and star effects
- Pink Pink: cute pastel pink with heart pattern overlay

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-27 23:34:08 +09:00
parent 86fe466b55
commit a7296be512
6 changed files with 1007 additions and 41 deletions

View File

@@ -8,6 +8,7 @@ import { HistoryPage } from './pages/HistoryPage';
import { SystemState, Recipe, IOPoint, LogEntry, RobotTarget, ConfigItem } from './types';
import { comms } from './communication';
import { AlertProvider, useAlert } from './contexts/AlertContext';
import { ThemeProvider } from './contexts/ThemeContext';
import { PickerMoveDialog } from './components/PickerMoveDialog';
// PickerMoveDialog 전역 상태 Context
@@ -329,11 +330,13 @@ function AppContent() {
);
}
// 외부 App 컴포넌트 - AlertProvider로 감싸기
// 외부 App 컴포넌트 - ThemeProvider + AlertProvider로 감싸기
export default function App() {
return (
<AlertProvider>
<AppContent />
</AlertProvider>
<ThemeProvider>
<AlertProvider>
<AppContent />
</AlertProvider>
</ThemeProvider>
);
}