|
1 | | -import React, { useState, useCallback } from 'react'; |
| 1 | +import React, { useState, useCallback, useEffect } from 'react'; |
2 | 2 | import { Sun, Moon } from 'lucide-react'; |
3 | 3 |
|
4 | 4 | // eslint-disable-next-line @typescript-eslint/no-explicit-any |
5 | 5 | export const ModeDecorator = (Story: any) => { |
6 | | - const [isDarkMode, setIsDarkMode] = useState(false); |
| 6 | + const [isDarkMode, setIsDarkMode] = useState(true); // Start with dark mode |
7 | 7 |
|
8 | 8 | const toggleMode = useCallback(() => { |
9 | 9 | setIsDarkMode(!isDarkMode); |
10 | 10 | document.documentElement.classList.toggle('dark', !isDarkMode); |
11 | 11 | }, [isDarkMode]); |
12 | 12 |
|
| 13 | + // Initialize dark mode on mount |
| 14 | + useEffect(() => { |
| 15 | + document.documentElement.classList.add('dark'); |
| 16 | + }, []); |
| 17 | + |
13 | 18 | return ( |
14 | 19 | <div className={isDarkMode ? 'dark' : ''}> |
15 | 20 | <button |
16 | 21 | onClick={toggleMode} |
17 | | - className="fixed top-4 right-4 z-50 p-2 rounded-full |
18 | | - bg-background border border-border shadow-lg |
19 | | - hover:scale-105 transition-transform" |
| 22 | + className="fixed top-4 right-4 z-50 p-2 rounded-2xl |
| 23 | + bg-gray-800 border border-gray-600 shadow-lg |
| 24 | + hover:scale-105 transition-transform cursor-pointer" |
20 | 25 | aria-label="Toggle dark mode" |
| 26 | + style={{ |
| 27 | + backgroundColor: isDarkMode ? '#1f2937' : '#ffffff', |
| 28 | + borderColor: isDarkMode ? '#4b5563' : '#d1d5db', |
| 29 | + color: isDarkMode ? '#ffffff' : '#000000', |
| 30 | + }} |
21 | 31 | > |
22 | 32 | {isDarkMode ? ( |
23 | | - <Sun className="size-5 text-foreground" /> |
| 33 | + <Sun className="size-2" style={{ color: '#ffffff' }} /> |
24 | 34 | ) : ( |
25 | | - <Moon className="size-5 text-foreground" /> |
| 35 | + <Moon className="size-2" style={{ color: '#000000' }} /> |
26 | 36 | )} |
27 | 37 | </button> |
28 | | - <div className="bg-background text-foreground min-h-screen p-8"> |
| 38 | + <div |
| 39 | + className="min-h-screen" |
| 40 | + style={{ |
| 41 | + backgroundColor: isDarkMode ? '#0b0c0e' : '#ffffff', |
| 42 | + color: isDarkMode ? '#ffffff' : '#000000', |
| 43 | + fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, sans-serif', |
| 44 | + lineHeight: '1.6', |
| 45 | + padding: '2rem', |
| 46 | + }} |
| 47 | + > |
29 | 48 | <Story /> |
30 | 49 | </div> |
31 | 50 | </div> |
|
0 commit comments