
Table Component
Components
An animated slider with elastic track movement, spring-based value transitions, rolling numbers, and interactive controls for single values and ranges.
Slider uses spring motion so the fill and handle follow the chosen value and settle naturally. It supports single values and dual-thumb ranges, with optional value bubbles and rolling numbers so users see exactly what they picked.
Use it when users adjust a value within known limits and benefit from seeing its relative position, such as price filters, volume, temperature, or effect intensity. The spring gives it character, but accuracy always comes first.
Set track roundness and thickness, rail value labels, dot or line step marks, and a bar, solid circle, outlined circle, or hidden thumb. Motion settings include spring duration and bounce, hover or drag thickening, elastic endpoint stretch, rolling numbers, and floating value bubbles.
A coffee equipment store can offer a grind-size slider and a two-handle water-temperature range in its configurator. The bubble shows each value as customers drag, and the fill makes the chosen range obvious.
An ecommerce category page can use a dual-thumb price filter, with rolling numbers updating as shoppers narrow results.
A creative tool can use smooth-mode sliders for opacity and blur, with track thickening on hover making small adjustments easier to grab.
For a few unrelated options that don’t form a scale, use Radio or Dropdown Menu.
When users need an exact value, such as money or measurements, pair the slider with a numeric input or use the input alone.
Avoid it when the scale is unclear, and never let moving a handle trigger an irreversible action without confirmation.
Keep dragging responsive, animate the fill and thumb with efficient properties, and never delay the real value behind the spring. Avoid app-wide re-renders on change, and separate instant slider feedback from expensive calculations that depend on the value.
Use native range semantics with a label, min, max, current value, and arrow-key support, giving each range handle its own name. On mobile, keep handles easy to grab and separate, don’t let stretch fight page scroll, and state units in text. With reduced motion, remove overshoot, stretching, and rolling numbers.
| Prop | Type | Default | Description |
|---|---|---|---|
theme | string | caffeine | Colour palette. The fill, the handle and the value bubble take its primary colour. |
mode | string | dark | Light or dark version of the palette. Starts dark. |
smooth | boolean | false | The thumb moves in fine steps while dragging instead of jumping from step to step. |
duration | number | 0.35 | How long the fill takes to catch up when you click the track, in seconds. |
bounce | number | 0.35 | Springiness of the fill catching up. 0 means no overshoot. |
thickenOn | string | hover | When the track grows thicker. |
elastic | boolean | true | The track stretches when you drag past either end, then springs back. |
stretchAmount | number | 10 | How far the track stretches past its ends, in percent of the track width. Needs Elastic on. |
labels | string | rail | Shows the current value and the maximum on the rail. |
thickenedSize | string | 13 | Track thickness while thickened, in Tailwind spacing units. Not used when Thicken on is Never. |
rounded | string | md | Corner radius of the track and fill. |
marks | string | dots | Marks drawn at each step along the track. |
showEdge | boolean | true | Shows a handle at the end of the fill. |
edgePress | string | shrink | What the handle does while you drag it. Needs Show edge on. |
edgeVariant | string | bar | Shape of the handle. Needs Show edge on. |
bubble | string | hover | When a bubble with the current value shows above the handle. |
rollingNumbers | boolean | true | Numbers in the bubble, on the rail and in the readouts roll to the new value. |
edgeSize | string | sm | Size of the handle. Needs Show edge on. |
Slider is an animated React component for selecting a value or range on an interactive track, with spring movement, elastic feedback, configurable handles, and animated value labels.
Yes. Two handles define lower and upper bounds, each moving independently, with the fill showing the interval.
Elastic lets a horizontal track stretch visually past its ends before snapping back. Stretch amount sets how far, as a percentage of width.
Yes. Smooth mode moves freely, rounding to one decimal place and using 0.1 increments for keyboard adjustment.
Yes. Values can show on the rail or in a floating bubble that appears on hover or drag, stays visible, or is hidden.
It can be, with correct slider semantics, keyboard operation, clear values, visible focus, and separately labelled handles in range mode.
Need a custom effect? Tell us what to create.