Skip to content

Switch

Switch

Toggle component for switching between two states, typically on/off or enabled/disabled.

Import

import Switch from '@primitivekit/svelte/Switch.svelte';

Basic Usage

<Switch>Content</Switch>

Props

No props available.

Customization

The Switch component supports CSS variables for complete customization:

<Switch style={{
  '--switch-bg-color': '#007bff',
  '--switch-text-color': '#ffffff'
}}>Custom</Switch>

Design Tokens

The following design tokens are available for customization:

  • --switch-width
  • --switch-height
  • --switch-bg-color
  • --switch-bg-color-checked
  • --switch-thumb-size
  • --switch-thumb-color
  • --switch-thumb-offset
  • --switch-label-gap
  • --switch-label-color
  • --switch-label-font-size
  • … and 5 more

Accessibility

The Switch component is fully accessible and follows WCAG 2.1 AA standards:

  • ✅ Semantic HTML elements
  • ✅ Keyboard accessible
  • ✅ Focus visible indicator
  • ✅ Proper ARIA attributes
  • ✅ Screen reader compatible
  • ✅ Touch target size (44x44px minimum)
  • ✅ Color contrast compliance

Keyboard Navigation

KeyAction
TabMove focus to/from component
EnterActivate component
SpaceActivate component

Related Components

  • Button - Interactive button component with multiple variants, sizes, and states for triggering actions.
  • Input - Text input field component with validation, icons, and various input types.
  • Select - Dropdown component for selecting one or multiple options from a list.
  • Checkbox - Form input component for selecting one or multiple options from a set.
  • Radio - Form input component for selecting a single option from a set of mutually exclusive choices.

See Also