# @cloud-ru/ds-icons > Наборы интерфейсных иконок React и компонент Sprite для SVG-спрайтов. Docs: /snack-v2/components/icons/ ## Установка ```sh pnpm add @cloud-ru/ds-icons ``` ## API ### Sprite | Prop | Type | Default | Required | Description | |------|------|---------|----------|-------------| | `content` | `string` | — | yes | | | `data-test-id` | `string` | — | no | | ### SpriteFromUrl | Prop | Type | Default | Required | Description | |------|------|---------|----------|-------------| | `data-test-id` | `string` | — | no | | | `src` | `string` | — | yes | URL файла спрайта (обычно из manifest.json, созданного npx @cloud-ru/ds-icons copy-sprites) | ### SpriteIcon | Prop | Type | Default | Required | Description | |------|------|---------|----------|-------------| | `data-test-id` | `string` | — | no | | | `fallback` | `ReactNode` | — | no | Что рендерить внутри , пока символа нет в DOM (спрайт не смонтирован или id неизвестен) | | `size` | `number` | — | no | Размер иконки в px (по умолчанию 24) | | `symbolId` | `string` | — | yes | id символа спрайта, на который ссылается ; каталог валидных id — SPRITE_SYMBOL_IDS / sprite.symbols.json | | `testId` | `string` | — | no | Суффикс data-test-id (итоговый атрибут — icon${testId}); переопределяется явным data-test-id | ## Примеры ### Color ```tsx import { TrashSVG } from '@cloud-ru/ds-icons/interface/system'; import styles from './Color.module.scss'; export function Color() { return (
); } ``` ### CustomThemedIcon ```tsx import { createThemedIcon } from '@cloud-ru/ds-icons'; // Свой логотип в двух исполнениях. createThemedIcon собирает из них компонент, // который сам выбирает вариант по активной теме DS и ведёт себя как штатная иконка // (проп size, сохранение соотношения сторон, data-test-id). const AcmeLogo = createThemedIcon({ testId: 'acme-logo', light: { nativeWidth: 24, nativeHeight: 24, children: ( <> ), }, dark: { nativeWidth: 24, nativeHeight: 24, children: ( <> ), }, }); export function CustomThemedIcon() { return ; } ``` ### Flag ```tsx import { RussiaSVG } from '@cloud-ru/ds-icons/flags'; export function Flag() { return ; } ``` ### Sizes ```tsx import { CheckSVG, PlusSVG, SearchSVG, TrashSVG } from '@cloud-ru/ds-icons/interface/system'; export function Sizes() { return (
); } ``` ### ThemedLogo ```tsx import { CloudLogo } from '@cloud-ru/ds-icons/logos'; // Логотип сам переключает Light/Dark исполнение по активной теме DS — // отдельного пропа не требуется, достаточно быть внутри провайдера темы. export function ThemedLogo() { return ; } ```