Zephora UI

Form

IconButton

Icon-only push button sharing the Button variants and sizes. Requires an aria-label because there is no visible text.

Import

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

Examples

Variants

IconButton reuses the six Button variants.

Shape and size

`shape="circle"` renders a round button; three sizes match Button.

Loading

`loading` swaps the icon for a spinner and disables interaction.

API

IconButton props

PropTypeDefaultDescription
icon *ReactNodeThe icon to render. Marked aria-hidden; the accessible name comes from aria-label.
aria-label *stringAccessible name — required because the button has no visible text.
variant"solid" | "soft" | "outline" | "ghost" | "link" | "danger""solid"Visual style, shared with Button.
size"sm" | "md" | "lg""md"Control size.
shape"square" | "circle""square"Outer shape of the button.
loadingbooleanfalseShows a spinner, sets aria-busy and disables interaction.
unstyledbooleanfalseHeadless mode — drops Zephora classes so your own CSS can style it.
…restButtonHTMLAttributes<HTMLButtonElement>All native button props (onClick, disabled, type…) are forwarded.

Keyboard

KeyAction
Enter / SpaceActivates the button.
TabMoves focus.