Das Layout: layout/theme.liquid
Das Grundgerüst jeder Seite: Pflicht-Variablen, Meta-Tags, Stylesheets, selbst gehostete Schriften und das Consent-Banner.
Das Layout ist das einzige Template, das für jede Seite gerendert wird. Es definiert <html>, <head> und <body> und setzt die gerenderten Section Groups ein.
Pflicht-Variablen
Diese drei Platzhalter enthalten bereits fertiges HTML und werden immer mit | raw ausgegeben:
{{ content_for_header | raw }} {# Header-Gruppe #}
{{ content_for_layout | raw }} {# Body-Sections der Seite #}
{{ content_for_footer | raw }} {# Footer-Gruppe #}Vollständiges Beispiel
<!DOCTYPE html>
<html lang="{{ locale | default: 'de' }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>
{% if record %}{{ record.meta_title | default: record.title | default: record.name }}
{% else %}{{ page.meta_title | default: page.title }}{% endif %}
{% if settings.site_name != blank %} — {{ settings.site_name }}{% endif %}
</title>
{% if page.description != blank %}
<meta name="description" content="{{ page.description }}">
{% endif %}
<link rel="canonical" href="{{ site.url }}{{ page.url | default: record.url }}">
{{ 'css/main.min.css' | asset_url | stylesheet_tag }}
{{- theme.fonts | font_face_tag }}
{% assign root = settings.color_schemes | where: "id", "default" | first %}
<style>
:root {
--color-background: {{ root.background | default: '#FFFFFF' | css_safe }};
--color-text: {{ root.text | default: '#222222' | css_safe }};
--color-primary: {{ root.primary | default: '#000000' | css_safe }};
--border-radius: {{ settings.border_radius | default: 8 }}px;
}
</style>
</head>
<body>
{{ content_for_header | raw }}
<main>{{ content_for_layout | raw }}</main>
{{ content_for_footer | raw }}
<script src="{{ 'js/scripts.min.js' | asset_url }}" defer></script>
{% consent_banner %}
</body>
</html>Tipps
Bringe Theme-Einstellungen als CSS Custom Properties ins Design. Sections nutzen dann
var(--color-primary).Werte in
<style>-Blöcken immer mit| css_safeausgeben.Assets immer über
| asset_urleinbinden – nie mit festem Pfad.recordexistiert nur auf Datensatz-Detailseiten. Sichere Titel und Canonical mit| default:ab.{% consent_banner %}gehört kurz vor</body>.
Weitere Layouts
Neben theme.liquid kannst du weitere Layouts anlegen, z. B. layout/funnel.liquid für Vollbild-Funnels. Ein Seiten-Template wählt es mit "layout": "funnel". Ein Layout ohne content_for_header/content_for_footer blendet Header und Footer aus – auch im PageBuilder.
Unser Support antwortet in der Regel innerhalb eines Werktags.