The compileDefinition hook is triggered when a format definition of an internal style sheet is written. It passes the database record of the style definition as an array and expects a string as return value.

Using the compileDefinition hook has been deprecated and will no longer work in Contao 5.0. There is no replacement as the internal stylesheet functionality has been removed in Contao 5.0.


  1. array $row

    The style definition database record (tl_style_sheet).

  2. bool $writeToFile

    Defines whether or not the style definition will be written to a file.

  3. array $vars

    CSS variables from the theme.

  4. array $parent

    The parent record of the style definition (tl_style).

Return Values

A string containing the customized style definition. Or an empty string, if the original definition should be used.


// src/EventListener/CompileDefinitionListener.php
namespace App\EventListener;

use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;

class CompileDefinitionListener
    public function __invoke(array $row, bool $writeToFile, array $vars, array $parent): string
        if (isset($row['border-radius'])) {
            return "\nborder-radius:" . $arrRow['border-radius'] . ";";

        return '';