Button

Triggers an action.

import { Button } from "@/rl-ui";

<Button variant="primary">Save</Button>

Examples

Variants

import { Button } from "@/rl-ui";

<>
<Button variant="primary">primary</Button>
<Button variant="secondary">secondary</Button>
<Button variant="ghost">ghost</Button>
<Button variant="link">link</Button>
<Button variant="success">success</Button>
<Button variant="danger">danger</Button>
<Button variant="successSecondary">successSecondary</Button>
<Button variant="dangerSecondary">dangerSecondary</Button>
<Button variant="tertiary">tertiary</Button>
</>

AI, icon & minimal

import { Button } from "@/rl-ui";

<>
<Button variant="ai">AI</Button>
<Button variant="aiSecondary">AI secondary</Button>
<Button variant="minimal">Minimal</Button>
<Button variant="icon" aria-label="More">···</Button>
</>

Sizes

import { Button } from "@/rl-ui";

<>
<Button size="small">Small</Button>
<Button size="medium">Medium</Button>
<Button size="large">Large</Button>
</>

Primary × size

import { Button } from "@/rl-ui";

<>
<Button variant="primary" size="small">Small</Button>
<Button variant="primary" size="medium">Medium</Button>
<Button variant="primary" size="large">Large</Button>
</>

Loading

import { Button } from "@/rl-ui";

<>
<Button variant="primary" loading>Saving</Button>
<Button variant="secondary" loading>Loading</Button>
<Button variant="danger" loading>Deleting</Button>
</>

Disabled

import { Button } from "@/rl-ui";

<>
<Button variant="primary" disabled>Disabled</Button>
<Button variant="secondary" disabled>Disabled</Button>
<Button variant="ghost" disabled>Disabled</Button>
</>

API

PropTypeDefaultDescription
variant"primary" | "secondary" | "ghost" | "link" | "success" | "danger" | "icon" | "minimal" | "successSecondary" | "dangerSecondary" | "tertiary" | "ai" | "aiSecondary""secondary"Visual style.
size"small" | "medium" | "large""medium"Control height.
disabledbooleanfalsePrevents interaction.
loadingbooleanfalseShows a spinner and disables the button.
leftIconReactNode—Icon before the label.
rightIconReactNode—Icon after the label.
asChildbooleanfalseMerge props onto the child element.
type"button" | "submit" | "reset""button"Native button type.