From 3d79a18ea4a3f9c85f1be230d711f7bfe1dc18d5 Mon Sep 17 00:00:00 2001 From: Michael Hunteman Date: Fri, 17 Jan 2025 16:40:48 -0600 Subject: Animate title --- client/.env.development | 1 - client/.env.production | 1 - client/src/components/LettersPullUp.tsx | 36 +++++++++++++++++++++++++++++++++ client/src/components/NavBar.tsx | 3 ++- 4 files changed, 38 insertions(+), 3 deletions(-) delete mode 100644 client/.env.development delete mode 100644 client/.env.production create mode 100644 client/src/components/LettersPullUp.tsx (limited to 'client') 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 ( +
+ {splittedText.map((current, i) => ( + + {current == ' ' ?   : current} + + ))} +
+ ); +} 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 + {isMobile ? : } -- cgit v1.2.3