Button
Botão que dispara uma ação. Quatro variantes e quatro tamanhos, um estado de carregamento que mantém o foco e um visual que vem inteiro do estilo ativo.
Instalação
Configure o Camaleo uma vez (Instalação) e importe o que precisar. O estilo carregado cuida do visual.
import { Button, IconButton, ButtonGroup } from "@camaleo/react";Anatomia
Um elemento com até três partes. Cada parte tem um data-slot que você pode usar no CSS.
Exemplos
Cada exemplo é um arquivo real que você pode copiar. Todos usam o estilo, o modo e a cor escolhidos na barra acima.
Tamanhos
sm, md e lg seguem as alturas de controle do estilo, então um formulário e seus botões sempre ficam alinhados.
Com ícone
Ícone antes do rótulo para algo novo, depois dele para direção ou download. Marque com data-slot="icon" e aria-hidden.
Só ícone
O IconButton exige aria-label. Use junto com um Tooltip para quem enxerga também ver o nome.
Como link
Navegação é link, não botão. render={<a href="…" />} com nativeButton={false} mantém o visual e entrega uma âncora de verdade.
Salvando, depois salvo
Clique. O loading mantém a largura e o foco enquanto a requisição roda; uma mensagem de status anuncia o resultado.
Destrutivo, com confirmação
Clique. Uma ação danger abre um AlertDialog. A escolha segura vem primeiro e recebe o foco.
Em grupo
O ButtonGroup junta ações relacionadas com role="group". Para navegar entre elas com as setas, use o Toolbar.
Aceite os termos para continuar.
Desativado, com o motivo
Nunca deixe a pessoa adivinhando. Diga o que falta e ligue com aria-describedby, ou mantenha o botão ativo e valide no envio.
Em contexto
Botão nunca aparece sozinho. São pedaços inteiros de interface para copiar, no estilo que você escolheu.
Equipe
R$ 99 por pessoa / mês
- Projetos ilimitados
- Estilos e tokens compartilhados
- Suporte prioritário
Nenhum projeto ainda
Crie seu primeiro projeto ou importe um de um arquivo.
Cookies
Usamos cookies para manter você conectado e, se você concordar, para medir o que ajuda.
Boas práticas
Ele mostra qual é a ação principal.
Nada se destaca, então nada fica claro.
Diga o que acontece: "Emitir nota", "Salvar alterações".
"OK" e "Clique aqui" não dizem nada fora de contexto, nem para um leitor de tela que lista os botões.
Props
solid para a ação principal, outline para as secundárias, ghost para as discretas, danger para as destrutivas.icon deixa o botão quadrado.<button> nativo. Use false quando o render não for um botão.O IconButton recebe as mesmas props, sem size e com aria-label obrigatório. Os atributos nativos de botão passam direto.
Styling hooks
Mude o visual sem copiar o componente: use os atributos ou defina os tokens num elemento pai, num estilo ou no próprio botão.
Atributos
Tokens que ele lê
Cor
Forma e tamanho
Tipografia e movimento
Só deste componente
/* botão principal em pílula, só nesta seção */
.checkout [data-slot="button"][data-variant="solid"] {
--cml-radius-control: 999px;
}Acessibilidade
- Texto e anel de foco passam no WCAG 2.2 AA nos 13 estilos, claro e escuro, com qualquer cor de marca.
- Durante o carregamento ele marca aria-busy e continua focável, então quem usa teclado ou leitor de tela não perde o lugar.
- Renderizado como outro elemento pelo render, mantém o papel de botão e o comportamento de teclado.
- Respeita o movimento reduzido: o efeito de clique e o spinner ficam mais calmos.