Компоненты/Карусель Dia

Карусель Dia

29 сентября 2026

Автоматическая карусель в духе браузера Dia: полоски-индикаторы заполняются по таймеру, а слайды уезжают в сторону с размытием.

Установка

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

Файлы

dia-carousel.tsx
НазадШторка с упорамиДалееЦифровые часы

Карусель сама листает слайды по таймеру. Активный индикатор вытягивается в полоску и постепенно заполняется, а когда заполнится, текущий слайд уезжает в сторону с размытием и на его место проявляется следующий.

Стрелки по бокам и точки-индикаторы позволяют переключить слайд вручную — таймер при этом начинается заново, а направление ухода слайда зависит от того, листаете вы вперёд или назад.

Вручную

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

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

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

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

import { DiaCarousel } from "@/components/dia-carousel/dia-carousel";

const items = [
{ src: "/photos/1.webp", label: "Первый слайд" },
{ src: "/photos/2.webp", label: "Второй слайд" },
];

export function Showcase() {
return <DiaCarousel items={items} title="Новый релиз" tickMs={80} />;
}

Пропсы

Пропс
Описание
items

Слайды: src и label (альтернативный текст)

Тип DiaCarouselItem[]

title?

Заголовок

Тип string·По умолчанию "UI для будущего"

subtitle?

Подзаголовок

Тип string·По умолчанию "Коллекция необычных UI-компонентов"

caption?

Подпись над слайдом

Тип string·По умолчанию "Доступно в Astra CLI 3.0"

tickMs?

Шаг таймера, мс; слайд показывается 100 шагов

Тип number·По умолчанию 50

imageHeight?

Высота слайда, px

Тип number·По умолчанию 550

imageWidth?

Максимальная ширина слайда, px

Тип number·По умолчанию 768

className?

Классы корневого блока

Тип string