gehrisandro/tailwind-merge-php
Merge Tailwind CSS class strings in PHP with automatic conflict resolution (later classes win). PHP port of dcastil/tailwind-merge, compatible with Tailwind v3.0–v3.4 and PHP 8.1+. Create instances and customize configuration as needed.
tailwind-merge-laravel), ensuring seamless integration with Laravel’s Blade templating, Livewire, and API-driven workflows.text-red-500 text-blue-500 → text-blue-500), which is critical for dynamic UI composition in Laravel.classGroups, enabling adaptation to non-standard setups (e.g., custom color palettes, arbitrary values).gehrisandro/tailwind-merge-php) with minimal setup (PHP 8.1+ required).non-tailwind-class block), reducing risk of unintended side effects.tailwind.config.js) may need manual classGroups tuning.Illuminate\Cache) works out-of-the-box.[&>*]:underline) are supported but may require testing for project-specific arbitrary variants.Tailwind Compatibility:
classGroups adjustments?Use Cases:
Team Adoption:
Alternatives:
tailwind-merge) or manual solutions (regex, custom logic)?tailwind-merge-laravel) a better fit for your project’s needs?Testing:
tailwind-merge-laravel) further reduces friction.file, redis, database), enabling performance optimizations.Assessment Phase:
classGroups adjustments.Proof of Concept (PoC):
composer require gehrisandro/tailwind-merge-php.use TailwindMerge\TailwindMerge;
$mergedClasses = TailwindMerge::instance()->merge('p-4 px-6'); // 'px-6'
Integration:
<button class="{{ TailwindMerge::instance()->merge('bg-blue-500 hover:bg-blue-700', 'bg-red-500') }}">
Click Me
</button>
public function getButtonClasses(): string
{
return TailwindMerge::instance()->merge(
'py-2 px-4 rounded',
$this->isPrimary ? 'bg-blue-600' : 'bg-gray-600'
);
}
$html = '<button class="' . TailwindMerge::instance()->merge('text-white', 'text-black') . '">...</button>';
$instance = TailwindMerge::factory()
->withCache(app('cache'))
->make();
Custom Configuration:
classGroups in the factory:
$instance = TailwindMerge::factory()->withConfiguration([
'classGroups' => [
'font-size' => [['text' => ['custom-size']]],
],
])->make();
classGroups as needed.classGroups may need updates if Tailwind config changes, but this is rare.tailwind-merge JS library.tailwind-merge-laravel) provides Laravel-focused support.How can I help you explore Laravel packages today?