Skip to main content

SliderNumber

Forms

SliderNumber — a Slider and a NumberInput bound to one value, clamped and rounded in lockstep so they can never disagree, plus an explicit null state meaning "use the provider default" with a reset control.

import { SliderNumber } from "@elabs-ai/components-ui";
Install
npm install @elabs-ai/components-tokens @elabs-ai/components-ui

Skipping the @source line is the most common first failure: Tailwind does not scan node_modules, so every component renders unstyled. The one-time wiring

Prompt for your coding agent

Paste it into Claude Code, Cursor, Codex or any other coding agent. Text in [brackets] is yours to fill in.

Add the brand-ui SliderNumber component (from @elabs-ai/components-ui) to this project.

1. Read https://elabs-ai.com/llms.txt first: it maps every package and the rules. If you can use MCP servers, connect https://elabs-ai.com/mcp and use its search, docs and tokens tools. If not, run the same lookups in the terminal: `npx -y @elabs-ai/components-cli search "<what you need>"` and `npx -y @elabs-ai/components-cli docs <Component>`.
2. Look SliderNumber up before writing code: `npx -y @elabs-ai/components-cli docs SliderNumber` prints its real props, variants, what it pairs with and what to avoid.
3. If @elabs-ai/components-ui is not installed yet: `pnpm add @elabs-ai/components-tokens @elabs-ai/components-ui` (or `npm install @elabs-ai/components-tokens @elabs-ai/components-ui`). If this is the first brand-ui package in the project, wire it once: import `@elabs-ai/components-tokens/styles.css` plus the `themes/light.css` and `themes/dark.css` stylesheets in the CSS entry, add one Tailwind `@source` line per installed @elabs-ai package (Tailwind does not scan node_modules, so without it everything renders unstyled), and wrap the app root in `ThemeProvider` from `@elabs-ai/components-tokens`.
4. Use it here: [the screen or file, and what it should show]
5. Rules: use only @elabs-ai/components-* components and the semantic tokens — no raw colours, no raw font sizes, no arbitrary Tailwind values. Look up each component's real props with the docs tool before you use it; never guess a prop.
6. Done means: the typecheck passes, `npx -y @elabs-ai/components-cli audit src --strict` reports nothing, and you have opened the app and looked at every screen you touched in the light and the dark theme.

Examples

5 live examples

Provider Default

Starting from "provider default" — the slider thumb renders dimmed/dashed and Reset is disabled.

Controlled

Drag Then Reset

Dragging (via keyboard) to a value, then resetting back to the provider default.

Disabled

API

SliderNumber

PropTypeDescription
valuenumber | nullControlled value. Pass `null` for "use the provider default".
defaultValuenumber | nullUncontrolled initial value.
onValueChange(value: number | null) => voidCalled when the value changes — always rounded identically on the drag and type paths.
minnumberMinimum allowed value. Defaults to 0.
maxnumberMaximum allowed value. Defaults to 100.
stepnumberStep increment for both the slider and the number input's arrow keys. Defaults to 1.
precisionnumberNumber of decimal places to round to. Defaults to the decimal places in `step` (e.g. `step={0.1}` rounds to 1 decimal). Applied identically on BOTH the slider path and the number-input path so drag-then-type never disagrees.
resetLabelReactNodeLabel for the reset-to-provider-default control. Defaults to "Reset".
disabledbooleanDisables the whole control.
idstring
namestring

Also accepts: Omit< HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue" >