Switch

Design System - Switch component

The Switch component is used to toggle between two binary states, such as On/Off, Enable/Disable, or Active/Inactive. It offers a direct, easy-to-understand interaction and provides instant feedback. The design ensures accessibility, responsiveness, and consistency across applications.

// Sample code

  <CheckBox
    label="Label"
    onChange={(e)=>{console.log(e.target.checked}}
  />

Anatomy


Variants


Default

This is a clean toggle without any accompanying label or icon. It's compact and ideal for minimal layouts where the switch’s meaning is already clear from context.

With Symbol

This variant includes a symbol (like "|" for On and "◯" for Off) inside the switch thumb. It enhances visual clarity and is useful when colour alone isn't enough to indicate the switch's state.


Properties

With Icon

An optional icon can be added to the left or right (dismiss/close icon). This enhances usability and improves scanability, especially for chips used in status indicators or filters.

Property Configuration Table

Each design component offers a range of configurable options. These options are intentionally platform-agnostic, allowing implementations to adapt and tailor them to align with the specific requirements of the chosen framework.

Property
Value
Default

isLabelFirst

text

label

text

shapeOnOff

yes/no

no

isCheckedInitially

yes/no

no

onToggle

number

className

yes/no

style

yes/no

no

disable

yes/no

no

switchStyle

yes/no

no


Behaviours

Label

Use switches to represent binary on/off states. They are ideal for toggling settings or features that require immediate activation or deactivation.

Avoid using switches to indicate errors. Switches are not designed for error states.

Label Alignment

The placement of the label can be customised to appear left or right of the switch. This helps maintain visual balance depending on layout needs and reading flow.


Usage Guide


Use dividers for activation states

Use switches to represent binary on/off states. They are ideal for toggling settings or features that require immediate activation or deactivation.

Avoid using switches to indicate errors. Switches are not designed for error states.

Changelog


Date
Number
Notes

Dec 15, 2024

v-0.0.2

This component is added to the website. This component is now individually versioned.

Design Checklist


All interactive states - Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).

Accessible use of colours - Colour is not used as the only visual means of conveying information (WCAG 2.1 1.4.1)

Accessible contrast for text - Text has a contrast ratio of at least 4.5:1 for small text and at least 3:1 for large text (WCAG 2.0 1.4.3).

Accessible contrast for UI components - Visual information required to identify components and states (except inactive components) has a contrast ratio of at least 3:1 (WCAG 2.1 1.4.11).

Keyboard interactions - Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).

Screen reader accessible - All content, including headings, labels, and descriptions, is meaningful, concise, contextual and accessible by screen readers.

Responsive for all breakpoints - Responsiveness for 3 breakpoints - Mobile, Tablet and Desktop

Usage guidelines - Includes a list of dos and don'ts that highlight best practices and common mistakes.

Content guidelines - Content standards and usage guidelines for writing and formatting in-product content for the component.

Defined variants and properties - Includes relevant variants and properties (style, size, orientation, optional iconography, decorative elements, selection states, error states, etc.)

Defined behaviours - Guidelines for keyboard navigation and focus, layout management (including wrapping, truncation, and overflow), animations, and user interactions.

Design Kit - Access to the design file for the component in Figma, multiple options, states, colour themes, and platform scales.

Last updated

Was this helpful?