gehrisandro/tailwind-merge-laravel
Merge Tailwind CSS classes in Laravel and automatically resolve conflicts (later classes win). Ideal for Blade components and directives. PHP/Laravel port of tailwind-merge. Supports Tailwind v3.0–v3.3 (Laravel 10+).
ComponentAttributesBag extensions). This minimizes architectural disruption for teams already using Laravel’s component system.classGroups in config/tailwind-merge.php, allowing adaptation to non-standard setups (e.g., custom colors, arbitrary values). This is critical for enterprise or design-system-heavy projects.composer require and optional config publishing. Ideal for greenfield Laravel/Tailwind projects.DeferrableProvider removal in v0.1.0).@twMerge), requiring zero changes to existing class-passing patterns (e.g., <x-button class="bg-blue-500">).TailwindMerge::merge(), twMerge()) for non-Blade contexts (e.g., API responses, dynamic HTML generation).classGroups could lead to incorrect merge behavior (e.g., failing to resolve custom color/spacing conflicts). Requires testing with edge cases (e.g., !important classes, arbitrary values).withoutTwMergeClasses() are needed for multi-element merging (e.g., buttons with icons). Teams relying on Laravel’s default attribute merging may need adjustments.classGroups suffice, or is deeper customization needed?$attributes->class? If yes, migration to twMerge may require refactoring.twMerge vs. traditional class merging? Documentation and examples (e.g., twMergeFor()) may require internal evangelization.composer require gehrisandro/tailwind-merge-laravel
php artisan vendor:publish --provider="TailwindMerge\Laravel\TailwindMergeServiceProvider"
config/tailwind-merge.php and adjust classGroups if using custom Tailwind.TAILWIND_MERGE_PREFIX in .env if needed (e.g., for BEM-like prefixes).$attributes->class with $attributes->twMerge('...') in components.<!-- Before -->
<div class="{{ $classes }}">
<!-- After -->
<div {{ $attributes->twMerge($classes) }}>
@twMerge() or twMerge() where applicable.!important, dark mode, arbitrary values) in staging.classGroups.classGroups. Uncovered cases need manual overrides.bg-red-500 overriding bg-blue-500).!important, dark mode, arbitrary values, and multi-element merging (twMergeFor).classGroups if needed..env or config/tailwind-merge.php).tailwind-merge-php updates may require testing.classGroups may need updates if Tailwind config changes (e.g., new color palette).twMergeFor).dd(TailwindMerge::merge(...))) helps.display vs. line-clamp in v0.2.1).storage/framework/cache/.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Tailwind config changes | Merge conflicts if classGroups outdated |
Test with new Tailwind versions; update config. |
| Cache corruption | Stale merged classes |
How can I help you explore Laravel packages today?