Pular para o conteúdo

Radial Progress

Indicador de progresso circular com aparência customizável.

import { RadialProgress } from 'asterui'

Básico

Progresso radial simples com valor.

70%
import { RadialProgress } from 'asterui'

function App() {
  return (
      <RadialProgress value={70} />
    )
}

export default App

Diferentes Valores

Progresso radial com várias porcentagens de conclusão.

0%
25%
50%
75%
100%
import { RadialProgress } from 'asterui'

function App() {
  return (
      <div className="flex gap-4 flex-wrap">
        <RadialProgress value={0} />
        <RadialProgress value={25} />
        <RadialProgress value={50} />
        <RadialProgress value={75} />
        <RadialProgress value={100} />
      </div>
    )
}

export default App

Cores

Progresso radial com diferentes cores.

70%
70%
70%
70%
70%
70%
70%
import { RadialProgress } from 'asterui'

function App() {
  return (
      <div className="flex gap-4 flex-wrap">
        <RadialProgress value={70} color="primary" />
        <RadialProgress value={70} color="secondary" />
        <RadialProgress value={70} color="accent" />
        <RadialProgress value={70} color="success" />
        <RadialProgress value={70} color="warning" />
        <RadialProgress value={70} color="error" />
        <RadialProgress value={70} color="info" />
      </div>
    )
}

export default App

Tamanho Customizado

Ajusta tamanho usando a prop size.

70%
70%
70%
70%
import { RadialProgress } from 'asterui'

function App() {
  return (
      <div className="flex gap-4 items-center flex-wrap">
        <RadialProgress value={70} size={3} />
        <RadialProgress value={70} size={5} />
        <RadialProgress value={70} size={8} />
        <RadialProgress value={70} size={12} />
      </div>
    )
}

export default App

Espessura Customizada

Ajusta espessura do anel.

70%
70%
70%
70%
import { RadialProgress } from 'asterui'

function App() {
  return (
      <div className="flex gap-4 flex-wrap">
        <RadialProgress value={70} thickness={2} />
        <RadialProgress value={70} thickness={5} />
        <RadialProgress value={70} thickness={10} />
        <RadialProgress value={70} thickness={20} />
      </div>
    )
}

export default App

Conteúdo Customizado

Exibe conteúdo customizado em vez de porcentagem.

85/100
60
days
import { RadialProgress } from 'asterui'
import { CheckIcon } from '@aster-ui/icons'

function App() {
  return (
      <div className="flex gap-4 flex-wrap">
        <RadialProgress value={85}>
          <div className="text-xs">85/100</div>
        </RadialProgress>
        <RadialProgress value={60}>
          <div className="flex flex-col items-center">
            <div className="text-2xl font-bold">60</div>
            <div className="text-xs">days</div>
          </div>
        </RadialProgress>
        <RadialProgress value={100} color="success">
          <CheckIcon size={32} />
        </RadialProgress>
      </div>
    )
}

export default App

Sem Exibição de Valor

Oculta o texto de porcentagem.

import { RadialProgress } from 'asterui'

function App() {
  return (
      <div className="flex gap-4 flex-wrap">
        <RadialProgress value={30} showValue={false} />
        <RadialProgress value={60} showValue={false} color="primary" />
        <RadialProgress value={90} showValue={false} color="success" />
      </div>
    )
}

export default App

Com Fundo

Adiciona estilo de fundo e borda.

70%
50%
90%
import { RadialProgress } from 'asterui'

function App() {
  return (
      <div className="flex gap-4 flex-wrap">
        <RadialProgress
          value={70}
          color="primary"
          className="bg-primary text-primary-content border-4 border-primary"
        />
        <RadialProgress
          value={50}
          color="secondary"
          className="bg-secondary text-secondary-content border-4 border-secondary"
        />
        <RadialProgress
          value={90}
          color="accent"
          className="bg-accent text-accent-content border-4 border-accent"
        />
      </div>
    )
}

export default App
PropriedadeDescriçãoTipoPadrão
valueValor de progresso (0-100)number-
sizeTamanho em unidades rem ou string CSSstring | number5rem
thicknessEspessura do anel em pixels ou string CSSstring | number10% do tamanho
colorCor do progresso'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info' | 'neutral'-
showValueMostrar texto de porcentagembooleantrue
childrenConteúdo customizado para exibirReact.ReactNode-
classNameClasses CSS adicionaisstring-
data-testidID de teste para testesstring-
  • Usa role="progressbar" com atributos ARIA apropriados
  • Valor é anunciado como porcentagem aos leitores de tela
  • Conteúdo customizado pode incluir rótulos acessíveis adicionais