Get Started
Migration
Components
- Accordion
- Alert Dialog
- Alert
- Aspect Ratio
- Avatar
- Badge
- Breadcrumb
- Button
- Calendar
- Card
- Carousel
- Chart
- Checkbox
- Collapsible
- Combobox
- Command
- Context Menu
- Data Table
- Date Picker
- Dialog
- Drawer
- Dropdown Menu
- Formsnap
- Hover Card
- Input OTP
- Input
- Label
- Menubar
- Navigation Menu
- Pagination
- Popover
- Progress
- Radio Group
- Range Calendar
- Resizable
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Switch
- Table
- Tabs
- Textarea
- Toggle Group
- Toggle
- Tooltip
- Typography
Installation
Special sponsor
We're looking for one partner to be featured here.
Support the project and reach thousands of developers.
Reach out<script lang="ts">
import BoldIcon from "@lucide/svelte/icons/bold";
import ItalicIcon from "@lucide/svelte/icons/italic";
import UnderlineIcon from "@lucide/svelte/icons/underline";
import * as ToggleGroup from "$lib/components/ui/toggle-group/index.js";
</script>
<ToggleGroup.Root variant="outline" type="multiple">
<ToggleGroup.Item value="bold" aria-label="Toggle bold">
<BoldIcon className="h-4 w-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="italic" aria-label="Toggle italic">
<ItalicIcon className="h-4 w-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="strikethrough" aria-label="Toggle strikethrough">
<UnderlineIcon className="h-4 w-4" />
</ToggleGroup.Item>
</ToggleGroup.Root>
Installation
pnpm dlx shadcn-svelte@latest add toggle-group
npx shadcn-svelte@latest add toggle-group
bun x shadcn-svelte@latest add toggle-group
npx shadcn-svelte@latest add toggle-group
Install bits-ui
:
pnpm i bits-ui -D
npm i bits-ui -D
bun install bits-ui -D
yarn install bits-ui -D
Copy and paste the component source files linked at the top of this page into your project.
Usage
<script lang="ts">
import * as ToggleGroup from "$lib/components/ui/toggle-group/index.js";
</script>
<ToggleGroup.Root type="single">
<ToggleGroup.Item value="a">A</ToggleGroup.Item>
<ToggleGroup.Item value="b">B</ToggleGroup.Item>
<ToggleGroup.Item value="c">C</ToggleGroup.Item>
</ToggleGroup.Root>
Examples
Default
<script lang="ts">
import BoldIcon from "@lucide/svelte/icons/bold";
import ItalicIcon from "@lucide/svelte/icons/italic";
import UnderlineIcon from "@lucide/svelte/icons/underline";
import * as ToggleGroup from "$lib/components/ui/toggle-group/index.js";
</script>
<ToggleGroup.Root variant="outline" type="multiple">
<ToggleGroup.Item value="bold" aria-label="Toggle bold">
<BoldIcon className="h-4 w-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="italic" aria-label="Toggle italic">
<ItalicIcon className="h-4 w-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="strikethrough" aria-label="Toggle strikethrough">
<UnderlineIcon className="h-4 w-4" />
</ToggleGroup.Item>
</ToggleGroup.Root>
Outline
<script lang="ts">
import BoldIcon from "@lucide/svelte/icons/bold";
import ItalicIcon from "@lucide/svelte/icons/italic";
import UnderlineIcon from "@lucide/svelte/icons/underline";
import * as ToggleGroup from "$lib/components/ui/toggle-group/index.js";
</script>
<ToggleGroup.Root variant="outline" type="multiple">
<ToggleGroup.Item value="bold" aria-label="Toggle bold">
<BoldIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="italic" aria-label="Toggle italic">
<ItalicIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="strikethrough" aria-label="Toggle strikethrough">
<UnderlineIcon class="size-4" />
</ToggleGroup.Item>
</ToggleGroup.Root>
Single
<script lang="ts">
import BoldIcon from "@lucide/svelte/icons/bold";
import ItalicIcon from "@lucide/svelte/icons/italic";
import UnderlineIcon from "@lucide/svelte/icons/underline";
import * as ToggleGroup from "$lib/components/ui/toggle-group/index.js";
</script>
<ToggleGroup.Root type="single">
<ToggleGroup.Item value="bold" aria-label="Toggle bold">
<BoldIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="italic" aria-label="Toggle italic">
<ItalicIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="strikethrough" aria-label="Toggle strikethrough">
<UnderlineIcon class="size-4" />
</ToggleGroup.Item>
</ToggleGroup.Root>
Small
<script lang="ts">
import BoldIcon from "@lucide/svelte/icons/bold";
import ItalicIcon from "@lucide/svelte/icons/italic";
import UnderlineIcon from "@lucide/svelte/icons/underline";
import * as ToggleGroup from "$lib/components/ui/toggle-group/index.js";
</script>
<ToggleGroup.Root size="sm" type="multiple">
<ToggleGroup.Item value="bold" aria-label="Toggle bold">
<BoldIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="italic" aria-label="Toggle italic">
<ItalicIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="strikethrough" aria-label="Toggle strikethrough">
<UnderlineIcon class="size-4" />
</ToggleGroup.Item>
</ToggleGroup.Root>
Large
<script lang="ts">
import BoldIcon from "@lucide/svelte/icons/bold";
import ItalicIcon from "@lucide/svelte/icons/italic";
import UnderlineIcon from "@lucide/svelte/icons/underline";
import * as ToggleGroup from "$lib/components/ui/toggle-group/index.js";
</script>
<ToggleGroup.Root size="lg" type="multiple">
<ToggleGroup.Item value="bold" aria-label="Toggle bold">
<BoldIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="italic" aria-label="Toggle italic">
<ItalicIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="strikethrough" aria-label="Toggle strikethrough">
<UnderlineIcon class="size-4" />
</ToggleGroup.Item>
</ToggleGroup.Root>
Disabled
<script lang="ts">
import BoldIcon from "@lucide/svelte/icons/bold";
import ItalicIcon from "@lucide/svelte/icons/italic";
import UnderlineIcon from "@lucide/svelte/icons/underline";
import * as ToggleGroup from "$lib/components/ui/toggle-group/index.js";
</script>
<ToggleGroup.Root disabled type="single">
<ToggleGroup.Item value="bold" aria-label="Toggle bold">
<BoldIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="italic" aria-label="Toggle italic">
<ItalicIcon class="size-4" />
</ToggleGroup.Item>
<ToggleGroup.Item value="strikethrough" aria-label="Toggle strikethrough">
<UnderlineIcon class="size-4" />
</ToggleGroup.Item>
</ToggleGroup.Root>