Components
Preference and schedule switches
Represent a persistent on/off choice with a named switch and an explicit checked state.
On this page
Purpose and usage
Represent a persistent on/off choice with a named switch and an explicit checked state.
Use for a preference or schedule enabled state; label the outcome rather than the control technology.
Anatomy
| Part | Contract |
|---|---|
| Preference row | Label and descriptive copy with trailing switch. |
| Switch track | Visual on/off track and thumb. |
| Schedule context | Compact control named for its schedule. |
Variants and configuration
| Configuration | Behavior |
|---|---|
| SettingsToggle | checked, label, description, onChange. |
| ScheduleToggle | enabled, scheduleName, onChange, optional disabled. |
State coverage
| State | Implemented behavior |
|---|---|
| On | aria-checked true; accent track. |
| Off | aria-checked false; muted track. |
| Disabled schedule | Native disabled prevents changing an unavailable schedule. |
Interaction and responsive behavior
- Keep the value controlled by the containing form/workspace.
- Choose immediate-save or explicit-save behavior at the workflow level and document it.
- Do not use a switch for a one-time command such as creating a project.
Accessibility contract
- role=switch and aria-checked express the state.
- A visible label identifies the preference; the schedule switch uses its schedule name.
- Test Space activation and disabled semantics.
Known gaps and readiness
Preference save is local UI feedback in the audited source; schedule changes call a planning action. These are different persistence contracts.
Composition example
<SettingsToggle checked={dailyReminder}
label="Daily planning reminder"
description="A prompt to review your agenda."
onChange={setDailyReminder} />Source references
| File | Responsibility |
|---|---|
| app/components/settings-form-controls.tsx | SettingsToggle |
| app/components/schedule-toggle.tsx | ScheduleToggle |
Examples from the app
Actual Radarist components with fictional data. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-07 · Revision 0103e2549959 · Documentation v0.1