basekit-laravel / basekit-laravel-ui
A modular Laravel UI component library with reusable Blade components, Tailwind 4 theming, and a built-in style guide.
Package info
github.com/basekit-laravel/basekit-laravel-ui
Language:HTML
pkg:composer/basekit-laravel/basekit-laravel-ui
Requires
- php: ^8.3
- blade-ui-kit/blade-heroicons: ^2.0
- gehrisandro/tailwind-merge-laravel: ^1.4
- illuminate/support: ^12.0|^13.0
- illuminate/view: ^12.0|^13.0
Requires (Dev)
- larastan/larastan: ^3.9
- laravel/pint: ^1.29
- orchestra/testbench: ^11.1
- pestphp/pest: ^4.6
- pestphp/pest-plugin-laravel: ^4.1
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^2.1
- phpstan/phpstan-strict-rules: ^2.0
- rector/rector: ^2.4
This package is auto-updated.
Last update: 2026-04-22 08:48:35 UTC
README
A modular Laravel 12 UI component library with reusable Blade components, Tailwind 4 CSS theming, and component-aware CSS builds for optimal performance.
Features
- 🎨 Tailwind 4 CSS-based theming - Runtime customization via CSS variables
- 🔧 Highly configurable - Enable/disable components, customize variants and sizes
- 🌲 Component-aware CSS build - Include CSS only for enabled components
- 🎯 Type-safe components - PHP classes with IDE autocomplete
- ✨ Heroicons integration - Beautiful icons out of the box
- 📦 Publishable views - Customize component templates directly
Installation
Basic Setup
Install via Composer:
composer require basekit-laravel/basekit-laravel-ui
Include the CSS in your main CSS file:
@import "./vendor/basekit-laravel/v1/basekit-ui.css";
Include Alpine.js
Several Basekit components (Accordion, Dropdown Menu, Input password toggle, Modal, Multi-Select, Tabs, Toast, Tooltip, and Table) require Alpine.js. Add it to your layout:
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
Or with Livewire, use @livewireScripts which includes Alpine.js automatically:
@livewireScripts
See the installation guide for more details.
Advanced Setup
Publish the configuration file:
php artisan vendor:publish --tag=basekit-laravel-ui-config
Publish the CSS theme:
php artisan vendor:publish --tag=basekit-laravel-ui-css-v1
Build optimized CSS based on your configuration:
php artisan basekit:ui:build
For development, use watch mode:
php artisan basekit:ui:build --watch
Quick Start
<x-basekit-ui::button variant="primary" icon="check"> Save Changes </x-basekit-ui::button> <x-basekit-ui::input label="Email" placeholder="Enter your email" icon="envelope" /> <x-basekit-ui::card> <x-slot:header> <h3>Card Title</h3> </x-slot> Card content goes here... <x-slot:footer> <x-basekit-ui::button>Action</x-basekit-ui::button> </x-slot> </x-basekit-ui::card>
Styling Conventions
- Component CSS uses BEM with the
bk-prefix (blocks, elements, and modifiers). - Tailwind utilities are for component usage in Blade markup (layout, spacing, overrides).
- When combining classes, Tailwind Merge handles conflicts for the
classattribute.
Configuration
Edit config/basekit-laravel-ui.php to customize components:
return [ 'components' => [ 'button' => [ 'enabled' => true, 'variants' => ['primary', 'secondary', 'danger'], 'sizes' => ['sm', 'md', 'lg'], 'default_variant' => 'primary', 'default_size' => 'md', ], // ... more components ], 'icons' => [ 'style' => 'outline', // outline, solid, mini ], 'build' => [ 'debounce_ms' => 500, ], ];
After changing configuration, rebuild CSS:
php artisan basekit:ui:build
For development, use watch mode:
php artisan basekit:ui:build --watch
Customization
CSS Variables
Override theme variables in your CSS:
:root { --color-primary-600: #your-brand-color; --button-radius: 0.5rem; --card-padding: 2rem; }
Publishing Views
Publish component views for full customization:
php artisan vendor:publish --tag=basekit-views
Published views are copied to resources/views/vendor/basekit/ and automatically override package components.
Available Components
The package includes 33 production-ready components organized into 6 categories:
Form Components (8)
Feedback Components (7)
Navigation Components (5)
Layout Components (4)
Display Components (7)
Dialog & Overlay (2)
Documentation
Full documentation available at: https://basekit-laravel.github.io/basekit-laravel-ui
See also:
- IMPLEMENTATION.md — Architecture and development guide
- STRUCTURE.md — Component organization and relationships
CI Quality Checks
The CI workflow validates production readiness on pushes and pull requests by running:
- Feature tests:
php vendor/bin/pest --no-coverage - CSS build:
./vendor/bin/testbench basekit:ui:build - Styleguide generation:
./vendor/bin/testbench basekit:ui:styleguide - CSS/docs token sync guard:
bash tools/verify-doc-token-sync.sh
You can run these locally before opening a pull request.
Performance
Component-based builds can significantly reduce bundle size:
- Full bundle (all components): ~200KB
- Minimal config (3 components): ~55KB
- Reduction: 73%
Migration
See CHANGELOG.md for version changes and migration guides.
License
The MIT License (MIT). Please see License File for more information.