# @cloud-ru/ds-loader
> Индикаторы загрузки — Spinner (круговой прогресс) и Sun (лучевой индикатор).
Docs: /snack-v2/components/loader/
## Установка
```sh
pnpm add @cloud-ru/ds-loader
```
## Когда использовать
- **Spinner** — когда нужно показать неопределённый прогресс (загрузка данных, фоновая операция). Отдельный индикатор в центре области контента, inline рядом с текстом или внутри кнопки/контрола.
- **Sun** — когда индикатор встраивается в интерактивный элемент: `loading`-состояние кнопки, переключателя, input'а. Имеет фиксированную иконку-подобную форму без «вращения края», что читается спокойнее внутри плотных контролов.
Когда **не** нужен `Loader`: для детерминированного прогресса (скачивание файла, заполнение формы) используйте прогресс-бар. Для skeleton-состояний списка или карточки — скелетоны.
## API
### Spinner
| Prop | Type | Default | Required | Description |
|------|------|---------|----------|-------------|
| `className` | `string` | — | no | CSS-класс |
| `data-test-id` | `string` | — | no | |
| `size` | `2xs \| l \| m \| s \| xs` | `s` | no | Размер |
#### Related types
- `LoaderSize` = `2xs | l | m | s | xs`
### Sun
| Prop | Type | Default | Required | Description |
|------|------|---------|----------|-------------|
| `className` | `string` | — | no | CSS-класс |
| `data-test-id` | `string` | — | no | |
| `size` | `l \| m \| s \| xs` | `s` | no | Размер |
#### Related types
- `SunSize` = `l | m | s | xs`
## Примеры
### SpinnerDefault
```tsx
import { Spinner } from '@cloud-ru/ds-loader';
export function SpinnerDefault() {
return ;
}
```
### SpinnerLarge
```tsx
import { Spinner } from '@cloud-ru/ds-loader';
export function SpinnerLarge() {
return ;
}
```
### SunMedium
```tsx
import { Sun } from '@cloud-ru/ds-loader';
export function SunMedium() {
return ;
}
```