Switch
A toggle between two states
Styled
Unstyled
Headless
Features
Accessible, easy to compose and customize.
Style and animate both frame and thumb.
Sizable & works controlled or uncontrolled.
Native prop that renders native Switch on mobile
Installation
Switch is already installed in tamagui, or you can install it independently:
yarn
npm
bun
pnpm
yarn add @tamagui/switch
Usage
import { Switch } from 'tamagui' // or '@tamagui/switch'export default () => (<Switch size="$4"><Switch.Thumb transition="bouncy" /></Switch>)
API Reference
Switch
Switch extends Stack views inheriting all the
Tamagui standard props, plus:
Props
labeledBy
string
Set aria-labeled-by.
name
string
Equivalent to input name.
value
string
Give it a value (for use in HTML forms).
checked
boolean
Control the input.
defaultChecked
boolean
Uncontrolled default value.
required
boolean
Sets aria-required.
onCheckedChange
(checked: boolean) => void
Callback called when checked state changes.
unstyled
boolean
Default:
falseWhen true, removes all default Tamagui styling.
native
NativeValue<"mobile" | "ios" | "android">
Render to a native switch. (Not supported on web)
nativeProps
SwitchProps (from `react-native`)
Props to pass to the native Switch.
activeStyle
ViewStyle
Styles to apply when the switch is checked/active.
activeTheme
string | null
Theme to apply when the switch is checked/active.
Switch.Thumb
Switch.Thumb extends Stack views inheriting all the
Tamagui standard props, plus:
Props
unstyled
boolean
Default:
falseWhen true, removes all default Tamagui styling.
activeStyle
ViewStyle
Styles to apply to the thumb when the switch is checked/active.