Field compound, specialised inputs, and flow forms. All a11y-wired out of the box.
Label, Input, Helper, Error auto-wired via htmlFor + aria-describedby.
We'll never share your email.
Must be at least 12 characters with one number.
Markdown supported. Visible to subscribed customers.
<Field name="email" required><Field.Label>Email</Field.Label><Field.Input purpose="email" /></Field>Searchable autocomplete with grouped options.
<Combobox items={items} value={v} onValueChange={setV} clearable />Numeric input with step buttons and keyboard support.
Quantity: 4
<NumberInput value={qty} onValueChange={setQty} min={0} max={100} />Type then Enter to add tags. Backspace removes the last.
<TagInput value={tags} onValueChange={setTags} />Segmented one-time-code input. Paste-safe.
<OTPInput length={6} />International phone input with country selector.
<PhoneInput value={phone} onValueChange={setPhone} />Currency symbol, locale formatting, and precision clamping.
<CurrencyInput value={price} onValueChange={setPrice} currency="USD" />Single-date picker with popover calendar.
<DatePicker value={date} onValueChange={setDate} />Two-date picker with range preview.
<DateRange value={range} onValueChange={setRange} />Hour/minute time input.
<TimePicker value={time} onValueChange={setTime} />Numeric range input. Range mode returns a [min, max] tuple.
<Slider mode="range" value={[20, 80]} />Drag & drop or click-to-select with progress state.
<FileUpload accept="image/*" multiple />Hex color picker with swatches.
<ColorPicker value={color} onValueChange={setColor} />Full sign-in flow.
<SignInForm onSubmit={async (v) => {}} />Sign-up with password strength and terms checkbox.
<SignUpForm onSubmit={async (v) => {}} />International address.
<AddressForm onSubmit={async (v) => {}} />Card number, expiry, CVC.
<PaymentForm onSubmit={async (v) => {}} />