tales-from-a-dev/twig-tailwind-extra
Twig extension that adds Tailwind helpers to your templates. Includes a tailwind_merge() filter powered by tailwind-merge-php to intelligently combine Tailwind CSS class strings and resolve conflicts. Requires PHP 8.1+, Twig 3+, Tailwind 4+.
tales-from-a-dev/tailwind-merge-php v0.3 suggests improved Tailwind class merging capabilities, which aligns with Laravel’s utility-first styling needs. This may enable more robust dynamic class generation (e.g., merging base classes with modifiers like bg-blue-500 hover:bg-blue-700).array_merge calls for complex classes).tailwind-merge-php v0.3 introduces API changes that could affect the package’s public methods (e.g., mergeClasses()).tailwind-merge-php v0.3 alters how classes are merged (e.g., stricter validation, different default behavior). Test with edge cases like:
text-red-500 text-blue-500).hover:focus:shadow-lg).@error in Blade) captures merge failures.tailwind.config.js.tailwind-merge-php v0.3 support your Tailwind setup (e.g., JIT, custom theme paths)?twig_tailwind('btn', ['variant' => 'primary', 'size' => 'lg']))? Could the upgrade reduce template complexity?tailwind-merge-php? Could this upgrade cause version conflicts?@tailwindMerge(['btn', 'text-' => 'white', 'bg-' => 'blue-500'])
purge config.@cache directives). Monitor memory usage if merging heavy classes.tailwind-merge-php v0.2 to catch edge cases.array_merge calls in templates with the package’s functions (e.g., {{ twig_tailwind_merge(['btn', 'text-white']) }}).Blade::directive('tailwindMerge', function ($expression) {
return "<?php echo app('twig')->getFunction('twig_tailwind_merge')->__invoke($expression); ?>";
});
tailwind.config.js.@cache or @once for performance-critical sections.tales-from-a-dev/twig-tailwind-extra to v1.2.0:
composer require tales-from-a-dev/twig-tailwind-extra:^1.2.0
tales-from-a-dev/tailwind-merge-php is also updated (handled automatically by Composer).$this->assertEquals(
'bg-blue-500 hover:bg-blue-700',
app('twig')->getFunction('twig_tailwind_merge')->__invoke(['bg-blue-500', 'hover:bg-blue-700'])
);
tailwind-merge-php v0.3 may require future maintenance if the library evolves. Pin the version in composer.json if stability is critical:
"tales-from-a-dev/tailwind-merge-php": "0.3.*"
tailwind-merge-php (e.g., via GitHub watch or dependency alerts).debugbar to inspect Twig context:
dd(app('twig')->getFunction('twig_tailwind_merge')->getCallable());
@tailwindMerge(['btn', 'invalid-class'])
@error
{{ $message }} <!-- Fallback or error message -->
@enderror
@if(config('features.dynamic_classes'))
@tailwindMerge(['btn', 'text-white'])
@else
<button class="btn text-white">...</button>
@endif
tideways/xhprof.// In a service class
public function getMergedClasses(array $classes): string {
return cache()->remember("tailwind_{$classes}", now()->addHours(1), function() use ($classes) {
return app('twig')->getFunction('twig_tailwind_merge')->__invoke($classes);
});
}
How can I help you explore Laravel packages today?