



Gorgeous UI components for Livewire
powered by daisyUI and Tailwind
Be amazed at how much you can achieve with minimal effort.
Demos
Lists
@php $users = App\Models\User::take(3)->get();@endphp @foreach($users as $user) <x-list-item :item="$user" sub-value="username" link="/docs/installation"> <x-slot:actions> <x-button icon="o-trash" wire:click="delete({{ $user->id }})" spinner /> </x-slot:actions> </x-list-item>@endforeach
Multi selection
No results found.
Ada
Albertha
Alexandrine
Alfonzo
@php $users = $this->users; @endphp <x-choices label="Users - server side" wire:model="selected_users" :options="$users" icon="o-bolt" hint="Search happens on server side" searchable />
No results found.
Rossiefurt
Blickchester
East Vallie
Trompton
Rennerland
Herminioland
Lake Yadira
South Emelyview
Lake Sheridan
Simonemouth
South Lexiport
Queenmouth
D'Amorefurt
Murrayberg
Hayleyburgh
O'Konshire
West Elverashire
West Sisterside
Port Rosarioburgh
Gardnerport
Lake Kattiefurt
Deionfort
Howellville
Browntown
East Jamieport
Maggioland
Gibsonland
New Fannie
Edisonside
Evangelineport
West Della
West Ceasarshire
Anissaside
Zellaport
Lianamouth
Hyatttown
Lake Beatriceland
Port Ken
South Emory
Lake Opal
West Rylan
Leannonton
New Sierraside
New Marta
West Alexaneborough
Macejkovictown
Hillborough
North Neha
Isombury
Opalfurt
North Nelsmouth
South Vinnieton
Jaquelinshire
Dallaston
Jacobiside
East Betsyside
South Lelandtown
Leraville
Bertfort
East Lauryn
North Willie
Jaimemouth
Dimitriside
Port Darionside
Port Kristybury
Pabloport
Lake Reymundoton
Parkerbury
Satterfieldborough
Schillertown
Stokesland
Rosefurt
Rueckershire
Jordynburgh
Theronside
Lake Cydneyfurt
Lakinmouth
West Leatha
West Ben
Ernsermouth
New Lourdes
Klingburgh
North Eleonore
Handbury
South Michael
Herminastad
Abigailview
East Shayne
North Sydnie
Webermouth
West Verdieport
West Elissa
Port Virgiebury
East Angeline
Schusterberg
Marquisehaven
South Clay
New Tyrell
Hermannport
Jacobsville
@php $cities = App\Models\City::all(); @endphp <x-choices-offline label="Cities - frontend side" wire:model="selected_cities" :options="$cities" icon="s-bolt-slash" hint="Search happens on frontend side" searchable />
Forms
@php $cities = App\Models\City::take(3)->get(); $roles = [ ['id' => 1 , 'name' => 'Administrator', 'hint' => 'Can do anything.' ], ['id' => 2 , 'name' => 'Editor', 'hint' => 'Can not delete.' ], ]; @endphp <x-form wire:submit="save"> <x-input label="Name" wire:model="name" icon="o-user" placeholder="Full name" /> <x-input label="Amount" wire:model="amount" prefix="USD" money /> <x-select label="City" wire:model="city_id" icon="o-flag" :options="$cities" /> <x-range label="Level" wire:model="level" hint="Select a level" class="range-xs" /> <x-toggle label="E-mails" wire:model="email" hint="No spam, please." right /> <x-slot:actions> <x-button label="Cancel" /> <x-button label="Save" class="btn-primary" type="submit" spinner="save" /> </x-slot:actions></x-form>
Dialogs
Hello!
Click outside, on `CANCEL` button or `CLOSE` icon to close.
@php $showDrawer = $this->showDrawer; @endphp <x-button label="Open Drawer" wire:click="$toggle('showDrawer')" class="btn-primary btn-block" /><x-drawer wire:model="showDrawer" title="Hello!" with-close-button class="w-11/12 lg:w-1/3"> Click outside, on `CANCEL` button or `CLOSE` icon to close. <x-slot:actions> <x-button label="Cancel" wire:click="$toggle('showDrawer')" /> <x-button label="Confirm" class="btn-primary" /> </x-slot:actions></x-drawer>
@php $myModal = $this->myModal; @endphp <x-button label="Open Modal" wire:click="$toggle('myModal')" class="btn-warning btn-block" /> <x-modal wire:model="myModal" title="Hello"> Click outside, press `ESC` or click `CANCEL` button to close. <x-slot:actions> <x-button label="Cancel" wire:click="$toggle('myModal')" /> <x-button label="Confirm" class="btn-primary" /> </x-slot:actions></x-modal>
Easy tables
# | City | |
---|---|---|
1 | Creola | Rossiefurt |
2 | Ada | Blickchester |
3 | Kylie | East Vallie |
4 | Jedidiah | Trompton |
@php use App\Models\User; $users = User::with('city')->take(4)->get(); $headers = [ ['key' => 'id', 'label' => '#', 'class' => 'w-1 bg-warning/20'], # <-- CSS ['key' => 'name', 'label' => 'Nice Name', 'class' => 'hidden lg:table-cell'], # <-- responsive ['key' => 'city.name', 'label' => 'City'] # <-- nested object ];@endphp <x-table :rows="$users" :headers="$headers" striped />
Full tables
# | Nice Name | ||||
---|---|---|---|---|---|
2 | Ada |
hfeeney
|
Blickchester | ||
Hello, Ada!
|
|||||
79 | Albertha |
ymueller
|
West Ben | ||
Hello, Albertha!
|
|||||
78 | Alexandrine |
laury.grant
|
West Leatha | ||
Hello, Alexandrine!
|
@php use App\Models\User; // public array $expanded = []; // public array $sortBy = ['column' => 'name', 'direction' => 'asc']; $sortBy = $this->sortBy; $expanded = $this->expanded; $users = User::with('city') ->orderBy(...array_values($this->sortBy)) ->paginate(3); // Headers settings $headers = [ ['key' => 'id', 'label' => '#', 'class' => 'w-1'], # <-- CSS ['key' => 'name', 'label' => 'Nice Name'], ['key' => 'username', 'label' => 'Username', 'class' => 'hidden lg:table-cell'], # <--- responsive ['key' => 'city.name', 'label' => 'City', 'sortable' => false, 'class' => 'hidden lg:table-cell'] # <-- nested object ];@endphp <x-table wire:model="expanded" {{-- Controls rows expansion --}} :headers="$headers" :rows="$users" :sort-by="$sortBy" {{-- Make it sortable --}} link="/docs/components/table?user_id={id}&city={city.name}" {{-- Make rows clickable --}} expandable {{-- Make it expand --}} with-pagination {{-- Enable pagination --}}> {{-- Expansion slot --}} @scope('expansion', $user) <div class="border border-base-content/20 border-dashed rounded p-5 "> Hello, {{ $user->name }}! </div> @endscope {{-- Actions Slot --}} @scope('actions', $user) <x-button icon="o-trash" wire:click="delete({{ $user->id }})" spinner class="btn-circle btn-ghost" /> @endscope {{-- Cell scope --}} @scope('cell_username', $user) <x-badge :value="$user->username" class="badge-primary badge-soft" /> @endscope</x-table>
Enjoy a full set of UI components ...
LET`S DO IT