
Struktur
Wie ein Blatt: klare Adern, klare Hierarchie. Blöcke geben Inhalten eine Form, die Mensch und Maschine lesen können.
Webseitenhub für Mensch, Maschine und Internet
Der columns-Block ist das Layout-Werkzeug des CMF. Auf kleinen Bildschirmen wandeln sich die Raster automatisch in Einzelspalten um. Diese Seite zeigt alle Varianten live.
Der columns-Block hat zwei Pflichtfelder: columns (Anzahl, 2–5) und items (Array mit genau so vielen Einträgen wie Spalten). Jeder Eintrag in items ist selbst ein Array von Blöcken – der Inhalt der jeweiligen Spalte.
{
"id": "c1_beispiel",
"type": "columns",
"data": {
"columns": 3, ← Anzahl der Spalten (2–5)
"items": [ ← genau 3 Einträge, weil columns: 3
[ ...Blöcke Spalte 1... ],
[ ...Blöcke Spalte 2... ],
[ ...Blöcke Spalte 3... ]
]
}
}Alle Spalten-Layouts brechen bei Bildschirmbreiten unter 700 px automatisch um. Dann werden alle Spalten nacheinander vertikal gestapelt – keine Konfiguration nötig, das passiert automatisch über das CSS des CMF.
Wichtige Regel: Die Anzahl der Einträge in items muss exakt mit dem Wert von columns übereinstimmen. Zu viele oder zu wenige Einträge führen zu einem Validierungsfehler. Jede Spalte kann leer sein ([]), muss aber vorhanden sein.
Das klassischste 2-Spalten-Layout: Bild links, Inhalt rechts. Auf Mobilgeräten erscheint das Bild zuerst, darunter der Text.

Das Starter-Paket enthält das komplette Content Management Frame inklusive API, Block-System und Admin-Interface. Sofort einsatzbereit für kleine bis mittelgroße Websites.
Zwei gleichwertige Textspalten nebeneinander – wie in einer Zeitschrift. Gut für längere Texte, die nicht untereinander, sondern kompakt nebeneinander stehen sollen.
Eine klare Inhaltsstruktur ist die Grundlage für langfristig wartbare Webseiten. Wenn jeder Block eine definierte Rolle hat, bleibt das Gesamtbild nachvollziehbar – egal ob ein Mensch oder ein Maschinen-System die Inhalte bearbeitet.
Strukturierte Inhalte lassen sich leichter migrieren, übersetzen, zusammenfassen und neu kombinieren. Das ist kein Selbstzweck, sondern ein konkreter Vorteil in der täglichen Arbeit.
Wenn Inhalte in definierten Blöcken organisiert sind, kann ein Maschinen-System sie zuverlässig lesen, verändern und erweitern. Es muss nicht raten, was ein Abschnitt bedeutet – der Typ sagt es.
Das CMF ist so aufgebaut, dass Maschinen-Systeme von Anfang an als gleichwertige Nutzer behandelt werden. Die API ist klar, das Schema ist dokumentiert, die Fehler sind sprechend.
Drei Inhaltsblöcke nebeneinander – das Standardlayout für Feature-Übersichten auf Landing Pages. Jede Spalte erhält gleiches Gewicht.
Kein Datenbankoverhead. Alle Inhalte liegen als JSON-Dateien direkt auf dem Server. Ladezeiten unter 50 ms sind realistisch.
Die JSON-API lässt sich von jedem HTTP-Client nutzen – vom Browser über Bash-Scripts bis zur Maschine. Kein proprietäres SDK nötig.
Blockbasierter Aufbau mit klarem Schema. Jeder Block hat einen Typ und ein definiertes data-Objekt – keine freien Felder, keine Überraschungen.
Team-Raster mit Bild (oder Avatar), Name, Rolle und kurzer Beschreibung. Auf Mobilgeräten stapeln sich die Personen untereinander.

Projektleitung
Verantwortet Struktur und Inhalt. Koordiniert die Zusammenarbeit zwischen redaktionellen und technischen Anforderungen.

Entwicklung
Zuständig für API, Blockstruktur und serverseitige Logik. Mag sauberen Code und klare Schnittstellen.

Maschinen-Integration
Entwickelt automatisierte Workflows für maschinengestützte Inhaltspflege und API-Anbindungen.
Ablaufschritte, Anleitungen oder Onboarding-Prozesse lassen sich mit einem html-Block als Nummernkreis und einem text-Block als Beschreibung pro Spalte gut strukturieren.
Neue Seite über page_create anlegen. Titel, Slug, Status und Nav-Position direkt im ersten Request mitgeben.
Blöcke per page_update hinzufügen. Medien zuerst hochladen, src-Pfad vom Upload-Response verwenden.
Status auf "published" setzen – die Seite erscheint sofort in der Navigation und ist öffentlich erreichbar.
Zwei Optionen nebeneinander stellen – gut für Preisvergleiche, Vor-/Nachteile oder Alternativen. Auf Mobilgeräten erscheint zuerst die linke, dann die rechte Spalte.
Vier gleichbreite Spalten eignen sich gut für kompakte Kennzahlen oder Icon-Labels. Auf Mobilgeräten stapeln sich alle vier untereinander.
Fünf Spalten sind das Maximum im CMF. Sinnvoll für sehr kompakte Inhalte wie Icon-Raster, Logos oder kurze Label-Wert-Paare. Auf schmalen Bildschirmen stapeln alle fünf.
Für Teaser mit Bild oben eignet sich statt des columns-Blocks ein html-Block mit dem Karten-Raster: card-grid als Container, je Teaser eine card mit img, h3 und p. Das Raster ordnet die Karten automatisch an und bricht mobil um – ganz ohne Spalten-Konfiguration.

