---
localeCode: en-US
order: 63
category: Feedback
title: Progress
subTitle: Progress
icon: doc-progress
width: 60%
brief: Show the current progress of the operation.
---
## When to use
Display the current progress and state of the operation for the user when the operation takes a long time to complete
## Demos
### How to import
```jsx
import { Progress } from '@douyinfe/semi-ui';
```
### Standard progress bar
Use `stroke` Property to control the filling color of the progress bar
Use `Percent` Property to control completed progress
Use `size` Property control progress bar size
If the preset size is not satisfied, You can pass height to customize the height of the progress bar through `style` property.
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
() => (
)
```
### Show percentage text
You can control whether to show percentage number through the `showInfo` property
In addition, you can format the percentage text show through `format`.
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
() => (
)
```
### Vertical progress bar
You can use vertical progress bar by setting `direction='vertical'`
If preset width is not satisfied, you can pass width to customize the width of the vertical progress bar through `style` property.
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
() => (
)
```
### Circular progress bar
Set type to`circle`, the progress bar will be displayed in a ring shape. The default size of the progress bar is 72 x 72
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
() => (
)
```
You can modify it's `width` to control the size of the circular progress bar.
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
() => (
)
```
### Small circular progress bar
Small progress bar default size is 24 x 24.
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
() => (
)
```
### Dynamic change percent
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons';
() => {
const [percent, setPercent] = useState(40);
return (
<>
)
}
```
### Custom central text content
You can customize the central text by passing `format` function, and the argument of the format is the current percentage
If you don't need central text content, you can set `showInfo` to false or return an empty string directly in `format`
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
() => (
per + 'Days'} style={{ margin:10 }}/>
'Done'} style={{ margin:10 }}/>
)
```
### Round / square edges
With the `strokeLinecap` property, you can control the edge shape of the ring progress bar.
```jsx live=true
import React from 'react';
import { Progress } from '@douyinfe/semi-ui';
() => (
)
```
## API Reference
| PROPERTIES | Instructions | Type | Default |
|--- | --- | --- | --- |
|className | style class name | string | |
|direction | The direction of the bar progress bar `horizontal`, `vertical` | string |'horizontal' |
|format | Formatting function, the input parameter is the current percentage, the result of return will be directly rendered in the center of the circular progress bar | (percent: number) => ReactNode | (percent) => percent +'%' |
|orbitStroke | Progress bar track fill color **provided after v1.0.0** | string |'var(--semi-color-fill-0)' |
|percent | percentage of progress | number | |
|showInfo | Whether to display the middle text in the circular progress bar, and whether to display the text on the right side of the bar-shaped progress bar | boolean | false |
|size | size, optional `default`, `small` (only type=circle is effective), `large` (only type=line is effective) | string |'default' |
|stroke | Fill color of progress bar | string |'var(--semi-color-success)' |
|strokeLinecap | round corner `round`/square corner `square` (only effective in type='circle' mode) | string |'round' |
|strokeWidth | When type is `line`, this property controls the height of the progress bar; when type is `circle`, this property controls the width of the progress bar | number | 4 |
|style | style | CSSProperties | |
|type | type, optional `line`, `circle` | string |'line' |
|width | Width of circular progress bar | number | 72 when size='default', 24 for 'small' |
## Design Tokens