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/src/components/LettersPullUp.tsx | 36 +++++++++++++++++++++++++++++++++ client/src/components/NavBar.tsx | 3 ++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 client/src/components/LettersPullUp.tsx (limited to 'client/src/components') 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