neura-ui / neura-kit
A beautiful component library for Laravel applications
Requires
- php: ^8.2
- illuminate/support: ^11.0|^12.0|^13.0
- illuminate/view: ^11.0|^12.0|^13.0
- livewire/livewire: ^3.0|^4.0
- wireui/heroicons: ^2.0
Requires (Dev)
- orchestra/testbench: ^9.0|^10.0|^11.0
- phpunit/phpunit: ^11.0
Suggests
- livewire/livewire: ^3.0|^4.0 Required for Livewire components (ModalManager, Table, ModalComponent)
- wireui/heroicons: ^2.0 Required for icon components
- dev-main
- 2.0.0
- v1.1.17
- v1.1.16
- v1.1.15
- v1.1.14
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.48
- v1.0.47
- v1.0.46
- v1.0.45
- v1.0.44
- v1.0.43
- v1.0.42
- v1.0.41
- v1.0.40
- v1.0.39
- v1.0.38
- v1.0.37
- v1.0.36
- v1.0.35
- v1.0.34
- v1.0.33
- v1.0.32
- v1.0.31
- v1.0.30
- v1.0.29
- v1.0.28
- v1.0.27
- v1.0.26
- v1.0.25
- v1.0.24
- v1.0.23
- v1.0.22
- v1.0.21
- v1.0.20
- v1.0.19
- v1.0.18
- v1.0.17
- v1.0.16
- v1.0.15
- v1.0.14
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2026-05-21 19:13:41 UTC
README
Open-source UI component library for Laravel, Livewire, and Alpine.js — forms, tables, modals, toasts, dark mode, and 60+ Blade components with a consistent design system.
| Resource | URL |
|---|---|
| Documentation | docs.neuraui.dev |
| Website | neuraui.dev |
| Changelog | CHANGELOG.md |
2.0 is fully open source (MIT). No license key, activation, or vendor dashboard required.
Documentation
The README covers a quick start. For installation steps, component props, layouts, theming, and live examples, use the official docs:
| Section | What you will find |
|---|---|
| Getting started | Installation, Vite, @neuraKit, first components |
| Usage | Blade syntax, Livewire patterns |
| Dark mode & theming | Theme tokens and customization |
| Components | Every atom with examples (Button, Table, Modal, Editor, …) |
Requirements
- PHP 8.2+
- Laravel 11, 12, or 13
- Livewire 3 or 4
- Tailwind CSS 4+
- Alpine.js 3+
Quick start
1. Install the package
composer require neura-ui/neura-kit:^2.0
2. Register the Vite plugin
In vite.config.js:
import neuraKit from './vendor/neura-ui/neura-kit/resources/js/index.ts'; export default defineConfig({ plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.js'] }), neuraKit(), ], });
Import Neura Kit styles in your main CSS (see Installation for the full app.css setup).
3. Optional PHP dependencies
For Editor.js, charts, kanban, and other optional features:
php artisan neura-kit:install-deps
4. Enable managers in your layout
Add @neuraKit before </body> so modals, sideovers, and spotlight work globally:
<body> {{ $slot }} @neuraKit </body>
5. Use components
<neura::button variant="primary">Save</neura::button> <neura::input type="email" wire:model="email" placeholder="Email" /> <neura::card> <neura::heading size="lg">Dashboard</neura::heading> <neura::text>Build faster with Neura Kit.</neura::text> </neura::card>
Run npm run dev (or npm run build) after changing Vite or CSS.
What is included
| Area | Highlights |
|---|---|
| Forms | Input, Select, Checkbox, Radio, Switch, OTP, DatePicker, Dropzone, Editor.js, TagsInput, … |
| Layout | Container, Grid, Stack, Card, Sidebar patterns |
| Feedback | Toast, Dialog, Modal, Sideover, Alert, Callout |
| Data | Table (Livewire), Chart, Kanban, Tree, Flow |
| UX | Command palette, Spotlight, dark mode, theme switcher |
Browse the full list with interactive examples on docs.neuraui.dev.
Modals (Livewire)
Create a modal component:
php artisan neura-kit:make-modal UserEdit
use Neura\Kit\Support\Modal\ModalComponent; use Neura\Kit\Concerns\InteractsWithNeuraKit; class UserEdit extends ModalComponent { use InteractsWithNeuraKit; public User $user; public function save(): void { $this->user->save(); $this->toast('User saved!')->success(); $this->closeModal(); } public static function modalMaxWidth(): string { return 'lg'; } public function render() { return view('livewire.user-edit'); } }
Open from another component:
$this->openModal(UserEdit::class, ['user' => $user]); // or fluent API $this->modal(UserEdit::class)->with(['user' => $user])->maxWidth('xl')->open();
From JavaScript:
<button @click="NeuraKit.modal('user-edit').with({ userId: 1 }).open()"> Edit </button>
Details: Modal component docs.
Toasts & dialogs
Toasts (PHP)
$this->toast('Saved!')->success(); $this->toast('Something went wrong')->error(); $this->toast('Processing…')->duration(6000)->info();
Toasts (JavaScript)
<button @click="NeuraKit.toast('Saved!').success()">Save</button>
Confirm dialogs (PHP)
$this->dialog('Delete user?') ->danger() ->message('This action cannot be undone.') ->confirmText('Delete') ->onConfirm('deleteUser', $userId) ->show();
See Toast and Dialog on the docs site.
Dark mode
<button @click="$theme.toggle()">Toggle theme</button> <button @click="$theme.dark()">Dark</button> <button @click="$theme.light()">Light</button> <button @click="$theme.system()">System</button>
Configuration
Publish and customize defaults:
php artisan vendor:publish --tag=neura-kit-config
// config/neura-kit.php return [ 'component_prefix' => 'neura', 'routes' => [ // Default `web` works for public pages (e.g. documentation). // Use `web,auth` when upload/editor routes must require login. 'middleware' => explode(',', env('NEURA_KIT_ROUTE_MIDDLEWARE', 'web')), 'throttle' => env('NEURA_KIT_ROUTE_THROTTLE'), ], 'upload' => [ 'max_size' => (int) env('NEURA_KIT_UPLOAD_MAX_SIZE', 100), 'allowed_mimes' => env('NEURA_KIT_UPLOAD_ALLOWED_MIMES'), ], 'editor' => [ 'allow_remote_image_download' => (bool) env('NEURA_KIT_EDITOR_ALLOW_REMOTE_IMAGES', false), ], ];
Publish assets
php artisan vendor:publish --tag=neura-kit-config # config php artisan vendor:publish --tag=neura-kit-views # Blade overrides php artisan vendor:publish --tag=neura-kit-assets # JS/CSS into resources/ php artisan vendor:publish --tag=neura-lang # translations
PHP & JavaScript helpers
Use the InteractsWithNeuraKit trait on Livewire components for toast(), modal(), dialog(), and openModal().
| PHP | JavaScript |
|---|---|
$this->toast('…')->success() |
NeuraKit.toast('…').success() |
$this->modal(Class::class)->with([…])->open() |
NeuraKit.modal('name').with({…}).open() |
$this->dialog('Title')->danger()->show() |
NeuraKit.dialog('Title').danger().show() |
Development
composer install ./vendor/bin/phpunit
License
MIT License — see LICENSE.