Installation:
composer require schaefersoft/laravel-ui
Publish assets (if needed):
php artisan vendor:publish --provider="Schaefersoft\LaravelUI\LaravelUIServiceProvider" --tag=public
Tailwind Configuration:
Update tailwind.config.js as per the README, ensuring:
@tailwindcss/forms plugin is added.content.First Use Case:
Include the package’s base styles in your resources/css/app.css:
@import 'vendor/schaefersoft/laravel-ui/resources/css/laravel-ui';
Use a component (e.g., a button) in a Blade template:
<x-laravel-ui::button type="primary">Click Me</x-laravel-ui::button>
Blade Components: The package provides reusable Blade components (e.g., buttons, modals, alerts). Use them via:
@laravelUI('button', ['type' => 'success'], 'Save')
Or as standalone:
<x-laravel-ui::button type="danger">Delete</x-laravel-ui::button>
Dynamic Styling: Leverage Tailwind’s arbitrary values for customization:
<x-laravel-ui::button :class="{ 'bg-blue-500': $isPrimary }">Submit</x-laravel-ui::button>
JavaScript Dependencies: For interactive components (e.g., modals), include the package’s JS:
<script src="{{ asset('vendor/schaefersoft/laravel-ui/resources/js/laravel-ui.js') }}"></script>
Initialize components via data attributes:
<x-laravel-ui::modal id="example-modal" data-target="#modal-content">
<!-- Modal content -->
</x-laravel-ui::modal>
Form Integration:
Use the @tailwindcss/forms plugin for styled inputs:
<x-laravel-ui::input type="email" name="email" placeholder="Email" />
Pair with validation feedback:
@error('email')
<x-laravel-ui::alert type="error">{{ $message }}</x-laravel-ui::alert>
@enderror
Layout Templates: Extend the package’s base layout (if published) for consistency:
@extends('laravel-ui::layouts.app')
@section('content')
<!-- Your content -->
@endsection
Missing Tailwind Setup:
tailwind.config.js isn’t updated.content paths and plugins are correctly configured.Theme Color Overrides:
!important sparingly; prefer Tailwind’s utility classes for overrides:
.custom-button { @apply bg-theme-500 !important; }
JavaScript Conflicts:
<script src="{{ asset('vendor/schaefersoft/laravel-ui/resources/js/laravel-ui.js') }}" defer></script>
Component Naming:
x-laravel-ui::button).Asset Publishing:
npm run dev
safelist in tailwind.config.js for dynamic classes:
safelist: [
'bg-theme-500',
'text-theme-100',
// Add other dynamic classes
],
Custom Components:
Extend existing components by copying Blade files from vendor/ to resources/views/vendor/laravel-ui/ and modify them.
Theme Customization:
Override the default theme colors by extending the colors object in tailwind.config.js:
extend: {
colors: {
theme: {
DEFAULT: '#f49d0c', // Override default 500
// Add custom shades
}
}
}
Localization:
The package lacks built-in localization. Add translations via Laravel’s lang files:
// resources/lang/en/laravel-ui.php
return [
'button' => [
'save' => 'Save Changes',
],
];
Use in Blade:
<x-laravel-ui::button>{{ __('laravel-ui.button.save') }}</x-laravel-ui::button>
Dark Mode:
Enable Tailwind’s dark mode in tailwind.config.js:
darkMode: 'class',
Use dark: variants in components:
<x-laravel-ui::button :class="{ 'dark:bg-theme-700': true }">Dark Button</x-laravel-ui::button>
How can I help you explore Laravel packages today?