# Dual Range Slider

> A token-driven dual-thumb range slider that selects a min–max range with a filled track between the thumbs, crossover prevention, and full keyboard support — fully design-system agnostic.

- Category: Slider
- Frameworks: Vanilla, React + CSS, React + Tailwind
- Design system: Atlas
- Dark mode: yes
- Access: premium (Atheros AI Pass)
- Tags: range
- Page: https://builder.atheros.ai/components/dual-range-slider
- Preview: https://d17nmjscumqk5d.cloudfront.net/builder/templates/tpl_builder_dual_range_slider/preview-34e3d320c15b.webp

## Features

- Caret's checked-in default primary is already the same orange used by its histogram, while the browser toolbox owns design-system selection.
- Two independently draggable thumbs selecting a minimum and maximum value
- Filled track between the thumbs positioned via `--lo` and `--hi` custom properties
- Crossover prevention so the minimum can never exceed the maximum
- Real pointer dragging with per-thumb pointer capture
- Zero-lag drag tracking — pointer moves commit instantly with no easing or transition delay
- Full keyboard support with Arrow, Home, End, PageUp, and PageDown on each thumb
- Crisp interaction feedback — thumb spring scale on hover and grab, tooltip tick per step, fill pulse and field commit/shake animations
- Each thumb exposes `role="slider"` with `aria-valuenow`, `aria-valuemin`, and `aria-valuemax`
- Live "min – max" readout above the control
- Responsive panel that adapts padding down to 260px
- Fully respects `prefers-reduced-motion`

## Accessibility

- **Slider role** — Each thumb uses `role="slider"` with `aria-valuenow`, `aria-valuemin`, `aria-valuemax`
- **Crossover guard** — The minimum is capped at the maximum and vice versa in JS
- **Keyboard control** — Arrow keys step, Home/End jump to bounds, PageUp/PageDown move by a larger step
- **Focus indicators** — `:focus-visible` with a `--ring` indicator on all interactive elements; the range handles carry a `--dr-thumb-ring-width` band fenced by `--surface` separators so it stays legible where it crosses the filled track
- **Reduced motion** — `prefers-reduced-motion: reduce` disables all animations

## Keyboard shortcuts

- `ArrowRight` — Increase the focused thumb by one step
- `ArrowLeft` — Decrease the focused thumb by one step
- `Home` — Move the focused thumb to the minimum
- `End` — Move the focused thumb to the maximum
- `PageUp` — Increase the focused thumb by a larger step
- `PageDown` — Decrease the focused thumb by a larger step

## Common questions

**Which frameworks is Dual Range Slider available in?**

Dual Range Slider ships as Vanilla, React + CSS and React + Tailwind — HTML, CSS, JS and React source you can copy, download or clone into Atheros AI Builder.

**Is Dual Range Slider free?**

Dual Range Slider is a premium component. Anyone can preview it; the source, downloads and AI customisation are included with Atheros AI Pass.

**Does Dual Range Slider support dark mode?**

Yes. Dual Range Slider ships light and dark themes, both drawn from the Atlas design system's tokens. Switch the preview to dark mode to compare them.

## Get the code

Preview Dual Range Slider live, then sign in to copy or download the source, apply another design system, or ask the AI assistant to change it: https://builder.atheros.ai/components/dual-range-slider

Every component on https://builder.atheros.ai is also reachable from Claude Code, Cursor and Codex through the Atheros MCP server (paid plans). Component index: https://builder.atheros.ai/llms-components.txt
