From 6182935a22ad1b8970481cdec4a98a01bf0bc40a Mon Sep 17 00:00:00 2001 From: sebastian Date: Sun, 17 Aug 2025 17:26:24 +0200 Subject: [PATCH] Improve css unique --- Classes/Services/Tailwindcss4Merger.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Classes/Services/Tailwindcss4Merger.php b/Classes/Services/Tailwindcss4Merger.php index 5ec6296..619cb64 100644 --- a/Classes/Services/Tailwindcss4Merger.php +++ b/Classes/Services/Tailwindcss4Merger.php @@ -26,6 +26,7 @@ class Tailwindcss4Merger $atLayerComponents = $this->getLayerComponents($styles); $atProperty = $this->getProperties($styles); $atLayerProperties = $this->getLayerProperties($styles); + $unlayered = $this->getUnlayered($styles); return implode(chr(10), [ $atLayerOrder, $atLayerBase, @@ -34,6 +35,7 @@ class Tailwindcss4Merger $atLayerComponents, $atProperty, $atLayerProperties, + $unlayered, ]); } @@ -122,7 +124,8 @@ class Tailwindcss4Merger { $matches = $this->getLayerByName($styles, 'properties'); $properties = [ - ' @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { + ' @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline)' + . ' and (not (color:rgb(from red r g b)))) { *, ::before, ::after, ::backdrop {' ]; foreach ($matches as $match) { @@ -144,4 +147,11 @@ class Tailwindcss4Merger { return '@layer ' . $name . " {\n" . implode("\n", $styles) . "\n}"; } + + protected function getUnlayered(string $styles): string + { + $unlayered = preg_replace('/(?@layer[^;{]+;)/i', '', $styles, -1); + $unlayered = preg_replace('/@layer[^{;]+\{.+?(?=\n})\n}/s', '', $unlayered, -1); + return preg_replace('/(?@property[^{]+\{[^}]+})/i', '', $unlayered, -1); + } }