ThemeToggle
Actions

ThemeToggle

Switches the nearest ThemeProvider between light and dark mode.

Props

ThemeToggle extends HTMLAttributes<HTMLButtonElement> (excluding onChange). It must be rendered inside a ThemeProvider; it drives the provider's mode, which regenerates the entire --m-* CSS variable set.

ThemeToggleProps props
PropTypeDefaultDescription
variant"icon" | "segmented""icon"Icon-only toggle or segmented light/dark pair.
size"sm" | "md""md"Control size.
showLabelboolean—Shows 'Light'/'Dark' text beside the icon (icon variant only).

Examples

Icon variant

ThemeToggle: icon

Segmented variant

ThemeToggle: segmented

With label

ThemeToggle: with label
ImportTSX
import { ThemeToggle } from "@solarius/onset";

// Must be inside a ThemeProvider
<ThemeToggle />
<ThemeToggle variant="segmented" size="sm" />
<ThemeToggle showLabel />