Wie ein Blatt: klare Adern, klare Hierarchie. Blöcke geben Inhalten eine Form, die Mensch und Maschine lesen können.

Ein Muster, viele Instanzen. Karten im card-grid teilen sich Stil und Abstände – Inhalte bleiben individuell.

Aussparungen, wo sie gebraucht werden: Jede Karte kann Bild, Text, Listen oder Buttons enthalten – oder darauf verzichten.
Der columns-Block kennt keine Breitenverhältnisse wie 2:1 – alle Spalten sind gleich breit. Optische Gewichtung entsteht stattdessen über den Inhalt: Hier trägt die erste Spalte ein panel (weiche, getönte Box) und zieht so den Blick an, während die beiden anderen Spalten ruhiger als reiner Text laufen.
Hervorgehoben
Diese Spalte ist genauso breit wie die anderen – das panel gibt ihr trotzdem das größte Gewicht. So entsteht Asymmetrie über Gestaltung statt über Layout-Parameter.
Reiner Text ohne Rahmen tritt zurück. Zusammen mit der Panel-Spalte ergibt sich eine klare Lesereihenfolge, obwohl alle drei Spalten technisch gleichwertig sind.
Auf Mobilgeräten stapeln die drei Spalten wie gewohnt: zuerst das Panel, dann die Textspalten – die Gewichtung bleibt also auch unterwegs erhalten.
Zahlen brauchen Kontext. Ein 2-spaltiger columns-Block kombiniert beides: links ein html-Block mit stats-grid (darin stat-item mit stat-value und stat-label), rechts ein normaler text-Block mit der Einordnung.
Das stats-grid ordnet die vier Kennzahlen in der halben Seitenbreite kompakt an, der Text daneben liefert die Geschichte dazu. Auf Mobilgeräten erscheinen erst die Zahlen, dann die Erklärung – die linke Spalte steht oben.
Tipp: Die Kennzahlen in die linke Spalte stellen, wenn sie der Blickfang sein sollen – mobil landen sie dann zuerst im Sichtfeld.
Spalten können Spalten enthalten. So entstehen komplexere Layouts: eine breite linke Spalte mit einem Unter-Raster, rechts ein eigenständiger Inhaltsbereich.
Diese Spalte enthält selbst wieder einen 2-spaltigen columns-Block:
Inhalt links innen.
Inhalt rechts innen.
Die rechte äußere Spalte hat keinen weiteren Unter-Block. Verschachtelungen sollten sparsam eingesetzt werden – zu tiefe Strukturen werden auf kleinen Bildschirmen schnell unübersichtlich.
Alternative zur Block-Verschachtelung von oben: Innerhalb einer Spalte steckt kein weiterer columns-Block, sondern ein html-Block mit <div class="cols cols-2">. Das spart Struktur, wenn die Unter-Zellen nur kleine HTML-Schnipsel sind. Auch hier gilt: sparsam einsetzen.
Diese Spalte enthält ein 2er-Raster aus einem einzigen html-Block:
Raster-Zelle A
Per Klasse cols cols-2 erzeugt – kein eigener Block.
Raster-Zelle B
Bricht mobil genauso um wie echte Spalten.
Jede Seite gibt es auch als Markdown – diese hier unter /spalten.md. Markdown kennt keine Spalten, deshalb wird der columns-Block linearisiert: erst alle Blöcke der ersten Spalte, dann die der zweiten, jeweils durch Leerzeilen getrennt.
Blockstruktur (gekürzt)
{
"type": "columns",
"data": {
"columns": 2,
"items": [
[ heading "Links",
text "Text links." ],
[ heading "Rechts",
text "Text rechts." ]
]
}
}Ausgabe in /spalten.md
### Links
Text links.
### Rechts
Text rechts.Die Linearisierung folgt derselben Reihenfolge wie der mobile Umbruch: Spalte 1 zuerst. Wer den Markdown-Export nutzt (etwa für Maschinen-Systeme), sollte Spalten so befüllen, dass sie auch hintereinander gelesen Sinn ergeben.
Ein paar Leitlinien für den effizienten Einsatz des columns-Blocks:
Die linke Spalte erscheint auf dem Handy zuerst (oben), die rechte zuletzt (unten). Wichtige Inhalte oder CTAs gehören deshalb in die linke Spalte – dann landen sie mobil oben, wo sie zuerst gesehen werden.
Die API ist bereit. Alle Blocktypen sind dokumentiert. Fang einfach an – entweder direkt über die API oder mit Maschinen-Unterstützung.