Guides
Navigation
Feedback
Overlays
Layout
Data Display
Forms
.md

Forms

toggle-group

A joined set of toggles, single or multiple selection.

Installation

php artisan ui:add toggle-group

Usage

{{-- Single select: submits align=center --}}
<x-ui.toggle-group name="align" variant="outline">
    <x-ui.toggle-group.item value="left">Left</x-ui.toggle-group.item>
    <x-ui.toggle-group.item value="center" :pressed="true">Center</x-ui.toggle-group.item>
    <x-ui.toggle-group.item value="right">Right</x-ui.toggle-group.item>
</x-ui.toggle-group>

{{-- Multi select: submits style[]=bold&style[]=italic --}}
<x-ui.toggle-group name="style" :multiple="true">
    <x-ui.toggle-group.item value="bold">Bold</x-ui.toggle-group.item>
    <x-ui.toggle-group.item value="italic">Italic</x-ui.toggle-group.item>
</x-ui.toggle-group>

{{-- size: sm, md (default) or lg, applied to every item --}}
<x-ui.toggle-group name="zoom" size="sm">
    <x-ui.toggle-group.item value="50">50%</x-ui.toggle-group.item>
    <x-ui.toggle-group.item value="100">100%</x-ui.toggle-group.item>
</x-ui.toggle-group>

Native radios (single) or checkboxes (multiple), so no JavaScript; radios also give arrow-key navigation for free. Set `multiple`, `name`, `variant` and `size` on the group; items read them via @aware.

Props

Every prop with its default. Pass any of them as attributes, using : to bind a PHP value.

@props([
    'multiple' => false,
    'name' => 'toggle-group',
    'variant' => 'default',
    'size' => 'md',
])