Ir para o conteúdo principal
WBC - GovBR-DS
Copiar página como Markdown para IA

Loading

Componente estável e recomendada para novos projetos.
Anatomia, uso, comportamento visual e recomendações conceituais são mantidos pelo Padrão Digital de Governo. Esta página documenta a implementação Web Components e sua API executável.

Visão Geral

Para a documentação completa, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o Design System do GovBR.

Exemplo(s)

Desktop (100%)
Tablet - 768px
iPhone (iOS) - 390x844
Android - 360x800
Compartilhar URL
Mudar fundo
Abrir no StackBlitz
Tela cheia
HTML
Controles
JS
CSS
Console
Angular (Somente leitura)
React (Somente leitura)
Vue (Somente leitura)
Acessibilidade
Recolher controles e código
Formatar código
Resetar código para o estado inicial
Copiar para a área de transferência

Propriedades

cancelLabel

Atributocancel-label
DescriçãoDefine o texto do botão de cancelamento.
No modo spinner, esta prop não tem efeito.
Tipostring
Valor padrão'Cancelar'

cancelable

Atributocancelable
DescriçãoDefine se o botão de cancelamento será exibido.
Ao pressionar o botão, o evento brLoadingCancel é emitido.
No modo spinner, esta prop não tem efeito.
Tipoboolean
Valor padrãofalse

compact

Atributocompact
DescriçãoRemove o espaçamento externo e oculta visualmente o rótulo, mantendo-o
disponível para tecnologias assistivas. Use em áreas compactas, como
controles de paginação ou campos de formulário.
Tipoboolean
Valor padrãofalse

completion

Atributocompletion
DescriçãoDefine o comportamento quando o progresso atinge 100.
No modo spinner, esta prop não tem efeito.
Tipo"hide" | "persist" | "reset"
Valor padrão'persist'

customId

Atributocustom-id
DescriçãoIdentificador único do componente.
Quando omitido, um valor é gerado automaticamente.

> Padrão: valor único gerado por generateUniqueId().
Tipostring
Valor padrãogenerateUniqueId()

density

Atributodensity
DescriçãoDensidade visual canônica. Quando informada, tem precedência sobre size.
Tipo"large" | "medium" | "small"
Valor padrão---

label

Atributolabel
DescriçãoDefine o rótulo exibido no modo spinner.
No modo progress, esta prop não tem efeito.
Tipostring
Valor padrão---

labelPosition

Atributolabel-position
DescriçãoDefine a posição da label em relação ao loading.
Tipo"bottom" | "left" | "right" | "top"
Valor padrão'bottom'

mode

Atributomode
DescriçãoDefine o modo de exibição do componente.
Tipo"progress" | "spinner"
Valor padrão'spinner'

size Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.

Atributosize
DepreciaçãoUse density.
DescriçãoDefine o tamanho visual nos modos spinner e progress.
Tipo"large" | "medium" | "small"
Valor padrão'medium'

speed

Atributospeed
DescriçãoDefine a velocidade da animação/transição.
Tipo"fast" | "normal" | "slow"
Valor padrão'normal'

value

Atributovalue
DescriçãoDefine o progresso no modo progress.
No modo spinner, esta prop não tem efeito.
Valores inválidos são normalizados para 0.
Tiponumber
Valor padrão0

Slots

NomeDescrição
"cancel-button"Conteúdo customizado do botão de cancelar. Quando utilizado, a prop cancelLabel é ignorada.
"label"Rótulo customizado do loading. Quando utilizado, a prop label é ignorada.

Eventos

EventoDescriçãoDepreciaçãoPropagação
brDidHideNotifica que o componente foi ocultado.---true
brDidShowNotifica que o componente foi exibido.---true
brIndeterminateStateChangeNotifica mudança do estado lógico no modo spinner.---true
brLoadingCancelNotifica clique no botão de cancelamento no modo progress. Este evento não altera o progresso automaticamente. A aplicação consumidora define a ação após o cancelamento (ex.: limpar ou ocultar).---true
brLoadingChangeNotifica mudança de progresso no modo progress.---true
brLoadingCompleteNotifica conclusão do progresso no modo progress.---true
brLoadingHideEvento canônico emitido quando o loading é ocultado.---true
brLoadingResetNotifica reinício do progresso no modo progress.---true
brLoadingShowEvento canônico emitido quando o loading é exibido.---true

