gehrisandro/tailwind-merge-laravel
Merge Tailwind CSS class strings in Laravel and auto-resolve conflicts so later utilities win. Ideal for overriding classes in Blade components. PHP/Laravel port of tailwind-merge. Supports Tailwind v3.0–v3.3 (Laravel 10).
composer require, optional config publish). No database migrations or complex dependencies.$attributes bag with twMerge(), twMergeFor(), and a Blade directive. Works alongside existing Laravel features (e.g., merge() for non-Tailwind classes).classGroups in config/tailwind-merge.php, though requires upfront validation if deviating from defaults.z-[999]) or custom variants may need manual classGroups configuration. Test coverage for complex scenarios (e.g., !important conflicts) is limited.classGroups may need tuning.ComponentAttributesBag. Integrates with existing workflows (e.g., Livewire, Inertia) without disruption.composer require gehrisandro/tailwind-merge-laravel).@twMerge) for quick wins in templates.twMerge() in $attributes.class="bg-blue-500 !important") with merged classes.config/tailwind-merge.php) if using custom Tailwind configs.twMergeFor() for multi-element components (e.g., buttons with icons).TailwindMerge::merge().composer.json test scripts or GitHub Actions to ensure no regressions during Tailwind updates.| Phase | Task | Dependencies |
|---|---|---|
| Setup | Install package, publish config | Tailwind CSS configured |
| Validation | Test basic merges (e.g., bg-red-500 bg-blue-500 → bg-blue-500) |
Unit tests |
| Component Update | Refactor 1–2 components to use twMerge() |
Blade components |
| Directive Rollout | Replace manual @class directives with @twMerge |
Blade templates |
| Custom Config | Adjust classGroups if using non-standard Tailwind |
Tailwind config |
| Documentation | Add usage examples to team wiki | Adoption feedback |
classGroups may need updates if Tailwind config changes. Document these in README.md.classGroups.twMerge() calls (e.g., non-string inputs).| Scenario | Impact | Mitigation |
|---|---|---|
| Tailwind update breaks merging | Merges fail or produce errors | Test against new Tailwind versions early |
Custom classGroups misconfigured |
Incorrect conflict resolution | Validate with Tailwind’s content build step |
| Heavy use in loops | Performance degradation | Benchmark; consider caching |
| Team ignores package updates | Security/feature gaps | Add to composer outdated checks |
twMerge(), Blade directive).twMergeFor().!important behavior).How can I help you explore Laravel packages today?