SSocratic UI

Negation Select

Open in playground

Strike-through elimination. Pick what you definitely don't want — often easier than choosing what you do. Remaining scope is counted as you eliminate.

Preview

05

What do you definitely NOT need?

Eliminate what's out of scope — it's easier than picking what's in

↑↓to navigateEnterto eliminate⌘ Enterto submitEscto skip

Usage

import { NegationSelect } from "@/components/socratic-ui/negation-select";

<NegationSelect
  question="What do you definitely NOT need?"
  options={[
    { title: "Complex onboarding" },
    { title: "Social features" },
  ]}
  value={eliminated}
  onChange={setEliminated}
/>

API Reference

PropTypeDefault
questionrequired

The headline shown above the options.

string
subtitle

Optional supporting copy beneath the question.

string
optionsrequired

The list of options the user can eliminate.

{ title: string; subtitle?: string }[]
valuerequired

Titles of the options the user has eliminated.

string[]
onChangerequired

Called when eliminations change. Tap a crossed-out item to restore it.

(value: string[]) => void
number

Optional leading question number.

string
iconLayout

How icons align relative to their label. `vertical` stacks icon above label for a tile-style layout.

"horizontal" | "vertical""horizontal"
iconAlignment

Horizontal alignment of the icon within its slot. Only applies when `iconLayout` is `"vertical"`.

"left" | "center""left"
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