Button Botão
Introdução
Um componente clicável para acionar ações e interações do usuário. Inclui variantes para ícones e botões agrupados.
Uso
Botão básico
import { Button } from "../components/ui";
export default function MyPage() {
return (
<Button variant="solid" colorPalette="blue">
Click me
</Button>
);
}
Estado de carregamento
import { Button } from "../components/ui";
export default function MyPage() {
return (
<Button loading loadingText="Saving...">
Save
</Button>
);
}
IconButton
Um botão otimizado para ícones.
import { IconButton } from "../components/ui";
import { SearchIcon } from "./icons";
export default function MyPage() {
return (
<IconButton aria-label="Search">
<SearchIcon />
</IconButton>
);
}
CloseButton
Um botão pré-estilizado para fechar elementos.
import { CloseButton } from "../components/ui";
export default function MyPage() {
return <CloseButton onClick={() => console.log("closed")} interactive />;
}
ButtonGroup
import { Button, ButtonGroup } from "../components/ui";
export default function MyPage() {
return (
<ButtonGroup attached>
<Button>First</Button>
<Button>Second</Button>
</ButtonGroup>
);
}
Construtor de Páginas CMS
Este componente está disponível como um bloco button no Construtor de Páginas (content/pages/*.json):
{
"type": "button",
"text": "Click me",
"variant": "solid",
"colorPalette": "blue"
}
Propriedades
Button
| Prop | Type | Description |
|---|---|---|
children | any | Conteúdo a ser renderizado dentro do componente. |
class | string | Classes CSS personalizadas. |
| variant | `"solid" \ | "surface" \ | "subtle" \ | "outline" \ | "plain"` | O estilo visual do botão. |
| size | `"2xs" \ | "xs" \ | "sm" \ | "md" \ | "lg" \ | "xl" \ | "2xl"` | O tamanho do botão. |
| loading | boolean | Se true, o botão mostrará um spinner de carregamento. |
| loadingText | string | O texto exibido durante o carregamento. |
| type | `"button" \ | "submit" \ | "reset"` | O tipo HTML do botão. |
| colorPalette | string | O tema de cor do botão. |
| interactive | boolean | Se deve habilitar a hidratação do lado do cliente. |
ButtonGroup
| Prop | Type | Description |
|---|---|---|
children | any | Botões a serem agrupados. |
attached | boolean | Se os botões devem ser unidos entre si. |