Überschriften-Klasse per Twig ergänzen

von Dennis Erdmann

Wenn du regelmäßig Layouts in Contao umsetzt, bist du mit großer Wahrscheinlichkeit schon über diese Schwäche gestolpert: Wenn du nicht gerade ein Überschriften-Element verwendest, fehlt der Überschrift eine Klasse, um sie einfach und unabhängig von der Hierarchie gestalten zu können.

Als Theme-Entwickler:in kannst du eine Anweisung für Überschriften deshalb nicht einfach per Klasse festlegen, sondern musst jede mögliche Überschrift berücksichtigen, z. B. so:

h1, h2, h3, h4, h5, h6 {
  color: var(--color-brand);
}

Daran hat auch Contao 5 zunächst nichts geändert. Aber dank der Twig-Template-Struktur für Inhaltselemente kannst du die Klasse nun einfach ergänzen.

Das Snippet

Lege ein neues Template component/_headline.html.twig im Templates-Ordner an (in einem Theme-Ordner funktioniert es nicht) — mit diesem Inhalt:

{% block headline_attributes %}
  {% set headline_attributes = attrs()
    .addClass('headline')
    .mergeWith(headline.attributes|default)
  %}
  {{ headline_attributes }}
{% endblock %}

Nachdem du den Cache geleert hast, sollten deine Überschriften die zusätzliche Klasse headline haben.

Einschränkung

Das funktioniert nur für Inhaltselemente — Frontend-Module, die noch die alten PHP-Templates nutzen, bleiben außen vor.

Vielen Dank an Benny Born, der das Problem ebenfalls hatte und die Lösung im Contao Slack gepostet hat.


Mehr zu Überschriften in Contao: Neutrale Überschriften-Option per DCA ergänzen und Dachzeilen semantisch korrekt umsetzen.

  • contao5
  • twig
  • css
  • ueberschriften

Zurück zur Übersicht