



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.
Aaron
Abigail
Aglae
Aiyana
@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.
Kaylietown
Lake Jacques
Cecileland
West Nicola
North Elenabury
Lake Marlene
Mistyfort
Lake Trevorbury
Jacobiview
Baronshire
Cronaside
Goldnerville
Hauckmouth
Goodwinburgh
Pfannerstillburgh
Nikolausside
New Delbertborough
North Ressie
Brekkeside
Rowefurt
Grovermouth
West Vince
Heidiburgh
Trompton
Loweview
Sanfordtown
New Earnestport
East Stephania
Beahanhaven
Emmanuelleland
East Ahmadstad
New Brigitte
East Elzaberg
Giuseppemouth
Mosciskistad
Robertsstad
Port Jakob
Miracleshire
South Amberport
Klington
Walkerton
Schultzville
Port Cydneyton
Lednerborough
Destinybury
New Alecbury
New Metashire
North Jaylinshire
West Vidalstad
South Nichole
New Kaileeburgh
Port Karineport
West Eric
Reneehaven
Zoilaburgh
Oberbrunnermouth
New Donny
Beulahton
Lake Gardnerhaven
East Declanburgh
Sigmundmouth
Lynchstad
Lake Gisselleland
North Elmirastad
West Ashly
Ferrychester
West Eliseo
Hettingershire
Lake Deion
Aryannamouth
Lake Ottis
North Isaihaven
Port Miller
Lake Bradleyshire
Andersonville
Idellburgh
Schillerburgh
Kirlinland
Jenkinsbury
Berniceshire
North Derekchester
Euniceside
Carmelomouth
South Kaelyn
New Sylvester
Simbury
South Jamieburgh
Prohaskastad
New Earleneside
Bergeside
Lake Magnusview
Vitoshire
Bodebury
New Forestburgh
East Devynchester
New Eulah
West Keegan
New Devin
South Krystel
Jaylinville
@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 | Rosina | Kaylietown |
2 | Darron | Lake Jacques |
3 | Mireya | Cecileland |
4 | Constance | West Nicola |
@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 | ||||
---|---|---|---|---|---|
66 | Aaron |
earl81
|
Ferrychester | ||
Hello, Aaron!
|
|||||
64 | Abigail |
juanita.rohan
|
North Elmirastad | ||
Hello, Abigail!
|
|||||
91 | Aglae |
ncasper
|
Lake Magnusview | ||
Hello, Aglae!
|
@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