SSocratic UI

A slider between two labeled poles. Surfaces shades of grey that a radio group collapses — neither ‘A nor B’ but ‘slightly toward A’. Pole tiles light up as the slider crosses the midpoint.

Preview

07

What's your building philosophy?

Drag the slider to where you sit on the spectrum.

Move fast
Ship now, fix later
Methodical
Measure twice, cut once

Usage

import { Spectrum } from "@/components/socratic-ui/spectrum";

<Spectrum
  question="What's your building philosophy?"
  leftLabel="Move fast"
  leftDescription="Ship now, fix later"
  rightLabel="Methodical"
  rightDescription="Measure twice, cut once"
  value={value}
  onChange={setValue}
/>

API Reference

PropTypeDefault
questionrequired

The headline shown above the slider.

string—
subtitle

Optional supporting copy beneath the question.

string—
leftLabelrequired

Label for the low end of the slider.

string—
leftDescription

Optional one-liner describing the left pole.

string—
rightLabelrequired

Label for the high end of the slider.

string—
rightDescription

Optional one-liner describing the right pole.

string—
min

Minimum slider value.

number0
max

Maximum slider value.

number100
step

Step increment between slider stops.

number1
valuerequired

Current slider value.

number—
onChangerequired

Called as the slider moves.

(value: number) => void—
number

Optional leading question number.

string—
motion

Opt-in entrance animation config. Omit for static rendering; pass `{ enabled: true }` (or a preset from `motion.ts`) to animate in on mount.

SocraticMotion—