Switch
Control to allow toggling between checked and not checked state.
#
Documentation
#
#
Usage
#
import { Switch } from "@optiaxiom/react";
export function App() {
return <Switch>Label</Switch>;
}
#
Label
#
The children
prop is used as the label of the switch control.
import { Flex, Separator, Switch } from "@optiaxiom/react";
export function App() {
return (
<Flex flexDirection="row">
<Switch>Label</Switch>
<Separator orientation="vertical" />
<Switch />
</Flex>
);
}
#
Sizes
#
Use the size
prop to control the size of the switch control.
import type { ComponentPropsWithRef } from "react";
import { Switch } from "@optiaxiom/react";
export function App({
size,
}: Pick<ComponentPropsWithRef<typeof Switch>, "size">) {
return <Switch size={size}>Label</Switch>;
}
#
Disabled state
#
Enable the disabled
prop to toggle the disabled state of the input field.
import { Flex, Switch } from "@optiaxiom/react";
export function App() {
return (
<Flex flexDirection="row">
<Switch defaultChecked disabled>
Label
</Switch>
<Switch disabled>Label</Switch>
</Flex>
);
}
#
Controlled
#
Use the checked
and defaultChecked
props to toggle between controlled and uncontrolled usage. And combine it with onCheckedChange
to listen for changes to the state.
import { Button, Flex, Switch } from "@optiaxiom/react";
import { useState } from "react";
export function App() {
const [value, setValue] = useState(false);
return (
<Flex flexDirection="row">
<Switch checked={value} onCheckedChange={setValue}>
Label
</Switch>
<Button disabled={!value} onClick={() => setValue(false)}>
Reset
</Button>
</Flex>
);
}
#
Related
#
Checkbox
Basic control to allow selecting one or more items from a set.
RadioGroup
Basic control to allow selecting only one item from a set.
#
Props
#
#
Switch
#
Supports all Box props in addition to its own. Renders a <div>
element but forwards all props to a hidden <input>
element.
Prop |
---|
asChild Change the default rendered element for the one passed as a child, merging their props and behavior. Read the Composition guide for more details. false | true |
className string |
description Add helper text after the label. ReactNode |
onCheckedChange (checked: boolean) => void |
size Control the size of the switch. "md" | "lg" Default: md |
#
Changelog
#
#
0.1.0
#
- Added component