Métodos

complete

DescriçãoDefine o progresso como concluído.
Assinaturacomplete() => Promise<{ value: number; }>
Parâmetros---

hide

DescriçãoOculta o componente.
Assinaturahide() => Promise<{ visible: boolean; }>
Parâmetros---

incrementValue

DescriçãoSoma um valor ao progresso atual.
AssinaturaincrementValue(step?: number) => Promise<{ value: number; }>
Parâmetrosstep: Incremento aplicado.

reset

DescriçãoReinicia o progresso e exibe o componente.
Assinaturareset() => Promise<{ value: number; }>
Parâmetros---

setValue

DescriçãoDefine o valor do progresso.
AssinaturasetValue(value: number) => Promise<{ value: number; }>
Parâmetrosvalue: Valor desejado.

show

DescriçãoExibe o componente.
Assinaturashow() => Promise<{ visible: boolean; }>
Parâmetros---

CSS Shadow Parts

NomeDescrição
"cancel-button"Botão de cancelamento no modo progress cancelável.
"container"Wrapper principal do loading.
"label-wrapper"Wrapper do rótulo no modo spinner.
"percentage"Texto de percentual no modo progress.
"svg"Elemento SVG principal do loading.
"wrapper"Wrapper do conteúdo do spinner/progress.

Dependências

Usado por

Depende de

Gráfico

Eventos nativos

Elemento HTML de referência

O modo determinado referencia semanticamente <progress>, mas br-loading renderiza SVG/contêiner com role="progressbar". Não existe controle nativo interno equivalente.

Como ouvir os eventos

const loading = document.querySelector('br-loading');

loading.addEventListener('brLoadingComplete', (event) => {
console.log(event.detail);
});

Eventos nativos suportados

<progress> não define um evento próprio de mudança. Alterar value programaticamente não emite input nem change.

Eventos não aplicáveis ou não suportados

EventoSituaçãoMotivoAlternativa
input / changeNão aplicávelIndicador não é controle editável.Observe a fonte da operação ou brLoadingChange.
eventos de formulárioNão aplicávelO indicador não participa de FormData.Mantenha estado no fluxo da aplicação.

Eventos customizados do componente

brLoadingChange, brLoadingCancel, brLoadingComplete, brLoadingReset, brLoadingShow e brLoadingHide representam o ciclo próprio. Consulte a tabela gerada de eventos para payload e flags.

Valor e estado após o evento

value é propriedade/estado, não evento. Consulte também mode, completion e cancelable no host.

Frameworks

HTML usa addEventListener; React usa ref; Angular e Vue usam listeners para os eventos brLoading*. Não use onChange como substituto.

Acessibilidade

O host expõe nome e estado por role="progressbar" e atributos ARIA. O modo indeterminado não anuncia valor numérico.

Evidência de teste

_tests/loading.e2e.tsx cobre ARIA, valor e eventos próprios em Chromium headless. Não há evento nativo a comparar; três engines permanecem pendentes.

Migração de <br-loading> (1.x → 2.x)

O loading continua aceitando um valor de progresso, mas seus modos e tamanhos agora são propriedades explícitas.

Propriedades e controle

API 1.xAPI 2.xAção na migração
label, cancelable, labelPositionUse quando precisar de acessibilidade e controle de cancelamento.
mediumsize="medium"Substitua o booleano pelo tamanho explícito.
percentvalueRenomeie a propriedade.
progressmodeConverta para o modo de carregamento atual.

Para controlar o componente, prefira os métodos show, hide, reset, setValue e incrementValue. Acompanhe o ciclo de vida pelos eventos brLoading*.

Exemplo

1.x:

<br-loading progress percent="40" medium></br-loading>

2.x:

<br-loading mode="progress" value="40" size="medium" label="Carregando"></br-loading>