--- 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'; () => (



(percent*10) + '‰'}/>
) ``` ### 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 ( <>
) } ``` ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons'; () => { const [cirPerc, setCirPerc] = 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