Vesture

Component specification index

Components

All 48 components are free and open source — each with a live demo, full prop reference, and behavior notes. Every one reads exclusively from the token contract; no component ships a hardcoded color.

Inputs

Button

A native button with three visual weights. Forwards its ref and spreads every standard button attribute, so it drops into forms, dialogs, and toolbars without a wrapper.

Input

A styled text input with a built-in invalid state.

Textarea

A multi-line text field matching Input's styling and invalid-state contract.

Select

A native <select> with a themed chevron affordance layered on top — no custom listbox to keep in sync with platform behavior.

Checkbox

A checkbox built on a visually-hidden native input, so it keeps full native form semantics while the visible box is styled from tokens.

Radio

A radio input using the same hidden-input pattern as Checkbox. Group multiple with a shared name.

Switch

A toggle switch — a native checkbox with role="switch" under the hood, so assistive tech announces it correctly while behaving like any controlled checkbox.

Label

A form label with an optional required marker, meant to pair with Input, Select, Textarea, Checkbox, Radio, or Switch.

NumberInput

A text input for numeric values with increment/decrement stepper buttons, min/max/step clamping, and full keyboard support.

Slider

A draggable, keyboard-navigable slider. Pass a two-element tuple as the value to get a range slider with two thumbs instead of one.

Rating

A star rating input built on native radio buttons, plus a read-only display mode for showing an average rating.

Combobox

A typeahead search-and-select input built on Floating UI, supporting single selection or multi-select with removable chips.

FileUpload

A drag-and-drop file upload queue with per-file progress, client-side validation, and a remove action — the upload mechanism itself is entirely up to you.

SignaturePad

Canvas-based signature capture with smooth freehand strokes, DPR-correct rendering, and export to a PNG data URL.

RichTextEditor

A contentEditable rich text editor with a formatting toolbar, tables, images, text color/highlight/font-size, Notion-style markdown shortcuts, and a slash command menu — all sanitized through the same DOMPurify allowlist on every emitted change.

Overlays

Data