Switch
A toggle control for switching between on and off states.
ui/switch.tsx
"use client";
import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
import type * as React from "react";
import { cn } from "@/lib/utils";
const Switch = ({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) => (
<SwitchPrimitive.Root
className={cn(
"peer inline-flex h-[24px] w-[42px] shrink-0 cursor-pointer items-center rounded-full transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background data-disabled:cursor-not-allowed data-checked:bg-primary data-unchecked:bg-input data-disabled:opacity-50 data-unchecked:hover:bg-input-hover",
className,
)}
data-slot="switch"
{...props}
>
<SwitchPrimitive.Thumb
className={cn(
"pointer-events-none block size-[18px] rounded-full bg-card shadow-lg ring-0 transition-transform data-checked:translate-x-[21px] data-unchecked:translate-x-[3px] dark:bg-card-foreground",
)}
data-slot="switch-thumb"
/>
</SwitchPrimitive.Root>
);
export { Switch };
- Where it goes
- stats
- Interaction
- animated-counter
DependenciesBundle weight · light
- ui-primitives
- @base-ui/react