Docs

Menu list

Animation for menu list

Installation

Install dependencies

npm install lucide-react

Run the following command

It will create a new file called menu-animation.tsx inside the components/animata/list directory.

mkdir -p components/animata/list && touch components/animata/list/menu-animation.tsx

Paste the code

Open the newly created file and paste the following code:

import { ArrowRight } from "lucide-react";
 
interface MenuAnimationProps {
  menuItems: string[];
}
 
export default function MenuAnimation({ menuItems }: MenuAnimationProps) {
  return (
    <div className="flex min-w-fit flex-col gap-2 overflow-hidden px-10">
      {menuItems.map((item, index) => (
        <div key={index} className="group flex items-center gap-2">
          <ArrowRight className="size-5 -translate-x-full text-black opacity-0 transition-all duration-300 ease-out hover:z-20 group-hover:translate-x-0 group-hover:text-blue-500 group-hover:opacity-100 md:size-10" />
 
          <h1 className="z-10 -translate-x-6 cursor-pointer font-mono font-semibold text-black transition-transform duration-300 ease-out group-hover:translate-x-0 group-hover:text-blue-500 dark:text-white md:-translate-x-12 md:text-4xl md:group-hover:translate-x-0">
            {item}
          </h1>
        </div>
      ))}
    </div>
  );
}

Credits

Built by Sumin Gurung