> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twenty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Индикатор выполнения

> Отображайте измеренный или неопределенный прогресс в компактном круговом индикаторе.

## Обзор

`ProgressRing` придает [Progress](https://docs.twenty.com/ru/ui/primitives/feedback/progress.md) круговой вид. Он использует те же контракт пользовательского диапазона, null, форматирования, маркировки, нативного свойства, ref и render, что и корневой компонент. Необязательные дочерние элементы отображают предварительно отформатированное значение рядом с кольцом.

**Light**

[Пример кольцевого индикатора выполнения (light)](https://storybook.twenty.com/iframe.html?id=ui-feedback-progressring-progressring--display\&viewMode=story\&globals=colorScheme:light)

**Dark**

[Пример кольцевого индикатора выполнения (dark)](https://storybook.twenty.com/iframe.html?id=ui-feedback-progressring-progressring--display\&viewMode=story\&globals=colorScheme:dark)

[Open in Storybook](https://storybook.twenty.com/?path=/story/ui-feedback-progressring-progressring--display)

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

Передайте исходное контролируемое значение и доступное имя. Используйте `aria-valuetext`, когда отформатированное значение объясняет прогресс понятнее, чем процент.

```tsx theme={null}
import { ProgressRing } from 'twenty-ui/primitives/feedback';

export const ImportProgress = () => (
  <ProgressRing
    value={600}
    max={1000}
    aria-label="Importing records"
    aria-valuetext="600 of 1,000 records"
  >
    600 / 1,000
  </ProgressRing>
);
```

Используйте `aria-labelledby`, чтобы связать кольцо с существующей видимой меткой, или скомпонуйте `Progress.Label` как дочерний элемент. Предварительно отформатированные дочерние элементы не задают доступное имя кольца автоматически.

## Контролируемый прогресс и диапазоны

Приложение вычисляет `value` и форматирует отображаемое содержимое. Кольцо не получает данные, не продвигает прогресс и не вычисляет квоты. Значение `min` по умолчанию равно `0`, а `max` — `100`. Конечные значения ограничиваются диапазоном для семантических значений и геометрии дуги. Дуга заполняется в соответствии с нормализованным процентом, в том числе когда минимум не равен нулю.

**Light**

[Круговой прогресс в пользовательском диапазоне (light)](https://storybook.twenty.com/iframe.html?id=ui-feedback-progressring-progressring--custom-range\&viewMode=story\&globals=colorScheme:light)

**Dark**

[Круговой прогресс в пользовательском диапазоне (dark)](https://storybook.twenty.com/iframe.html?id=ui-feedback-progressring-progressring--custom-range\&viewMode=story\&globals=colorScheme:dark)

[Open in Storybook](https://storybook.twenty.com/?path=/story/ui-feedback-progressring-progressring--custom-range)

Передайте `value={null}` для неопределенного прогресса. Кольцо не включает `aria-valuenow` и отображает неопределенную дугу. Неконечные значения также остаются неопределенными; они не становятся нулем или завершением. Отображаемое содержимое остается под управлением приложения.

Используйте `locale`, `format` и `getAriaValueText`, как описано в [Progress](https://docs.twenty.com/ru/ui/primitives/feedback/progress.md). Скомпонуйте `Progress.Value`, чтобы отобразить отформатированное значение корневого компонента.

Используйте [ProgressBar](https://docs.twenty.com/ru/ui/primitives/feedback/progress-bar.md) для горизонтального прогресса или [MetricRow](https://docs.twenty.com/ru/ui/components/data-display/metric-row.md) для метки и выровненного значения.

## Внешний вид и композиция

`size="md"` отображает кольцо размером 16px; `size="sm"` отображает кольцо размером 14px. Оба используют обводку 2px и заполняются по часовой стрелке, начиная сверху. `barColor` принимает цвета CSS, включая переменные темы. SVG является декоративным и скрыт от API доступности.

Изменения значения анимируются в течение 300ms. Настройки уменьшения движения отключают переход и вращение при неопределенном состоянии. Нативные атрибуты, `className`, `style` и `ref` применяются к внешнему элементу индикатора выполнения. `className` и `style` могут получать состояние прогресса. `render` может заменить корневой компонент, сохраняя его семантику.

## Свойства

**aria-label** `string`

Accessible name identifying the measured operation.

**aria-labelledby** `string`

ID of the visible label that names the operation.

**aria-valuetext** `string`

Human-readable progress value overriding the default formatted value.

**barColor** `string`

CSS color of the filled arc. Defaults to the blue theme color.

**children** `ReactNode`

Optional preformatted value or Progress parts displayed before the ring.

**className** `string | ((state: ProgressRootState) =\> string | undefined)`

Class applied to the progress root, or a callback receiving its status.

**format** `NumberFormatOptions`

Intl.NumberFormat options for the clamped numeric value. The default displays the normalized percentage.

**getAriaValueText** `((formattedValue: string, value: number | null) =\> string)`

Receives the formatted value and raw value, including null, and returns an accessible value description.

**locale** `LocalesArgument`

Locale or locale list used to format the value. Defaults to the runtime locale.

**max** `number` (default: 100)

Inclusive maximum. Defaults to 100.

**min** `number` (default: 0)

Inclusive minimum. Defaults to 0.

**ref** `Ref\<HTMLDivElement\>`

Ref to the root div, or the element composed through render.

**render** `ReactElement\<unknown, string | JSXElementConstructor\<any\>\> | ComponentRenderFn\<HTMLProps, ProgressRootState\>`

Composes the root with an element or render callback. Forward the supplied props and ref to retain progress semantics.

**size** `"md" | "sm"` (default: md)

Ring diameter: sm (14px) or md (16px). Defaults to md.

**style** `CSSProperties | ((state: ProgressRootState) =\> CSSProperties | undefined)`

Inline styles applied to the progress root, or a callback receiving its status.

**value** `number | null` *required*

Controlled value in the min/max range. Use null for indeterminate progress.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.