DexCode Packages
Menu

@dexcode/ui

Button

Botão padrão dos sistemas DexCode, com variantes, tamanhos e estado de carregamento. Aceita todas as props de um <button> nativo.

Importação

tsx
import { Button } from "@dexcode/ui";

Playground

Mude as opções e veja o botão e o código atualizarem na hora.

Cliques: 0

tsx
<Button>Salvar</Button>

Exemplos

Variantes

Use primary para a ação principal da tela e danger para ações destrutivas.

tsx
<Button>Primary</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="outline">Outline</Button>
<Button variant="ghost">Ghost</Button>
<Button variant="danger">Danger</Button>

Tamanhos

tsx
<Button size="sm">Pequeno</Button>
<Button size="md">Médio</Button>
<Button size="lg">Grande</Button>

Carregando

Mostra um spinner e bloqueia novos cliques enquanto loading for true.

tsx
<Button loading>Salvando</Button>
<Button variant="outline" loading>Enviando</Button>

Desabilitado

tsx
<Button disabled>Primary</Button>
<Button variant="outline" disabled>Outline</Button>

Largura total

tsx
<Button fullWidth>Entrar</Button>

Em formulários

O tipo padrão é "button". Para enviar um formulário, passe type="submit".

tsx
<form action={salvar}>
  <Button type="submit">Enviar</Button>
</form>

Props

PropTipoPadrãoDescrição
variant"primary" | "secondary" | "outline" | "ghost" | "danger""primary"Estilo visual do botão.
size"sm" | "md" | "lg""md"Tamanho do botão.
loadingbooleanfalseMostra um spinner e desabilita o botão.
fullWidthbooleanfalseOcupa toda a largura do container.
type"button" | "submit" | "reset""button"Tipo nativo do botão. O padrão é "button" para não enviar formulários sem querer.
classNamestring—Classes extras do Tailwind, somadas às do componente. Bom para margem e layout; para trocar cores, prefira outra variant.
...propsComponentProps<"button">—Qualquer outra prop de <button>: onClick, disabled, aria-*, ref etc.