Skip to content
Nana UI

Range

View .md Download

A range/slider component supporting single and dual-thumb selection, vertical orientation, stepped and continuous modes, tooltips, tick marks, and linked numeric inputs.

Terminal window
npm install @nana-tec/ui-components
import "@nana-tec/ui-components/range";
<nana-range label="Volume" min="0" max="100" value="50" style="min-width:16rem"></nana-range>

The variant attribute sets the track fill — default, filled, or gradient.

Properties

PropertyAttributeTypeDefaultDescription
ariaLabelaria-labelstring | nullnullAccessible label
disabledbooleanfalseDisable interaction
dualbooleanfalseEnable dual-thumb range selection
maxnumber100Maximum value
minnumber0Minimum value
orientationRangeOrientation'horizontal'Layout orientation
showInputshow-inputbooleanfalseShow linked numeric input fields
showMinMaxshow-min-maxbooleanfalseShow min/max labels
sizeSize'md'Component size
stepnumber1Step increment (0 for continuous)
ticksbooleanfalseShow tick marks at every step
tooltipRangeTooltip'none'Tooltip display mode
valuestring'50'Current value. Single: `"50"`. Dual: `"25,75"`.
variantRangeVariant'default'Visual variant

Events

EventDescription
nana-changeFired when value settles (`detail.value` — string or {min, max})
nana-inputFired while dragging (`detail.value`)

Slots

SlotDescription
(default)Custom content (appears below the slider)
prefixContent before the slider
suffixContent after the slider

CSS parts

PartDescription
::part(base)The root container
::part(track)The track element
::part(fill)The active fill portion
::part(thumb)A draggable handle
::part(tooltip)The value tooltip

CSS custom properties

PropertyDescription
--nana-range-track-heightTrack thickness (default: 6px)
--nana-range-thumb-sizeThumb diameter (default: 20px)
--nana-range-track-bgTrack background
--nana-range-fill-bgFill colour
--nana-range-thumb-bgThumb background
--nana-range-thumb-radiusThumb shape (default: 50%)
--nana-range-tooltip-bgTooltip background
--nana-range-tooltip-colorTooltip text colour
--nana-range-gradient-fromGradient start (variant="gradient")
--nana-range-gradient-toGradient end (variant="gradient")
EventTypeDescription
nana-changeCustomEventFired when value settles (detail.value — string or {min, max})
nana-inputCustomEventFired while dragging (detail.value)
SlotDescription
(default)Custom content (appears below the slider)
prefixContent before the slider
suffixContent after the slider
VariableDefaultDescription
--nana-range-track-heightTrack thickness (default: 6px)
--nana-range-thumb-sizeThumb diameter (default: 20px)
--nana-range-track-bgTrack background
--nana-range-fill-bgFill colour
--nana-range-thumb-bgThumb background
--nana-range-thumb-radiusThumb shape (default: 50%)
--nana-range-tooltip-bgTooltip background
--nana-range-tooltip-colorTooltip text colour
--nana-range-gradient-fromGradient start (variant=“gradient”)
--nana-range-gradient-toGradient end (variant=“gradient”)
PartDescription
baseThe root container
trackThe track element
fillThe active fill portion
thumbA draggable handle
tooltipThe value tooltip
  • Keyboard accessible
  • Screen-reader labels
  • Focus-visible states
  • ARIA roles and states
  • WCAG 2.2 AA contrast
Explore Range interactively Every state, prop, and edge case — with live controls — in Storybook.
View in Storybook