Pular para o conteúdo

Componentes

Button

Ação. Uma altura por tamanho, compartilhada com input e chip. Toque afunda 2%. No foco, o anel de 2px chega agora e o halo azul entra depois.

estávelAçãodesde 0.1.0@hiboupay/react

Exemplos#

Variantes · md 40

Tamanhos · xs 28 · sm 32 · md 40 · lg 48 · ícone

Estados · carregando mantém a largura · desabilitado

Sobre vidro e noite

Ícone à direita indica avanço

Importar#

tsx
import { Button, buttonVariants, buttonSizes } from "@hiboupay/react";
import type { ButtonProps, ButtonVariant, ButtonSize } from "@hiboupay/react";

Quando usar#

Use quando

  • Disparar uma ação na tela atual: salvar, confirmar, abrir diálogo.
  • Confirmar ou cancelar dentro de diálogo e gate.
  • Ação de ícone em barra densa (size icon / icon-sm) com aria-label.

Não use quando

  • Navegar para outra página: use link.
  • Alternar entre vistas: use Tabs.
  • Filtrar lista: use FilterChip.

Variantes#

primary

Vivid Blue em degradê. Uma por área. A ação que a pessoa veio fazer.

night

Graffiti. Ação forte que não é a principal, ou principal sobre fundo azul.

outline

Papel com anel. Ação alternativa ao lado da primária.

secondary

Violeta suave. Rascunho, experimento.

ghost

Sem fundo. Cancelar, ação terciária.

glass

Sobre vidro ou canvas com aurora.

success

Concluir de forma positiva (liquidar, aprovar).

danger

Destrutiva. Quase sempre abre ConfirmGate.

link

Saída discreta, sem caixa. Voltar, cancelar navegação.

Anatomia#

  1. 01Contêiner com altura de controle (28 · 32 · 40 · 48)
  2. 02Ícone opcional à esquerda ou direita (lucide, tamanho automático)
  3. 03Rótulo com verbo
  4. 04Spinner sobreposto quando loading (a largura não muda)

Estados#

defaulthoveractive (scale 0.98)focus-visible (anel 2px + offset 2px)loading (aria-busy, largura mantida)disabled (opacidade 55%)

API#

Props documentadas no registro. * indica obrigatória.

Propriedades
PropTipoPadrãoDescrição
variant"primary" | "night" | "secondary" | "outline" | "ghost" | "glass" | "link" | "danger" | "success""primary"Peso visual e intenção.
size"xs" | "sm" | "md" | "lg" | "icon" | "icon-sm""md"xs 28 · sm 32 · md 40 · lg 48. icon é quadrado de 40; icon-sm de 32.
loadingbooleanfalseTroca o conteúdo por spinner mantendo a largura. Também desabilita e liga aria-busy.
type"button" | "submit" | "reset""button"Padrão button para não submeter formulário por acidente.
...propsButtonHTMLAttributesQualquer atributo nativo de <button>. ref é encaminhado.

Acessibilidade#

Teclado

TabMove o foco para o botão.
EnterEspaçoAtiva.

Leitor de tela

  1. —Anunciado como botão com o rótulo.
  2. —size icon / icon-sm exige aria-label.
  3. —loading anuncia ocupado (aria-busy).

Boas práticas#

Faça

  • Uma primária por área de decisão.
  • Rótulo com verbo: "Confirmar e assinar", "Estornar R$ 1.200".
  • Mesma altura do input ao lado.

Evite

  • Duas primárias lado a lado.
  • Botão para navegar.
  • Rótulo genérico ("OK", "Clique aqui").

Conteúdo#

  1. —Verbo no infinitivo ou imperativo curto, até 3 palavras.
  2. —Inclua o objeto quando houver dinheiro: "Pagar R$ 90".

Tokens#

Os tokens que desenham este componente. Clique para ver valor, variável e classe.

Relacionados#