Leave a star on GitHub! ⭐


Docs
Word Pull Up

Word Pull Up

Text animation where entire words pull up into view.

WordPullUp

Installation

pnpm add clsx framer-motion

Copy and paste the following code into your project.

components/eldoraui/wordpullup.tsx

"use client";
import clsx from "clsx";
import { motion } from "framer-motion";
 
interface WordPullUpProps {
  text?: string;
  className?: string;
}
 
export const WordPullUp: React.FC<WordPullUpProps> = ({
  text = "",
  className = "",
}) => {
  const container = {
    hidden: { opacity: 0 },
    show: {
      opacity: 1,
      transition: {
        staggerChildren: 0.2,
      },
    },
  };
 
  const item = {
    hidden: { y: 20, opacity: 0 },
    show: { y: 0, opacity: 1 },
  };
 
  return (
    <motion.h1
      variants={container}
      initial="hidden"
      animate="show"
      className={clsx(
        "text-center font-display font-bold drop-shadow-sm",
        "text-4xl md:text-5xl lg:text-6xl xl:text-7xl",
        "tracking-[-0.02em]",
        "md:leading-[4rem] lg:leading-[4.5rem] xl:leading-[5rem]",
        className,
      )}
    >
      {text.split(" ").map((word, i) => (
        <motion.span
          key={i}
          variants={item}
          style={{ display: "inline-block", paddingRight: "15px" }}
        >
          {word === "" ? <span>&nbsp;</span> : word}
        </motion.span>
      ))}
    </motion.h1>
  );
};

Update the import paths to match your project setup.

Props

Prop NameTypeDefaultDescription
textstring""The text content to be displayed inside the motion.h1.
classNamestring""Additional CSS classes to apply to the component for custom styling.