Skip to content

CdsProgressCircle

New in v4.0

Круговой индикатор прогресса показывает ход операции: загрузку файла, обработку данных, заполнение лимита. Значение задаётся в процентах через model-value, а если ход операции неизвестен — режим indeterminate включает бесконечную анимацию ожидания.

Storybook GitLab
Покрытие тестами: 100% — хорошее покрытие
API в спеках
12 / 12 пропсы, события, слоты и exposed, у которых есть тест
Тест-кейсы
27 юнит · 0 браузерных
Покрытие кода
100% строк · 95.5% ветвей замер v4.0.0-alpha.13
A11y (axe)
14 рекомендаций в 13 историях замер v4.0.0-alpha.11

Для прогресса в виде горизонтальной шкалы возьмите CdsProgressBar, а чтобы затемнить контейнер на время загрузки — CdsOverlay.

Вариации ​

Значение ​

Свойство model-value — текущий прогресс в процентах, от 0 до 100. Изменение значения анимируется плавным переходом дуги.

Sandbox Storybook

Свойство rotate поворачивает начальную точку дуги на указанное число градусов. По умолчанию прогресс растёт от «12 часов» по часовой стрелке.

Sandbox Storybook

Неопределённый прогресс ​

Свойство indeterminate включает бесконечную анимацию — используйте её, когда ход операции неизвестен. Значение disable-shrink оставляет только вращение без пульсации дуги: такая анимация проще и не нагружает основной поток. Она же включается автоматически для пользователей с настройкой prefers-reduced-motion.

Sandbox Storybook

Размеры ​

Свойство size задаёт диаметр: от xs до xl или число в пикселях. Размер по умолчанию — md.

Sandbox Storybook

Контур ​

Свойство width задаёт толщину контура в пикселях независимо от диаметра.

Sandbox Storybook

Свойство rounded скругляет концы дуги.

Sandbox Storybook

Цвета ​

Свойство color красит дугу прогресса, bg-color — фоновое кольцо под ней. Оба принимают токены цвета дизайн-системы.

Sandbox Storybook

Контент ​

Слот default выводит контент в центре кольца и получает текущее значение через слот-проп value — удобно показать процент рядом с дугой.

Sandbox Storybook

Анимация появления ​

Свойство reveal анимирует дугу от нуля до текущего значения при появлении компонента. Длительность настраивается объектом: :reveal="{ duration: 1500 }".

Sandbox Storybook

Рекомендации ​

Сценарии использования ​

Загрузка файла ​

Прогресс загрузки виден в центре кольца через слот default, а по завершении процент сменяется иконкой успеха. Свойство rounded смягчает дугу, color поддерживает позитивный сценарий.

Sandbox Storybook

Заполнение лимита ​

Кольцо показывает не только процесс, но и статичную величину — например, занятое место в хранилище. Вычисляемый color переключает индикатор с зелёного на жёлтый и красный по мере приближения к лимиту.

Sandbox Storybook

Фоновая операция ​

Компактный indeterminate-индикатор размера xs встаёт в строку с текстом и сообщает, что запущенная операция ещё идёт. Подпись рядом объясняет, чего ждать, — без неё вращающееся кольцо ни о чём не говорит.

Sandbox Storybook

API ​

Пропсы

ИмяТипПо умолчаниюОписание
bgColorstring | undefined—Цвет фона загрузчика
colorstring | undefined—Цвет загрузчика
indeterminateboolean | "disable-shrink" | undefined—Постоянно отображается анимация; использовать, если ход загрузки неизвестен. Если задать строку «disable-shrink», будет использоваться более простая анимация, которая не запускается в основном потоке
modelValuestring | number | undefined0Значение в процентах текущего прогресса загрузки
revealboolean | { duration?: number | undefined; } | undefinedfalseАнимирует индикатор от нуля до текущего значения при появлении компонента. Объект { duration } задаёт длительность анимации в миллисекундах
rotatestring | number | undefined0Поворачивает начальную точку окружности на указанное количество градусов
roundedboolean | undefined—Скругляет концы дуги прогресса
sizenumber | "xs" | "sm" | "md" | "lg" | "xl" | undefined'md'Размер компонента
tagstring | JSXComponent<any> | undefined'div'Пользовательский HTML-тег для отображения
themestring | undefined—Тема компонента
widthstring | number | undefined4Задает толщину контура круга в пикселях

Слоты

ИмяТипОписание
default{ value: number; }Слот по умолчанию. Содержит в себе значение процесса индикатора загрузки.