Skip to content

Progress & Spinner

Indicadores de progresso e carregamento do sistema HalfByte — sempre retangulares, sempre com valor numérico.

Progress

Barra de progresso linear, determinada ou indeterminada.

vue
<script setup lang="ts">
import { Progress } from '@halfbyte/maka'
</script>

<template>
  <Progress :value="65" label="Upload" />
</template>

Exemplos

vue
<Progress :value="30" label="30%" />
<Progress :value="65" label="Com valor" />
<!-- Indeterminado: omitir value -->
<Progress label="Carregando…" />
<Progress :value="80" size="sm" label="Small" />
<Progress :value="80" size="lg" label="Large" />

Estados e cores

vue
<Progress :value="45" label="Default" />
<Progress :value="62" label="Uploading" :striped="true" />
<Progress :value="100" label="Concluído" tone="success" />
<Progress :value="34" tone="error" :caption="{ left: 'erro', right: 'tentar novamente' }" />
<Progress :value="71" color="black" />

Props

PropTipoPadrão
valuenumber
minnumber0
maxnumber100
indeterminatebooleanfalse
size"sm" | "md" | "lg""md"
color"blue" | "black" | "lime""blue"
tone"default" | "success" | "warn" | "error""default"
stripedbooleanfalse
labelstring
showValuebooleantrue
caption{ left?: string; right?: string }
formatValue(v: number, max: number) => string
disabledbooleanfalse

value omitido ou indeterminate: true → barra no modo indeterminado. value === maxtone="success" aplicado automaticamente. Não remova o componente imediatamente — mostre 100% por ~1s antes.


Spinner

Indicador de carregamento — três blocos quadrados pulsando em sequência. Sem círculos.

vue
<script setup lang="ts">
import { Spinner } from '@halfbyte/maka'
</script>

<template>
  <Spinner size="md" label="Carregando dados…" />
</template>

Tamanhos

vue
<Spinner size="sm" />
<Spinner size="md" />
<Spinner size="lg" />

Props

PropTipoPadrão
size"xs" | "sm" | "md" | "lg" | "xl""md"
labelstring"Carregando…"