RRigdesign system
Inputs

Switch

A binary on/off control for preferences that apply immediately. Spring-back motion and an inner bevel.

Examples

Large 52×28 · Medium 44×24 · Small 36×20 · Off · Disabled
Colour variants (state is also shown by knob position)

States

Rendered states (visual reference; the live example above is the accessible one)
DefaultHoverFocus visiblePressedDisabled
Off
On

Anatomy

Switch anatomy
#PartDescriptionPresence
1Track52×28 / 44×24 / 36×20Required
2KnobSprings between positions, 250msRequired
3LabelVisible text, states the settingRequired

Specifications

Large52 × 28px · radius 14
Medium44 × 24px · radius 12
Small36 × 20px · radius 10
Active coloursPrimary indigo · Success emerald · Secondary purple · Warning amber

Interaction

Keyboard
KeyResult
TabMoves focus
SpaceToggles
EnterToggles (optional)
Pointer and touch
TriggerResponse
ClickToggles and applies immediately
DragOptional; a click must always work (WCAG 2.5.7)
HoverTrack brightens

Accessibility

role · switch

1.4.1Use of Colour1.4.11Non-text Contrast2.5.7Dragging Movements4.1.2Name, Role, Value
Requirements
RequirementHow Rig meets it
Semantics<input type="checkbox" role="switch">. It announces as on or off.
LabelName the setting, not the state: Notifications, not Turn on notifications
State cueKnob position and track fill both change, not colour alone
Immediate effectA change must not need a Save. If it does, use Checkbox.
Reduced motionKnob moves without the spring

Read the matching WAI pattern ↗

Usage

Do and don’t
DoDon’t
Use for settings that take effect at onceDo not use inside a form that has a Submit button
Do not label it On / Off

Notes from the Figma file

  • Applies immediately. If a change needs a Save, use a Checkbox.