For AI agents: the complete documentation index is available at https://ifhover.github.io/leaf-ui/v/0.6.0/llms.txt, the full documentation bundle is available at https://ifhover.github.io/leaf-ui/v/0.6.0/llms-full.txt, and this page is available as Markdown at https://ifhover.github.io/leaf-ui/v/0.6.0/components/progress.md.
  • 简体中文
  • Progress 进度条

    展示任务的完成程度。

    交互进度

    45%
    basic.tsx
    import { Button, Flex, Progress, Space } from '@ifhover/leaf-ui';
    
    import { useState } from 'react';
    
    export function ProgressBasic() {
      const [percent, setPercent] = useState(45);
      return (
        <Space direction="vertical" align="stretch">
          <Progress percent={percent} aria-label="上传进度" />
          <Flex gap="md" align="center" wrap justify="center">
            <Button
              variant="outline"
              disabled={percent === 0}
              onClick={() => setPercent(Math.max(0, percent - 10))}
            >
              减少
            </Button>
            <Button disabled={percent === 100} onClick={() => setPercent(Math.min(100, percent + 10))}>
              增加
            </Button>
          </Flex>
        </Space>
      );
    }
    

    进度状态

    静态进度
    45%
    任务失败
    任务完成
    进度暂时无法估计
    states.tsx
    import { Flex, Progress, Space, Text } from '@ifhover/leaf-ui';
    
    export function ProgressStates() {
      return (
        <Space direction="vertical" align="stretch">
          <Flex direction="column" gap="sm">
            <Text>静态进度</Text>
            <Progress percent={45} active={false} />
          </Flex>
          <Flex direction="column" gap="sm">
            <Text>任务失败</Text>
            <Progress percent={70} status="error" />
          </Flex>
          <Flex direction="column" gap="sm">
            <Text>任务完成</Text>
            <Progress percent={100} />
          </Flex>
          <Flex direction="column" gap="sm">
            <Text>进度暂时无法估计</Text>
            <Progress indeterminate />
          </Flex>
        </Space>
      );
    }
    

    圆形进度

    进行中
    45%
    已完成
    失败
    circles.tsx
    import { Flex, Progress, Text } from '@ifhover/leaf-ui';
    
    export function ProgressCircles() {
      return (
        <Flex gap="md" align="center" wrap justify="center">
          <Flex direction="column" gap="sm" align="start">
            <Text>进行中</Text>
            <Progress percent={45} type="circle" size={80} />
          </Flex>
          <Flex direction="column" gap="sm" align="start">
            <Text>已完成</Text>
            <Progress percent={100} type="circle" size={80} />
          </Flex>
          <Flex direction="column" gap="sm" align="start">
            <Text>失败</Text>
            <Progress percent={60} type="circle" status="error" size={80} />
          </Flex>
        </Flex>
      );
    }
    

    分段与仪表盘

    分段任务
    75%
    分步进度
    60%
    仪表盘
    65%
    capabilities.tsx
    import { Flex, Progress, Space, Text } from '@ifhover/leaf-ui';
    
    export function Capabilities() {
      return (
        <Space direction="vertical" align="stretch">
          <Flex direction="column" gap="sm" align="center">
            <Text>{'分段任务'}</Text>
            <Progress
              percent={75}
              segments={[
                { key: 'a', percent: 35, color: '#20834a' },
                { key: 'b', percent: 40, color: '#1677ff' },
              ]}
            />
          </Flex>
          <Flex direction="column" gap="sm" align="center">
            <Text>{'分步进度'}</Text>
            <Progress percent={60} steps={10} />
          </Flex>
          <Flex direction="column" gap="sm" align="center">
            <Text>{'仪表盘'}</Text>
            <Progress type="circle" dashboard percent={65} successPercent={30} />
          </Flex>
        </Space>
      );
    }
    

    未完成的线形进度默认在已填充部分展示流光。设置 active={false} 可展示静态进度;完成、错误、不确定进度和分步进度不展示流光。动效遵循系统与 ConfigProvider 的偏好。

    Progress API

    属性类型默认值说明
    percentnumber0完成百分比,范围 0–100
    type'line' | 'circle''line'直线或圆形进度
    status'normal' | 'success' | 'error''normal'进度状态
    showInfobooleantrue展示百分比或状态图标
    format(percent: number) => ReactNode—自定义进度文字
    strokeWidthnumber—进度线宽;直线为像素,圆形为视图单位
    colorstring—自定义进度颜色
    sizenumber100圆形宽高,单位像素
    indeterminatebooleanfalse总进度未知时展示加载动画,不显示百分比
    activebooleantrue未完成的线形进度默认显示流光;设为 false 关闭,完成、错误或不确定进度时自动停止。
    trailColorstring—底轨颜色
    segmentsreadonly ProgressSegment[]—按比例和颜色显示多个分段。
    stepsnumber—离散的进度段数。
    dashboardbooleanfalse显示仪表盘式进度。
    successPercentnumber—已经成功完成的进度部分。

    类型

    定义组件属性或组装列表时可导入相关类型。

    import type { ProgressProps } from '@ifhover/leaf-ui';

    使用说明

    达到 100% 时自动使用成功状态。aria-label 可描述具体任务,如“上传进度”;进度本身也会提供给辅助技术。

    ProgressSegment

    属性类型默认值说明
    keystring—稳定且唯一的标识。
    percentnumber0必需。完成百分比。
    colorstring—颜色或语义色。