Installation
Requirements
- PHP 8.3 or higher
- Laravel 12.0 or 13.0
Install via Composer
composer require basekit-laravel/basekit-laravel-uiThe package will be auto-discovered by Laravel.
Publish Configuration
Publish the configuration file to customize component settings:
php artisan vendor:publish --tag=basekit-laravel-ui-configThis will create config/basekit-laravel-ui.php where you can:
- Enable/disable components
- Configure variants and sizes
- Set default values
- Customize icon styles
Include CSS in Your App (Recommended)
Import the prebuilt CSS directly from the Composer package:
/* resources/css/app.css */
@import "../../vendor/basekit-laravel/basekit-laravel-ui/resources/css/dist/v1/theme.css";This works out of the box after composer install / composer update and does not require publishing CSS or running basekit:ui:build.
Change Theme Color in 30 Seconds
Override Basekit color tokens in your app stylesheet:
/* resources/css/app.css */
:root {
--color-primary-500: #8b5cf6;
--color-primary-600: #7c3aed;
--color-primary-700: #6d28d9;
}After saving, rebuild your app assets (for example Vite) so the updated CSS is served.
Optional: Publish or Build CSS
Skip this section if you're using the recommended @import approach. These options are for when you want CSS files under public/ or a config-driven optimized build.
Option A — Publish prebuilt CSS
Copies the ready-to-use CSS into your public/ directory:
php artisan vendor:publish --tag=basekit-laravel-ui-css-v1Then include it in your layout:
<link href="{{ asset('vendor/basekit-laravel/v1/basekit-ui.css') }}" rel="stylesheet">Option B — Build CSS from config
Generates a bundle in public/vendor/basekit-laravel/v1/basekit-ui.css based on enabled components in config/basekit-laravel-ui.php.
1. Publish configuration
php artisan vendor:publish --tag=basekit-laravel-ui-config2. Build
php artisan basekit:ui:buildFor watch mode during development:
php artisan basekit:ui:build --watch3. Include the built file
/* resources/css/app.css */
@import "../../public/vendor/basekit-laravel/v1/basekit-ui.css";Alpine.js (Required for Interactive Components)
Several Basekit components depend on Alpine.js for interactivity: Accordion, Dropdown Menu, Input (password toggle, number input, masked inputs), Modal, Multi-Select, Tabs, Toast, Tooltip, and Table.
Install Alpine.js
Include Alpine.js in your layout file:
<!-- resources/views/layouts/app.blade.php -->
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>Or via NPM (if using build tools like Vite):
npm install alpinejsThen in your JavaScript:
// resources/js/app.js
import Alpine from "alpinejs";
Alpine.start();Using with Livewire
If you're using Livewire, add @livewireScripts to your layout to include Alpine.js and Livewire's Alpine integration:
<!-- resources/views/layouts/app.blade.php -->
<body>
<!-- Your content -->
@livewireScripts
</body>This provides Alpine.js alongside Livewire's component lifecycle integration.
Which Components Need Alpine.js?
- Accordion — Collapsible sections
- Dropdown Menu — Interactive menu toggle
- Input — Password visibility toggle, Masked and Number Inputs
- Modal — Modal dialogs with transitions
- Multi-Select — Chip selection and dropdown
- Tabs — Tab switching
- Toast — Notification toasts
- Tooltip — Hover and focus tooltips
- Table — Column visibility menu and row expansion
Verify Installation
Test that components are working:
<x-basekit-ui::button variant="primary">
It works!
</x-basekit-ui::button>