Компоненты/Анимированные иконки наведения

Анимированные иконки наведения

29 сентября 2026

Три иконки с микроанимацией: стрелка дорисовывает хвост при наведении, меню превращается в крестик, а динамик качается и перечёркивается по нажатию.

Установка

npm install clsx lucide-react motion tailwind-merge
pnpm add clsx lucide-react motion tailwind-merge
yarn add clsx lucide-react motion tailwind-merge
bun add clsx lucide-react motion tailwind-merge

Файлы

animated-icons-hover.tsx
НазадЖивой чипДалееАнимированные иконки-переключатели

Три маленькие иконки с живой реакцией. Шеврон при наведении сдвигается вправо и дорисовывает себе хвост, превращаясь в стрелку. Три полоски меню по нажатию сходятся в крестик, а средняя гаснет.

Динамик по нажатию качается и перечёркивается косой линией, а повторное нажатие убирает черту. Иконки растягиваются на размер родителя и берут текущий цвет текста.

Вручную

Скопируйте эти файлы в components/animated-icons-hover/:

Общие помощники положите в lib/ проекта:

Проверьте алиас путей. Импорты в коде выше записаны как @/components/... и @/lib/.... Нужен алиас "@/*" на папку, где лежат components/ и lib/, в tsconfig.json — или поправьте импорты под свои пути.

Использование

import { ArrowRightIcon, MenuCloseIcon } from "@/components/animated-icons-hover/animated-icons-hover";

export function Nav() {
return (
  <div className="flex gap-2">
    <button className="size-10 rounded-lg bg-muted">
      <MenuCloseIcon />
    </button>
    <a className="size-10 rounded-lg bg-muted">
      <ArrowRightIcon />
    </a>
  </div>
);
}

Пропсы

Пропс
Описание
className?

Классы иконки (есть у ArrowRightIcon, MenuCloseIcon и VolumeIcon)

Тип string