blob: de16397559f1890b3561c3ba6c8044c3a6b3e10e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import { AnimatePresence, motion } from 'framer-motion'
import { IconButton, useColorMode, useColorModeValue } from '@chakra-ui/react'
import { BsFillSunFill, BsMoonFill } from "react-icons/bs";
const ThemeToggleButton = () => {
const { toggleColorMode } = useColorMode()
return (
<AnimatePresence exitBeforeEnter initial={false}>
<motion.div
style={{ display: 'inline-block' }}
key={useColorModeValue('light', 'dark')}
initial={{ y: -20, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
exit={{ y: 20, opacity: 0 }}
transition={{ duration: 0.2 }}
>
<IconButton
aria-label="Toggle theme"
colorScheme={useColorModeValue('purple', 'orange')}
icon={useColorModeValue(<BsMoonFill />, <BsFillSunFill />)}
onClick={toggleColorMode}
></IconButton>
</motion.div>
</AnimatePresence>
)
}
export default ThemeToggleButton
|