Skip to content

Toggle

A two-state button that can be either on or off.

---
import { BookmarkIcon } from '@lucide/astro';
import { Toggle } from '@bejamas/ui/components/toggle';
---
<Toggle aria-label="Toggle bookmark" size="sm" variant="outline">
<BookmarkIcon />
Bookmark
</Toggle>
Terminal window
bunx bejamas add toggle
---
import { Toggle } from '@bejamas/ui/components/toggle';
import { BoldIcon } from '@lucide/astro';
---
<Toggle aria-label="Toggle bold">
<BoldIcon />
</Toggle>
---
import { BoldIcon, ItalicIcon } from '@lucide/astro';
import { Toggle } from '@bejamas/ui/components/toggle';
---
<div class="flex items-center gap-2">
<Toggle variant="outline" aria-label="Toggle bold">
<BoldIcon />
Bold
</Toggle>
<Toggle variant="outline" aria-label="Toggle italic">
<ItalicIcon />
Italic
</Toggle>
</div>
---
import { ItalicIcon } from '@lucide/astro';
import { Toggle } from '@bejamas/ui/components/toggle';
---
<Toggle variant="outline" aria-label="Toggle italic">
<ItalicIcon />
Italic
</Toggle>
---
import { Toggle } from '@bejamas/ui/components/toggle';
---
<div class="flex items-center gap-2">
<Toggle size="sm" variant="outline" aria-label="Toggle small">
Small
</Toggle>
<Toggle size="default" variant="outline" aria-label="Toggle default">
Default
</Toggle>
<Toggle size="lg" variant="outline" aria-label="Toggle large">
Large
</Toggle>
</div>
---
import { Toggle } from '@bejamas/ui/components/toggle';
---
<div class="flex items-center gap-2">
<Toggle disabled aria-label="Toggle bold">
Disabled
</Toggle>
<Toggle disabled variant="outline" aria-label="Toggle italic">
Disabled
</Toggle>
</div>
EventDetailDescription
toggle:change{ pressed: boolean }Fired when the toggle state changes
// Set toggle state programmatically
element.dispatchEvent(new CustomEvent('toggle:set', { detail: { value: true } }));
AttributeElementDescription
data-statetoggleCurrent state: on or off
data-disabledtogglePresent when toggle is disabled