Zephora UI

Form

Button

Accessible push button with six visual variants, three sizes, loading state and a headless (unstyled) mode for Tailwind.

Import

import { Button } from "@zephora/react";

Examples

Variants

Six built-in variants cover most actions.

Sizes

Loading state

`loading` disables the button and announces aria-busy.

API

Button props

PropTypeDefaultDescription
variant"solid" | "soft" | "outline" | "ghost" | "link" | "danger""solid"Visual style of the button.
size"sm" | "md" | "lg""md"Control height and typography scale.
loadingbooleanfalseShows a spinner, sets aria-busy and disables interaction.
fullWidthbooleanfalseStretches the button to the container width.
startIcon / endIconReactNodeIcons rendered before/after the label.
unstyledbooleanfalseHeadless mode — drops Zephora classes so Tailwind or custom CSS can style it.
…restButtonHTMLAttributes<HTMLButtonElement>All native button props (onClick, disabled, type…) are forwarded.

Keyboard

KeyAction
Enter / SpaceActivates the button.
TabMoves focus.