ATlast — you'll never need to find your favorites on another platform again. Find your favs in the ATmosphere.
atproto
1import { Sun, Moon, Pause, Play } from "lucide-react";
2
3interface ThemeControlsProps {
4 isDark: boolean;
5 reducedMotion: boolean;
6 onToggleTheme: () => void;
7 onToggleMotion: () => void;
8}
9
10export default function ThemeControls({
11 isDark,
12 reducedMotion,
13 onToggleTheme,
14 onToggleMotion,
15}: ThemeControlsProps) {
16 return (
17 <div className="flex items-center space-x-2">
18 <button
19 onClick={onToggleMotion}
20 className="p-2 bg-white/90 dark:bg-slate-800/90 backdrop-blur-sm rounded-lg border border-slate-200 dark:border-slate-700 hover:bg-white dark:hover:bg-slate-700 transition-colors shadow-lg"
21 aria-label={reducedMotion ? "Enable animations" : "Reduce motion"}
22 title={reducedMotion ? "Enable animations" : "Reduce motion"}
23 >
24 {reducedMotion ? (
25 <Play className="w-5 h-5 text-slate-700 dark:text-slate-300" />
26 ) : (
27 <Pause className="w-5 h-5 text-slate-700 dark:text-slate-300" />
28 )}
29 </button>
30 <button
31 onClick={onToggleTheme}
32 className="p-2 bg-white/90 dark:bg-slate-800/90 backdrop-blur-sm rounded-lg border border-slate-200 dark:border-slate-700 hover:bg-white dark:hover:bg-slate-700 transition-colors shadow-lg"
33 aria-label={isDark ? "Switch to light mode" : "Switch to dark mode"}
34 >
35 {isDark ? (
36 <Sun className="w-5 h-5 text-firefly-amber" />
37 ) : (
38 <Moon className="w-5 h-5 text-slate-700" />
39 )}
40 </button>
41 </div>
42 );
43}