Componentes

Button

Ações primárias, secundárias e links estilizados.

Ações e indicadores

Carregando demonstração…

Código da demo
"use client";

import * as React from "react";
import { Button } from "@/components/ui/button";

export function Demo() {
  const [loading, setLoading] = React.useState(false);

  return (
    <div className="flex flex-col gap-fe-4">
      <div className="flex flex-wrap items-center gap-fe-2">
        <Button>Primária</Button>
        <Button variant="secondary">Secundária</Button>
        <Button variant="outline">Contorno</Button>
        <Button variant="ghost">Fantasma</Button>
        <Button variant="destructive">Excluir</Button>
        <Button variant="link">Link</Button>
      </div>
      <div className="flex flex-wrap items-center gap-fe-2">
        <Button size="xs">Extra pequeno</Button>
        <Button size="sm">Pequeno</Button>
        <Button>Padrão</Button>
        <Button size="lg">Grande</Button>
        <Button disabled>Desabilitado</Button>
        <Button
          loading={loading}
          onClick={() => {
            setLoading(true);
            window.setTimeout(() => setLoading(false), 1600);
          }}
        >
          Salvar alterações
        </Button>
      </div>
    </div>
  );
}

Use

  • Uma ação primária (default) por tela; as outras em secondary ou ghost.
  • Verbo no imperativo: “Salvar alterações”, “Novo negócio”.
  • loading enquanto a ação roda: a largura não muda.

Não use

  • Não use para navegar: use Link, ou Button asChild com Link.
  • Não ponha duas primárias lado a lado.
  • Não use a variante action: está deprecada, use default.
  • Não use Button para excluir sem confirmar: use AlertDialog.
Acessibilidade
Foco visível; disabled com aria; ícones com texto ou aria-label.
Importar
import { Button } from "@financeequity/ui/button"

Neste repositório:

import { Button } from "@/components/ui/button"
Dependências
radix-ui