# @cloud-ru/ds-ai-shimmer > Анимированный shimmer-блок для AI-сценариев с типографикой как в `@cloud-ru/ds-typography`. Docs: /snack-v2/components/ai-shimmer/ ## Установка ```sh pnpm add @cloud-ru/ds-ai-shimmer ``` ## Когда использовать - При загрузке AI-ответа, где нужен акцентный движущийся shimmer по тексту. - В placeholder-сценариях, когда обычного `Skeleton` визуально недостаточно. ### Когда не нужен - Для нейтральной индикации загрузки без текста — используйте `@cloud-ru/ds-skeleton`. - Для спиннера поверх модального окна — используйте `@cloud-ru/ds-loader`. ## API ### AiShimmer | Prop | Type | Default | Required | Description | |------|------|---------|----------|-------------| | `className` | `string` | — | no | Дополнительный класс корневого контейнера. | | `data-test-id` | `string` | `ai-shimmer` | no | | | `iconMask` | `string` | — | no | Силуэт ведущей иконки как CSS `mask-image` (обычно `url("data:image/svg+xml,…")`). Если задан — перед текстом рисуется иконка, залитая тем же бегущим градиентом, что и текст: блеск проходит сплошной полосой «иконка → конец строки», как будто иконка — часть текста. Иконка не несёт собственного цвета, она наследует shimmer-покрытие (приглушённая база + блик). | | `iconSize` | `number` | `16` | no | Размер ведущей иконки в px (квадрат). Действует только с `iconMask`. По умолчанию `16`. | | `size` | `l \| m \| s` | `SIZE.m` | no | Размер типографики (`s`, `m`, `l`), как в `@cloud-ru/ds-typography`. Задаёт `data-size` и шкалу шрифта для текста shimmer. | | `text` | `string` | — | yes | Текст, по которому рендерится shimmer. Поддерживает переносы строк через `\n`. | | `variant` | `body \| display \| headline \| label \| title` | `VARIANT.body` | no | Вариант типографики, как в `@cloud-ru/ds-typography`. Задаёт `data-variant` и шкалу шрифта. | | `weight` | `mono \| regular \| thin` | `WEIGHT.regular` | no | Начертание шрифта, как в `@cloud-ru/ds-typography`. Задаёт `data-weight`. | #### Related types - `AiShimmerSize` = `l | m | s` - `AiShimmerVariant` = `body | display | headline | label | title` - `AiShimmerWeight` = `mono | regular | thin` ## Примеры ### Basic ```tsx import { AiShimmer } from '@cloud-ru/ds-ai-shimmer'; export function Basic() { return ; } ``` ### CustomSize ```tsx import { AiShimmer, SIZE } from '@cloud-ru/ds-ai-shimmer'; export function CustomSize() { return (
); } ``` ### Multiline ```tsx import { AiShimmer } from '@cloud-ru/ds-ai-shimmer'; export function Multiline() { return ; } ```