tanstack-ranger

Generate accessible single-value and multi-thumb range sliders with headless utilities.

3|Updated May 11, 2026
One-click install
npx skills add https://github.com/JeromyJSmith/lattice-platform --skill tanstack-ranger-jeromyjsmith
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tanstack-ranger
Source: https://github.com/JeromyJSmith/lattice-platform/tree/main/.agents/skills/skills/tanstack-ranger
Command: npx skills add https://github.com/JeromyJSmith/lattice-platform --skill tanstack-ranger-jeromyjsmith

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

TanStack Ranger eliminates the complex, error-prone work of implementing accessible single-value and multi-thumb range sliders, including keyboard handling and correct thumb positioning.

Core Features & Use Cases

  • Accessible single/range/multi sliders: Generates slider handles with the required ARIA attributes and keyboard navigation for screen-reader and keyboard users.
  • Headless control over UI: Provides framework-agnostic logic via @tanstack/ranger-core so you can fully customize markup and styling while keeping behavior correct.
  • Multi-thumb constraints and accurate visuals: Manages sorted values (sortedValues) to handle thumb crossing during drag and exposes track segments/ticks for rich UIs.
  • Use Case: Create an analytics filter UI where users adjust a minimum and maximum threshold with tick marks, while keeping interactions consistent across browsers and frameworks.

Quick Start

Use the tanstack-ranger skill to wire useRanger to your track element, pass values, min, max, and onChange, and render thumbs using handle.getHandleProps() with positions derived from handle.getPercentage().

Frequently Asked Questions about tanstack-ranger

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build an accessible multi-thumb range slider in React?

You build an accessible multi-thumb range slider by wiring headless logic to your track element and rendering handles using position percentages. It manages ARIA attributes, keyboard navigation, and thumb crossing automatically while you retain full control over markup and styling.

What is a headless range slider and when do I need one?

A headless range slider provides the interactive logic and accessibility features for slider components without dictating the markup. You need one when building custom UI designs that require single-value or multi-thumb dragging interactions while maintaining screen-reader and keyboard support.

Does this range slider utility work with Vue, Svelte, Angular, and Solid?

Yes, the range slider utility works with Vue, Svelte, Angular, and Solid because it provides framework-agnostic logic via its core package. You apply the sorted values, steps, and tick APIs to render the slider using your chosen framework's component model.

How do I add tick marks and custom value constraints to a range slider?

You add tick marks and custom value constraints to a range slider by utilizing the exposed track segments and tick APIs from the headless logic. These APIs allow you to render rich visual UIs while enforcing specific stepping and boundary rules during user interactions.

Why do my range slider thumbs cross each other during dragging?

Range slider thumbs cross during dragging when the component does not properly manage sorted values. This utility prevents the issue by exposing sortedValues, which automatically handles thumb ordering and crossing to maintain accurate visual positioning and constraints.