overview

01

playground interativo

Ajuste props · veja preview + código atualizar em tempo real.

código gerado
<button class="btn btn--primary">label</button>

variantes

02

Primary

Ação mais importante de uma página. Use no máximo uma por contexto.

Secondary

Ação alternativa de mesmo peso. Usada junto ao primary.

Tertiary

Ação de baixa ênfase. Outlined, sem fundo.

Ghost

Mínimo destaque visual. Sem fundo nem borda.

Danger

Ação destrutiva — deletar, remover, cancelar permanente.

tamanhos

03

small: 32px · default: 48px · large: 64px · xl: 80px

estados

04

anatomia

05
label123
  1. Container — fundo da variante (primary, secondary, etc.)
  2. Label — verbo no infinitivo, caixa baixa
  3. Glifo — seta indicando ação direcional (opcional)

modifiers · api

06
proptipodefaultdescrição
.btn--primaryclassvariante primária — destaque verde
.btn--secondaryclassvariante secundária — dos
.btn--tertiaryclassvariante outlined
.btn--ghostclasssem fundo nem borda
.btn--dangerclassação destrutiva
.btn--smclassaltura 32px
.btn--lgclassaltura 64px · 2 linhas opcional
.btn--xlclassaltura 80px · expressivo
.btn--iconclassbotão só com ícone
disabledattrdesabilita interação

quando usar

07

use

  • Um primary por contexto
  • Verbo no infinitivo: salvar, enviar, publicar
  • Danger só pra ação destrutiva irreversível
  • Ghost pra ações secundárias dentro de cards

não use

  • "clique aqui" como label — usa o verbo da ação
  • Múltiplos primary numa mesma seção
  • Danger pra cancelar formulário (use ghost)
  • Botão pra navegação — usa link standalone

acessibilidade

08 · wcag aa

código

09 · html
<!-- variantes --> <button type="button" class="btn btn--primary">salvar</button> <button type="button" class="btn btn--secondary">cancelar</button> <button type="button" class="btn btn--danger">deletar</button> <!-- tamanho --> <button class="btn btn--primary btn--sm">small</button> <!-- icon-only --> <button class="btn btn--ghost btn--icon" aria-label="fechar">×</button>