Zephora UI

Other

Knob

Circular dial input — a rotary slider driven by keyboard or vertical drag, with min/max/step, custom size and semantic colors. Exposes the full slider ARIA pattern.

Import

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

Examples

Basic

Drag vertically or focus the dial and use the arrow keys.

35

Controlled with range and step

20
20°C

Colors and states

70
50
90
30
60

API

Knob props

PropTypeDefaultDescription
valuenumberControlled value.
defaultValuenumberminInitial value for uncontrolled usage.
onValueChange(value: number) => voidCalled whenever the value changes.
minnumber0Lower bound.
maxnumber100Upper bound.
stepnumber1Snap increment for keyboard and drag.
sizenumber64Diameter in px.
disabledbooleanfalseBlocks all interaction.
readOnlybooleanfalseFocusable but not adjustable.
labelstringAccessible name for the dial (also used when aria-label is absent).
showValuebooleanfalseRenders the current value in the middle of the dial.
color"primary" | "success" | "warning" | "danger""primary"Semantic color.
unstyledbooleanfalseHeadless mode — skips Zephora styling.

Keyboard

KeyAction
ArrowUp / ArrowRightIncreases the value by one step.
ArrowDown / ArrowLeftDecreases the value by one step.
PageUp / PageDownChanges the value by ten steps.
Home / EndJumps to the minimum / maximum.