
Theme Switch Component
Components
An animated multi-step questionnaire with directional transitions, interactive answer cards, keyboard shortcuts, and progress tracking for surveys, onboarding, and guided forms.
Questionnaire shows one question at a time, sliding or fading between steps while answer choices appear in sequence. It supports single-choice, multiple-choice, and written answers, with animated selection highlights, a progress indicator, and Previous, Next, and Skip controls.
Use it when information is easier to give as a guided sequence, such as onboarding, lead qualification, assessments, and surveys. Motion should connect steps and show progress, never make the questionnaire take longer.
Choose card or inline answers, rounded or squared indicators, bordered check icons, and primary or muted selected states. Transitions can slide horizontally or vertically, scale, fade, or be off, with adjustable highlights, stagger, duration, distance, bounce, progress display, and keyboard labels.
A SaaS onboarding flow can ask a user’s role, then which tools they use with multiple-choice cards, then an optional written goal. The product uses the answers to tailor the first-run experience.
An agency site can qualify leads by asking project type, budget range, and timeline one step at a time, so visitors never face a long form upfront.
A skincare brand can run a short quiz that recommends a routine, with keyboard shortcuts for quick answers and a clear progress bar.
Short forms with a name, email, and message are faster as a conventional form.
Tasks that need comparing several fields at once, like financial details or settings, work better with related inputs shown together.
When users must review or edit many answers, or the flow is time-sensitive, forced step transitions become frustrating.
Use short transform and opacity transitions, render only the active question, and let users interact before staggers finish. Rapid navigation should replace outdated transitions rather than queue them.
Use radio groups for single choice, checkboxes for multiple choice, and labelled inputs for text, with readable validation messages. Support full keyboard navigation without shortcuts interfering with typing, and move focus to each new question heading. On mobile, use comfortable tap targets and layouts for long labels, and with reduced motion remove slides, stagger, and spring effects.
| Prop | Type | Default | Description |
|---|---|---|---|
theme | string | spotify | Colour palette. The progress bar, the hover fill and a Primary selected colour take its primary colour. |
mode | string | dark | Light or dark version of the palette. Starts dark. |
contentAnimation | string | slide-y | How one question leaves and the next arrives. |
slideDistance | number | 20 | How far questions slide, as a percentage of their own size (width sideways, height up and down). Needs a Slide content animation. |
choiceLayout | string | card | Choices as full-width cards, or as a compact list of radio buttons. |
choiceHover | string | top | Hover effect on a choice: a fade, or a fill that grows down from the top. Needs Layout set to Cards. |
choiceColor | string | primary | Background of the selected choice. Needs Layout set to Cards. |
indicatorRounded | string | full | Corner radius of the check icon box. Needs Indicator set to Check icon and Icon border on. |
indicatorBorder | boolean | false | Draws a border around the check icon box. Needs Indicator set to Check icon. |
choiceIndicator | string | check | Mark shown on a chosen option. |
bordered | boolean | true | Draws a border around the whole questionnaire. |
multiple | boolean | false | Lets every question accept more than one answer. |
staggerChoices | boolean | true | Choices appear one after another instead of all at once. |
stagger | number | 0.05 | Delay between choices appearing, in seconds. Needs Stagger choices on. |
showProgress | boolean | true | Shows the question count and a progress bar above the question. |
shortcuts | string | off | Keyboard keys that pick a choice, shown on each choice. |
duration | number | 0.4 | How long a question change takes, in seconds. Not used when Content animation is None. |
bounce | number | 0.1 | Springiness of the question change. Only used by the slide and scale animations. |
Questionnaire is a React component that presents questions one step at a time, with animated transitions, interactive answers, keyboard shortcuts, and progress tracking.
It supports single-choice, multiple-choice, and free-text questions within one guided flow.
Yes. A Previous control moves backward, and earlier responses should remain available when revisited.
Yes. A Skip action is included, and the application decides which questions are optional.
Yes. Letter or number shortcuts select choices, alongside keyboard controls for moving forward and back.
No. Storage, analytics, and backend processing must be connected to the application’s services.
Need a custom effect? Tell us what to create.