diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/.env.development | 1 | ||||
-rw-r--r-- | client/.env.production | 1 | ||||
-rw-r--r-- | client/src/components/LettersPullUp.tsx | 36 | ||||
-rw-r--r-- | client/src/components/NavBar.tsx | 3 |
4 files changed, 38 insertions, 3 deletions
diff --git a/client/.env.development b/client/.env.development deleted file mode 100644 index 71597a0..0000000 --- a/client/.env.development +++ /dev/null @@ -1 +0,0 @@ -VITE_BASE_URL=http://192.168.1.25:8080/api/ diff --git a/client/.env.production b/client/.env.production deleted file mode 100644 index a873abb..0000000 --- a/client/.env.production +++ /dev/null @@ -1 +0,0 @@ -VITE_BASE_URL=https://wedding.huntm.net/api/ diff --git a/client/src/components/LettersPullUp.tsx b/client/src/components/LettersPullUp.tsx new file mode 100644 index 0000000..0584b5a --- /dev/null +++ b/client/src/components/LettersPullUp.tsx @@ -0,0 +1,36 @@ +import { motion, useInView } from 'framer-motion'; +import * as React from 'react'; + +export function LettersPullUp({ text }: { text: string }) { + const splittedText = text.split(''); + + const pullupVariant = { + initial: { y: 10, opacity: 0 }, + animate: (i: number) => ({ + y: 0, + opacity: 1, + transition: { + delay: i * 0.05, + }, + }), + }; + const ref = React.useRef(null); + const isInView = useInView(ref, { once: true }); + return ( + <div> + {splittedText.map((current, i) => ( + <motion.div + key={i} + ref={ref} + variants={pullupVariant} + initial="initial" + animate={isInView ? 'animate' : ''} + custom={i} + style={{ display: 'inline-block' }} + > + {current == ' ' ? <span> </span> : current} + </motion.div> + ))} + </div> + ); +} diff --git a/client/src/components/NavBar.tsx b/client/src/components/NavBar.tsx index 5b22e27..af95d2b 100644 --- a/client/src/components/NavBar.tsx +++ b/client/src/components/NavBar.tsx @@ -4,6 +4,7 @@ import { AppBar, Toolbar, Typography } from '@mui/material'; import useMediaQuery from '@mui/material/useMediaQuery'; import Desktop from './Desktop'; import Mobile from './Mobile'; +import { LettersPullUp } from './LettersPullUp'; function NavBar() { const isMobile = useMediaQuery('(max-width: 768px)'); @@ -18,7 +19,7 @@ function NavBar() { color="inherit" sx={{ textDecoration: 'none' }} > - Madison & Michael + <LettersPullUp text="Madison & Michael" /> </Typography> {isMobile ? <Mobile /> : <Desktop />} </Toolbar> |