From 7810d212259cfe19befafab33d51110126089a83 Mon Sep 17 00:00:00 2001 From: MAZE Date: Mon, 30 Oct 2023 19:38:40 +0330 Subject: [PATCH] style: add text animation --- src/components/tooltip/tooltip.tsx | 33 ++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/components/tooltip/tooltip.tsx b/src/components/tooltip/tooltip.tsx index 74b2c4c..56e743a 100644 --- a/src/components/tooltip/tooltip.tsx +++ b/src/components/tooltip/tooltip.tsx @@ -14,11 +14,13 @@ import { } from '@floating-ui/react'; import { motion, AnimatePresence } from 'framer-motion'; +import { slideX, slideY, mix, fade } from '@/lib/motion'; + import styles from './tooltip.module.css'; interface TooltipProps { children: JSX.Element; - content: React.ReactNode; + content: string; hideDelay?: number; placement?: Placement; showDelay?: number; @@ -62,21 +64,19 @@ export function Tooltip({ role, ]); - const translate = { - bottom: { translateY: -5 }, - left: { translateX: 5 }, - right: { translateX: -5 }, - top: { translateY: 5 }, + const slide = { + bottom: slideY(-5), + left: slideX(5), + right: slideX(-5), + top: slideY(5), }[ computedPlacement.includes('-') ? computedPlacement.split('-')[0] : computedPlacement ]; - const variants = { - hidden: { opacity: 0, ...translate }, - show: { opacity: 1, translateX: 0, translateY: 0 }, - }; + const variants = mix(fade(), slide!); + const textVariants = fade(); return ( <> @@ -98,7 +98,18 @@ export function Tooltip({ initial="hidden" variants={variants} > - {content} + + + {content} + + )}