Reference: Elevate Lookbook | Specs: DESIGN.md (form patterns)
<label class="elv-toggle">
<input type="checkbox" class="elv-toggle__input" aria-label="Toggle setting">
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
</label>
<label class="elv-toggle">
<input type="checkbox" class="elv-toggle__input">
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">Enable notifications</span>
</label>
<label class="elv-toggle elv-toggle--label-left">
<input type="checkbox" class="elv-toggle__input">
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">Email notifications</span>
</label>
<!-- Small -->
<label class="elv-toggle elv-toggle--sm">
<input type="checkbox" class="elv-toggle__input">
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">Small toggle</span>
</label>
<!-- Medium (default) -->
<label class="elv-toggle">
<input type="checkbox" class="elv-toggle__input">
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">Medium toggle</span>
</label>
<!-- Large -->
<label class="elv-toggle elv-toggle--lg">
<input type="checkbox" class="elv-toggle__input">
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">Large toggle</span>
</label>
<!-- Off state -->
<label class="elv-toggle">
<input type="checkbox" class="elv-toggle__input">
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">Off state</span>
</label>
<!-- On state -->
<label class="elv-toggle">
<input type="checkbox" class="elv-toggle__input" checked>
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">On state</span>
</label>
<!-- Disabled -->
<label class="elv-toggle elv-toggle--disabled">
<input type="checkbox" class="elv-toggle__input" disabled>
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">Disabled</span>
</label>
Receive updates about new features and products
Help us improve by sharing anonymous usage statistics
<div class="form-group">
<label class="elv-toggle">
<input type="checkbox" class="elv-toggle__input" checked>
<span class="elv-toggle__track">
<span class="elv-toggle__thumb"></span>
</span>
<span class="elv-toggle__label">Marketing emails</span>
</label>
<p class="elv-toggle-helper">Receive updates about new features</p>
</div>
Get notified about important updates
Receive email summaries of your activity
Get text messages for critical alerts
Requires desktop app installation
aria-label when label text is not visibleprefers-reduced-motion settingdisabled attribute and add elv-toggle--disabled class to label| Property | Small | Medium (Default) | Large |
| Track Width × Height | 36px × 20px | 48px × 24px | 60px × 28px |
| Thumb Size | 12px × 12px | 16px × 16px | 20px × 20px |
| Label Font Size | 12px | 14px | 16px |
| Track (Off) | #dfdfe2 (border-light) | ||
| Track (On) | #5746b2 (P100) | ||
| Track (Hover Off) | #b0afb6 (N40) | ||
| Track (Hover On) | #45388f (P120) | ||
| Track (Disabled Off) | #f2f2f3 (N10) | ||
| Track (Disabled On) | #b0afb6 (N40) | ||
| Thumb Color | #ffffff (Pure White) | ||
| Thumb Shadow | 0 2px 4px 0 rgba(32, 31, 35, 0.12) | ||
| Focus Outline | 2px solid #5746b2 (P100) with 2px offset | ||
| Border Radius | 50% of height (pill shape) | ||
| Transition Duration | 150ms cubic-bezier(0.4, 0, 0.2, 1) | ||
| Label Weight | 600 (Semibold) | ||
| Gap (label to track) | 8px (space-2) | ||
When to use toggles:
When NOT to use toggles:
Best practices: