Components
- Accordion
- Alert
- Alert Dialog
- Ask User Questions
- Aspect Ratio
- Attachment
- Autocomplete
- Avatar
- Badge
- Bar List
- Breadcrumb
- Bubble
- Button
- Button Group
- Calendar
- Card
- Carousel
- Chat Message
- Checkbox
- Checkbox Group
- Circular Progress
- Collapsible
- Combobox
- Command
- Context Menu
- Copy Button
- Currency Input
- Data Table
- Date Picker
- Dialog
- Drawer
- Dropdown Menu
- Empty
- Field
- Hover Card
- Input
- Input Group
- Input Message
- Input OTP
- Item
- Kbd
- Label
- Marker
- Menubar
- Message
- Message Scroller
- Meter
- Multi Combobox
- Native Select
- Navigation Menu
- Number Field
- Pagination
- Phone Input
- Popover
- Progress
- Progress List
- Prompt
- Radio Group
- Resizable
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Stat
- Switch
- Table
- Tabs
- Textarea
- Thinking Indicator
- Thinking Steps
- Toggle
- Toggle Group
- Tooltip
- Typography
Loading...
import { BookmarkFilledIcon, BookmarkIcon } from "blode-icons-react";
import { Toggle } from "@/components/ui/toggle";
export const ToggleDemo = () => (
<Toggle
aria-label="Toggle bookmark"
render={(props, state) => (
<button type="button" {...props}>
{state.pressed ? <BookmarkFilledIcon /> : <BookmarkIcon />}
Bookmark
</button>
)}
size="sm"
variant="outline"
/>
);Installation
npx shadcn@latest add "https://ui.blode.co/r/styles/default/toggle"
Usage
import { Toggle } from "@/components/ui/toggle";<Toggle>Toggle</Toggle>Examples
Default
Loading...
import { BookmarkFilledIcon, BookmarkIcon } from "blode-icons-react";
import { Toggle } from "@/components/ui/toggle";
export const ToggleDemo = () => (
<Toggle
aria-label="Toggle bookmark"
render={(props, state) => (
<button type="button" {...props}>
{state.pressed ? <BookmarkFilledIcon /> : <BookmarkIcon />}
Bookmark
</button>
)}
size="sm"
variant="outline"
/>
);Outline
Loading...
import { BoldIcon, ItalicIcon } from "blode-icons-react";
import { Toggle } from "@/components/ui/toggle";
export const ToggleOutline = () => (
<div className="flex flex-wrap items-center gap-2">
<Toggle aria-label="Toggle italic" variant="outline">
<ItalicIcon />
Italic
</Toggle>
<Toggle aria-label="Toggle bold" variant="outline">
<BoldIcon />
Bold
</Toggle>
</div>
);With Text
Loading...
import { ItalicIcon } from "blode-icons-react";
import { Toggle } from "@/components/ui/toggle";
export const ToggleText = () => (
<Toggle aria-label="Toggle italic">
<ItalicIcon />
Italic
</Toggle>
);Small
Loading...
import { Toggle } from "@/components/ui/toggle";
export const ToggleSizes = () => (
<div className="flex flex-wrap items-center gap-2">
<Toggle aria-label="Toggle small" size="sm" variant="outline">
Small
</Toggle>
<Toggle aria-label="Toggle default" size="default" variant="outline">
Default
</Toggle>
<Toggle aria-label="Toggle large" size="lg" variant="outline">
Large
</Toggle>
</div>
);Large
Loading...
import { Toggle } from "@/components/ui/toggle";
export const ToggleSizes = () => (
<div className="flex flex-wrap items-center gap-2">
<Toggle aria-label="Toggle small" size="sm" variant="outline">
Small
</Toggle>
<Toggle aria-label="Toggle default" size="default" variant="outline">
Default
</Toggle>
<Toggle aria-label="Toggle large" size="lg" variant="outline">
Large
</Toggle>
</div>
);Disabled
Loading...
import { Toggle } from "@/components/ui/toggle";
export const ToggleDisabled = () => (
<div className="flex flex-wrap items-center gap-2">
<Toggle aria-label="Toggle disabled" disabled>
Disabled
</Toggle>
<Toggle aria-label="Toggle disabled outline" disabled variant="outline">
Disabled
</Toggle>
</div>
);