validdata.de · Relaunch

Vom Figma-Make-Clickdummy zum lauffähigen Kirby-CMS mit eigener Komponenten-Bibliothek, Fidelity-Toolchain und Release-Workflow.

Stand 3. September 2026 · 48 Releases, 147 Tage
Wo der Stand zu sehen ist. Der aktuelle Stand steht unter validdata.vorstellung.kamper.dev (Vorstellung, Gestell-Projekt vorstellung). Die eingefrorenen Release-Staende v01 bis v48 sind seit dem 3. September 2026 archiviert und nicht mehr online; nach Ruecksprache mit CK kann jeder Stand aus dem Archiv wiederhergestellt werden. Die Release-Punkte unten bleiben als Protokoll bestehen.
  • Aeltere Staende sind archiviert und werden nach Ruecksprache mit CK wiederhergestellt.
Auf einen Blick

Zahlen, die sich sehen lassen.

Seit dem 9. April 2026 entsteht das neue validdata.de im Gestell-Workflow. Die folgenden Zahlen zeigen den im Gestell dokumentierten Stand.

0
Releases
0
Decisions
~0
Commits
0
Tage
Release-Timeline

Jeder Punkt: ein eingefrorener, einsehbarer Stand.

Jeder Release-Punkt friert den bis dahin staging-erprobten Stand als Webroot unter /vNN/ ein. Was hier pro Punkt aufgeführt ist, wurde damit abgeschlossen — Code aus der Pipeline danach erscheint erst mit dem nächsten Release-Punkt.

9. April 2026 48 Release-Punkte 20. August 2026
v48 aktuell
Phase abgeschlossen am 20.08.2026
Vier Erweiterungen im Panel — Gehaltsangaben in Stellenanzeigen, Personenauswahl in der Team-Galerie, mehrere Passwörter pro geschützter Seite, Unterseiten für Partner und Ausbildung — dazu zwei Korrekturen an der internen Verlinkung und an den Seitentiteln.
Stellenanzeigen liefern Gehaltsspanne und Region an Google Jobs, die Team-Galerie lässt sich auf ausgewählte Personen begrenzen, geschützte Seiten akzeptieren mehrere Passwörter, Partner- und Ausbildungsseite können Unterseiten führen. Interne Verlinkungen im Fließtext werden als lesbare Adresse ausgeliefert.
Für Redakteure

Stellenangebote, Tab „Stelle": zwei Zahlenfelder für die Gehaltsspanne (Jahresbrutto) und ein Schalter, der die Angabe für Google Jobs freigibt. Der Schalter steht auf „Aus"; eingetragene Werte bleiben also im Panel stehen, bis die Freigabe erfolgt. Dazu ein neuer Tab „Lineare Navigation" pro Stelle — dieselben Einstellungen (Auto, manuell, aus), die Lösungen und Standardseiten schon haben.

Team-Galerie: neue Auswahl „Wer wird gezeigt?" mit den Optionen „Zentral / alle" und „Manuelle Auswahl". Bei manueller Auswahl bestimmt die Reihenfolge im Picker die Reihenfolge im Grid. Mehrere Galerien untereinander ergeben damit Team-Gruppen. Bestehende Galerien stehen auf „Zentral / alle".

Geschützte Seiten (AGB): unter dem bisherigen Passwortfeld eine Liste „Zusätzliche Passwörter" mit interner Notiz, wo das jeweilige Passwort im Umlauf ist. Jeder Eintrag schaltet die Seite frei — für Passwörter, die auf älteren Angeboten und Flyern stehen.

Neue Vorlage „Seite mit Unterseiten": Standardseite mit einem Tab „Unterseiten" an zweiter Stelle, über „Vorlage ändern" erreichbar. Die Partnerseite läuft bereits darauf. Unterseiten erscheinen automatisch in der Sitemap und in der Navigation am Seitenende; verlinkt werden sie über einen Querverweise-Block.

Für Besucher

Links im Fließtext, die auf eine eigene Seite zeigen, führen direkt zum Ziel. Die Adresse in der Statusleiste und beim Kopieren lautet jetzt zum Beispiel validdata.de/partner statt einer internen Kennung.

Stellenseiten haben am Seitenende Weiter- und Zurück-Karten zur jeweils nächsten Stelle.

Der Seitentitel im Browser-Tab und beim Teilen ist nach dem Muster „Seitenname | validdata.de" aufgebaut — mit senkrechtem Strich statt Geviertstrich.

Das Sitzungs-Cookie heißt vd_session statt kirby_session; die Datenschutzerklärung führt den Namen. Nach dem Wechsel ist eine einmalige Neuanmeldung im Panel nötig, ebenso eine erneute Passworteingabe bei geschützten Seiten.

SEO & Performance

Die strukturierten Daten der Stellenanzeigen (JobPosting) enthalten jetzt die Region NRW. Damit sind die beiden von der Search Console gemeldeten Felder abgedeckt: addressRegion fest, baseSalary optional als Jahresbrutto-Spanne in Euro, sobald der Schalter im Panel gesetzt ist.

Interne Links aus Fließtexten laufen ohne Zwischenschritt: bisher stand im HTML eine interne Kennung, die der Server per Weiterleitung (302) auf die Zielseite umgelenkt hat. Die Auflösung passiert jetzt beim Ausliefern der Seite, gespeichert bleibt die Kennung — Verlinkungen überstehen also weiterhin jede Umbenennung.

Unterseiten werden auf jeder Ebene automatisch in sitemap.xml aufgenommen; Ausschluss-Schalter und Indexierungs-Einstellungen der übergeordneten Seite gelten für sie mit.

Der Seitentitel-Aufbau „Seitenname | validdata.de" gilt auch für die 404-Seite, die vorher keinen eigenen Titel setzen konnte.

18 Commits in diesem Zyklus
  • 5f8c33f42026-08-20casi-meta: Release v48 — Decision + Klartext-Spuren
  • 5452d5e22026-08-20report: release-report aktualisiert (48 Releases, 783 Commits)
  • e9a983002026-08-20report: release-report aktualisiert (48 Releases, 783 Commits)
  • 9a0022a12026-08-20content: Pull von validdata.de (Production) — Partner auf "Seite mit Unterseiten"
  • b8d9c8092026-08-20fix(links): Kirby-Permalinks beim Rendern zu echten URLs aufloesen
  • 097de0f32026-08-20fix(panel): Tab "Unterseiten" an Position 2, direkt hinter dem Seiteninhalt
  • 39fb89732026-08-20chore(namen): eigener Session-Cookie vd_session, Fly-In-State vd-fly-in
  • 6ad5bafb2026-08-20feat(struktur): Vorlage "Seite mit Unterseiten" fuer Partner, Ausbildung & Co.
  • 679035ee2026-08-20style(seo): senkrechter Strich als Standard-Trennzeichen im Titel
  • 91340ab12026-08-20feat(vd-team): Team-Galerie wahlweise mit manueller Personenauswahl
  • a3c417142026-08-20feat(zugangsschutz): mehrere gueltige Passwoerter pro Seite
  • 059246f62026-08-20feat(stellen): JobPosting-Schema um addressRegion + baseSalary, Navi-Tab fuer Stellenseiten
  • 2ab890582026-08-20content: Pull von validdata.de (Production) — Kundenlogos, Team, Rechtsseiten neu sortiert
  • 9eb525042026-08-10casi: Server-eigene Dateien auch vom Deploy ausgenommen
  • 7d9c536b2026-08-10casi-meta: 2 geaendert (2 Dateien)
  • b913674f2026-08-10report: release-report aktualisiert (47 Releases, 778 Commits)
  • 8b936bae2026-08-10report: release-report aktualisiert (47 Releases, 778 Commits)
  • 301785672026-08-10content: Pull nach Ausrollen des Ticket-Schwungs
v47
Phase abgeschlossen am 10.08.2026
Die Formulare nehmen wieder Einsendungen an. Dazu neue Möglichkeiten im Layout-Editor — Textausrichtung, Ausblenden ganzer Abschnitte — und die Wiederherstellung der Weiterleitungen samt Schutz vor künftigen Übertragungen.
Formulare nehmen wieder Einsendungen an. Texte in Textblöcken lassen sich mittig und rechtsbündig setzen, Links im Fließtext sind unterstrichen. Ganze Abschnitte lassen sich über das Kontextmenü aus- und wieder einblenden. Die Weiter-Blättern-Navigation am Seitenende läuft im Kreis. Der Vorspann vor der Telefonnummer im mobilen Menü ist im Panel pflegbar, der Styleguide-Eintrag öffnet die Seite selbst. Die Weiterleitungen und das Fehler-Protokoll sind wiederhergestellt und werden bei Übertragungen nicht mehr überschrieben. CMS-Kern auf Kirby 5.5.3.
Für Redakteure

Textblock: Ein Feld „Ausrichtung" mit den Stufen links, mittig und rechts. Die Wahl gilt für den ganzen Block.

Writer-Werkzeugleiste: Die Auszeichnung „Akzent — Betonung" ist entfernt. Ihr Ergebnis war das gleiche wie bei Fett, und ihr Symbol steht in Textprogrammen üblicherweise für die Textausrichtung. Vorhandene Texte, die sie nutzen, werden weiterhin dargestellt.

Abschnitte aus- und einblenden: Im Kontextmenü eines Abschnitts (Chevron rechts oben) stehen „Verbergen" und „Anzeigen" — das Gegenstück zum Auge am einzelnen Block. Ein ausgeblendeter Abschnitt bleibt im Panel stehen, trägt die Plakette „ausgeblendet" und lässt sich jederzeit zurückholen. Derselbe Schalter steht zusätzlich am Ende des Tabs „Layout". Ausgeblendete Abschnitte zählen auch für Hintergründe und das Farbschema der Seite nicht mehr mit.

Seitenreihenfolge: Das Verschieben per Maus legt eine Seite wieder dort ab, wo sie losgelassen wird. Zuvor sprang jede gezogene Zeile auf Position 1 — ein Fehler in Kirby 5.5.2, der auch in einer Installation ohne Projektcode auftritt und dort gemeldet ist.

Mobiles Menü: Der Vorspann vor der Telefonnummer ist unter Site → Navigation pflegbar. Ohne Eintrag steht dort „oder via".

Styleguide: Der Eintrag in der Seitenleiste öffnet die Styleguide-Seite in einem neuen Tab statt einer Panel-Unterseite ohne Inhalt.

Weiterleitungen: 48 Regeln sind aktiv, davon 42 Umleitungen und 6 Meldungen „Inhalt entfällt". Das Fehler-Protokoll zeichnet wieder auf und zählt die Treffer pro Regel.

Auswahlfelder: Die leere Option am Anfang der Klapplisten ist wieder ausgeblendet.

Für Besucher

Formulare: Kontaktformular, Erstkontakt und Bewerbung nehmen wieder Einsendungen an. Zwischen dem 6. und dem 10. August endete jede abgeschickte Eingabe in der Meldung „Formular nicht gefunden."; die Einsendung wurde weder gespeichert noch als E-Mail versendet. Der Betreiber hat den Zeitraum geprüft — es gab keine Einsendungen.

Links im Fließtext sind unterstrichen. Zuvor unterschieden sie sich nur durch die Farbe vom übrigen Text, was ohne Farbwahrnehmung nicht zu erkennen war.

Textabschnitte können mittig oder rechtsbündig gesetzt werden.

Weiter-Blättern am Seitenende: Auf der letzten Seite einer Reihe führt „Weiter" zur ersten zurück, auf der ersten führt „Zurück" zur letzten. Die Reihe hat damit kein Ende mehr.

Weiterleitungen: 48 alte Adressen aus dem früheren Webauftritt führen wieder an ihr Ziel, darunter /wlan und /awareness. Sie beantworteten zeitweise mit der Fehlerseite.

SEO & Performance

Weiterleitungen: 48 Regeln sind aktiv — 42 dauerhafte Umleitungen (301) und 6 Meldungen „Inhalt entfällt" (410). Zwischenzeitlich waren 19 von 33 Regeln ohne Wirkung, die betroffenen Adressen beantworteten mit der Fehlerseite. Für Suchmaschinen zählt das als toter Link statt als Umzug.

Das Protokoll der nicht gefundenen Adressen zeichnet wieder auf und zählt die Treffer pro Regel. Es hing an einem Schalter, der die Protokollierung projektweit abgeschaltet hatte, weil auf einem Server der passende Datenbanktreiber fehlen konnte. Die Entscheidung trifft jetzt die jeweilige Instanz selbst; auf validdata.de ist der Treiber vorhanden.

Ausgeblendete Abschnitte werden nicht ausgeliefert und stehen damit auch nicht im Seitenquelltext.

CMS-Kern auf Kirby 5.5.3 aktualisiert. Das Update enthält sechs Fehlerkorrekturen des Herstellers, unter anderem an der Slug-Prüfung beim Duplizieren und Verschieben von Seiten.

15 Commits in diesem Zyklus
  • 476e83342026-08-10feat(panel): "Verbergen"/"Anzeigen" im Kontextmenue eines Layouts
  • dfac09932026-08-10fix(panel): Ausblenden-Schalter ans Ende des Layout-Tabs, Hilfetext gekuerzt
  • 036edd6f2026-08-10casi-meta: 1 geaendert (1 Dateien)
  • b1e2e1442026-08-10content+retour: Erster Pull mit Extras — Weiterleitungen zurueck im Source
  • 39acf6af2026-08-10fix(sync,retour): Server-eigene Dateien werden gepullt statt ueberbuegelt
  • 590b10812026-08-10feat(panel,frontend): Ticket-Schwung — Ausrichtung, Links, Rotation, Layout-Sichtbarkeit
  • 3997fc7c2026-08-10chore(kirby): Update auf 5.5.3 — Gleichstand mit Production
  • 066394642026-08-10casi-meta: 1 geaendert (1 Dateien)
  • 8e83ea282026-08-10casi-meta: 1 geaendert (1 Dateien)
  • c5095f322026-08-10casi-meta: 2 geaendert (2 Dateien)
  • a11888792026-08-10content: Pull von validdata.de (Production) — Rechtsseiten umnummeriert, AGB gelistet
  • ed466b412026-08-10hotfix(forms): Formular-Submit findet die Form wieder — Container liegt unter /system
  • 609dd03b2026-08-07hotfix(panel): Drag-Sortierung in Listen laesst Zeilen wieder dort, wo sie abgelegt werden
  • 67256f1f2026-08-06report: release-report aktualisiert (46 Releases, 763 Commits)
  • 68eefdee2026-08-06report: release-report aktualisiert (46 Releases, 763 Commits)
v46
Phase abgeschlossen am 06.08.2026
Die Verwaltungs-Seiten sind aus dem Seitenbaum herausgenommen und unter „System" gebündelt. Die Reihenfolge der Seiten lässt sich im Panel wieder per Drag & Drop ändern. Keine Adresse der Website ändert sich.
Die Verwaltungs-Seiten liegen jetzt gebündelt unter „System" statt zwischen den Seiten der Website. Dadurch lässt sich die Reihenfolge der Seiten im Panel wieder per Drag & Drop ändern. Keine Adresse der Website ändert sich. Dazu eine Korrektur an der Bildaufbereitung, die einzelne Logos betraf.
Für Redakteure

Seitenreihenfolge: Unter Site → Seiten stehen jetzt die elf Seiten der Website, durchnummeriert von 1 bis 11 und per Drag & Drop verschiebbar. Bis dahin ließ sich die Reihenfolge dort nicht zuverlässig ändern — Seiten landeten an anderer Stelle als abgelegt. Der Grund lag in der Mischung: Zwischen den Seiten der Website standen die Verwaltungs-Seiten, das CMS vergibt die Sortiernummern aber über alle Seiten einer Ebene, während die Ansicht nur einen Ausschnitt zeigte.

Neuer Bereich „System": Medien-Bibliothek, Formulare, Posteingang, Mitarbeiterverwaltung, Glossar und Content-Sync liegen dort gebündelt. Am Zugang ändert sich nichts — die Bereiche werden weiterhin über die Einträge in der linken Seitenleiste aufgerufen. Innerhalb von „System" sind die sechs Bereiche ebenfalls sortierbar.

Styleguide, AGB-Seite, Fehlerseite und die Test-Ablage stehen in einer eigenen Übersicht „Intern" und sind aus der Sortierung herausgenommen.

Der Posteingang liegt jetzt unter System › Posteingang. Alle bisherigen Einsendungen sind vollständig übernommen.

Für Besucher

Keine Adresse der Website ändert sich. Vor der Umstellung wurden alle 32 Adressen aus der Sitemap gegen den neuen Stand geprüft: identischer Pfad, identische Auslieferung, kein fehlendes Bild.

Fünf Adressen antworten jetzt mit der Fehlerseite: /glossar, /formulare, /posteingang, /team-mitarbeiter und die Unterseiten von /medien. Das sind Datenquellen für das Panel ohne Inhalt für Besucher — sie waren bis dahin abrufbar und lieferten eine leere Seite aus. In der Navigation, in der Sitemap und bei Suchmaschinen tauchten sie ohnehin nicht auf.

SEO & Performance

Die Sitemap listet unverändert dieselben 32 Adressen. Der neue Bereich „System" und seine Unterseiten sind von Sitemap und Suchmaschinen-Index ausgenommen.

Fünf Adressen, die bisher eine leere Seite auslieferten, antworten jetzt mit der Fehlerseite (/glossar, /formulare, /posteingang, /team-mitarbeiter sowie die Unterseiten von /medien). Sie standen weder in der Sitemap noch im Index, kosteten aber Crawl-Aufrufe.

Bildaufbereitung: Vier Partner-Logos ließen sich in der Entwicklungsumgebung nicht in Vorschaugrößen umrechnen. Ursache war ein als fehlerhaft markiertes Farbprofil in den Dateien, das die Bildbibliothek beanstandet — eine Warnung, kein Fehler, das Bild selbst ist vollständig lesbar. Die Bildaufbereitung übergeht diese Warnung jetzt gezielt; echte Bildfehler brechen weiterhin ab. Auf der Website war das nicht wirksam, dort wurden die Logos durchgehend ausgeliefert.

6 Commits in diesem Zyklus
  • 0a71df8d2026-08-06casi-meta: Release-Buchfuehrung v45 (Decision D260 + Klartext-Spuren)
  • 2b39ae5c2026-08-06refactor(struktur): Pseudo-Content-Seiten unter /system, Sortierung wieder eindeutig
  • 149c5f342026-08-06content: Pull von validdata.de (Production) — Seitenbaum umnummeriert
  • ea38c0702026-08-06fix(images,panel): libpng-Warnung killt keine Thumbs mehr, Sortierung nur wo eindeutig
  • e099af582026-08-06report: release-report aktualisiert (45 Releases, 757 Commits)
  • 7fbe1cec2026-08-06report: release-report aktualisiert (45 Releases, 757 Commits)
v45
Phase abgeschlossen am 06.08.2026
Der CTA-Block nimmt bis zu drei Ansprechpartner auf, die Seitensortierung im Panel läuft überall per Drag & Drop, und die Kontaktfotos werden in höherer Auflösung ausgeliefert. Dazu vier Korrekturen aus dem Live-Betrieb.
CTA-Sektionen nehmen bis zu drei Ansprechpartner auf. Seiten lassen sich im Panel überall per Drag & Drop sortieren, die Reihenfolge-Nummer steht in der Übersicht. Abstände im Logo-Strip sind einstellbar. Dazu Korrekturen aus dem Live-Betrieb an Cookie-Banner, YouTube-Freigabe, Sitemap und Barrierefreiheit.
Für Redakteure

CTA-Sektion: Der Schalter „Mehrere Personen zeigen" blendet eine Mehrfachauswahl für bis zu drei Personen aus der Mitarbeiterverwaltung ein. Die Auswahlreihenfolge bestimmt die Reihenfolge der Portraits und die Namenszeile darunter; sie lässt sich per Drag & Drop ändern. Daneben stehen zwei optionale Textfelder. Bleibt die Namenszeile leer, entsteht sie automatisch aus den Vornamen der Auswahl. Die Rollenzeile erscheint von selbst nur, wenn alle Gewählten dieselbe Position haben — bei gemischten Positionen bleibt sie leer und lässt sich dort frei setzen.

Seitensortierung: In allen neun Seitenübersichten des Panels — Seiten, Module, Lösungen, Blog, Referenzen, Karriere, Medien-Bereiche und Test — lassen sich Einträge per Drag & Drop anordnen, auch dort, wo die Reihenfolge die Website selbst nicht verändert. Die Nummer jeder Seite steht in der Übersicht, Entwürfe zeigen einen Gedankenstrich.

Logo-Strip: Zwei Felder für Spalten- und Reihenabstand mit je vier Stufen von Klein bis Riesig, wie sie die Logo-Leiste im Grid-Modus bereits hatte. Bestehende Blöcke behalten ihren bisherigen Abstand.

SEO-Schalter: Der Ausschluss aus der Sitemap und die noindex-Anweisung sind zwei getrennte Schalter. Ein Sitemap-Ausschluss nimmt eine Seite jetzt nur noch aus der Sitemap, ohne sie zugleich aus dem Suchmaschinen-Index zu nehmen.

Hintergrund-Karte: Sechs Kartenstile aus der Auswahl entfernt, die einen kostenpflichtigen Zugangsschlüssel voraussetzen und ohne diesen eine leere Karte ergeben hätten. Neun Stile bleiben.

Für Besucher

Die Kontaktfotos in den CTA-Sektionen werden in höherer Auflösung ausgeliefert. Die Ausspielung berücksichtigt jetzt, dass diese Portraits klein dargestellt und dabei per Bildausschnitt zusätzlich vergrößert werden.

CTA-Sektionen können drei Ansprechpartner nebeneinander zeigen, auf Desktop und Mobilgerät. Die Portraits überlappen sich; die Lücke dazwischen ist eine Aussparung, durch die der Hintergrund der Sektion läuft, und funktioniert damit auf hellem wie dunklem Grund und über Bildern.

Im Kontaktformular steht „oder schreibt uns" statt der bisherigen Du-Form.

Cookie-Banner: Der Button „Anpassen" ist lesbar — er stand in heller Schrift auf hellem Grund, erkennbar war nur das Chevron. Im Details-Bereich unterscheidet sich der nicht abwählbare Schalter „Notwendig" von einer aktiv getroffenen Auswahl.

YouTube-Videos: Der Freigabe-Button über dem Video öffnet den Cookie-Dialog erneut. Zuvor blieb ein Klick folgenlos, sobald CookieBot aktiv war. Nach erteilter Marketing-Freigabe lädt das Video nach; bleibt die Freigabe aus, erscheint ein Hinweis statt eines stehenden Overlays.

SEO & Performance

Sitemap: 32 statt bisher 44 URLs. Entfallen sind ein Seitenentwurf, die Panel-interne Medien-Bibliothek samt ihren vier Unterbereichen und sechs Platzhalterseiten mit identischem Briefing-Text (zwei Blogposts, vier Case Studies). Sechs der alten Einträge lieferten beim Aufruf einen 404 — sie kosteten Crawl-Budget und erschienen in der Search Console als Fehler. Fällt der Platzhalter-Schalter einer Seite weg, steht sie automatisch wieder in der Sitemap.

Sitemap-Eintrag und Index-Anweisung sind entkoppelt. Strukturierte Daten für Stellenanzeigen und der RSS-Feed folgen jetzt der Index-Entscheidung statt dem Sitemap-Eintrag. Passwortgeschützte Seiten sind durchgängig ausgenommen, bisher hing das an einem einzelnen handgesetzten Feld.

Bildausspielung: Die Qualitätsstufe richtet sich nach der Darstellungsgröße statt nach der Dateibreite. Die höher aufgelösten Varianten kleiner Bilder fielen bisher in die schwächere Stufe für große Bilder — betroffen waren die Kontaktfotos der CTA-Sektionen und die Galerie-Vorschaubilder.

Hintergrund-Videos erhalten einen Cache-Header. Die Hero-Schleifen zwischen 5 und 18 MB wurden zuvor bei jedem Seitenaufruf neu geladen.

Das Vorschaubild der Stellenseite Frontend-Entwicklung wird als WebP mit 115 KB ausgeliefert statt als PNG mit 2,4 MB. Die Schriftschnitte Roboto 500 und 700 werden vorgeladen, das Footer-Logo als WebP mit gesetzten Maßen.

Barrierefreiheit: Fokussierbare Elemente in ausgeblendeten Bereichen sind korrekt behandelt — betroffen waren die geschlossene Kontakt-Lightbox, die Video-Steuerung und die Punkte der Bewertungs-Navigation. Dazu korrigiert: die Beschriftungen von Video-Button und Sterne-Bewertung, der Link der Galerie-Großansicht und die Überschriften-Reihenfolge im Ausbildungs-Block.

17 Commits in diesem Zyklus
  • 3aef80482026-08-06casi-note: Handover 2026-08-03 versioniert (blockierte den refresh_current-Precheck)
  • 40dbb26d2026-08-06feat(cta): Mehrpersonen-Avatare ueberlappend, Fuge per Maske statt Ring
  • f6d792272026-08-06chore(map): Tote Stadia-Layer aus der Panel-Auswahl, Sprach-Befund dokumentiert
  • 3560af982026-08-06feat(cta,panel,logo-strip): Mehrpersonen-CTA, schaerfere Portraits, Panel-Sortierung
  • d9d899b32026-08-06content: Pull von validdata.de (Production)
  • 984823952026-08-05fix(a11y,perf): ARIA-Defekte und Cache-/Bild-Lecks aus Live-Lighthouse-Pass
  • dfea2f972026-08-05content: Pull von validdata.de (Production) — Ausbildung + Partner
  • 4b45d1c42026-08-04fix(seo): Sitemap bereinigt, noindex von der Sitemap entkoppelt
  • daac1e612026-08-04content: Pull von validdata.de (Production) — 5_karriere entfernt
  • 32c671012026-08-03fix(cookie): Anpassen-Button sichtbar, YT-Gate im CookieBot-Modus funktionsfaehig
  • 8764cf012026-08-03content: Pull von validdata.de (Production) — Live-Stand uebernommen
  • 3191669f2026-07-25chore: kirby-block-workflow gebunden (D259)
  • 304330e32026-07-25wp-9-validdata: 1 geaendert (1 Dateien)
  • d9c641d42026-07-25feat: CLAUDE.md fuer Claude Code generiert
  • 4b6f77a22026-07-23casi-meta: 2 hinzugefuegt, 4 geaendert (6 Dateien)
  • 98b8336e2026-07-17report: release-report aktualisiert (44 Releases, 740 Commits)
  • e6f364c32026-07-17report: release-report aktualisiert (44 Releases, 740 Commits)
v44
Phase abgeschlossen am 17.07.2026
Geschützter AGB-Bereich, Datei-Downloads als neuer Block-Typ, mehr Panel-Stellschrauben (404-Texte, Header-Button, MegaNav-Links) und korrigierte Weiterleitungen.
Passwortgeschützte AGB-Seite unter /agb, neuer Block-Typ "Downloads" für Datei-Angebote (PDF, Office, ZIP), 404-Seiten-Texte und Header-CTA-Text im Panel pflegbar, MegaNav-Zusatzlinks als Panel-Feld, Weiterleitungs-Ziele auf Kirby-Seiten umgestellt und zwei defekte Ziele korrigiert, Scroll-Animationen auf Mobilgeräten früher ausgelöst und gestrafft, Karten-Pin auf die Firmenadresse Loikumer Str. 18a (Dingden) gesetzt, Teamfotos und Team-Karten-Beschriftung (Funktion unter dem Vornamen) aktualisiert.
Für Redakteure

Neuer Block-Typ "Downloads" im Layout-Editor (Gruppe Aktion & Service): Dateien hochladen (PDF, Word, Excel, PowerPoint, ZIP), pro Datei Titel und Beschreibung in den Datei-Details pflegen, Reihenfolge per Drag & Drop.

Neuer Seitentyp "Geschützte Seite" mit Tab "Zugangsschutz": Passwort und alle Texte der Passwort-Abfrage sind Felder im Panel. Ohne gesetztes Passwort ist die Seite frei zugänglich. Die AGB-Seite nutzt diesen Typ.

Die 404-Seite ist unter Site → Module → "Seite nicht gefunden" erreichbar; Overline, Überschrift, Fließtext, beide Buttons und der Fußnoten-Tipp sind dort pflegbar.

Weitere neue Felder: Button-Text des Header-CTA (Site → Navigation), weiterführende Links im Mega-Menü (Site → Navigation, leer = keine Links), Schalter "Raster-Textur anzeigen" im Team-Moment-Block.

Weiterleitungen (Panel → Retour) haben als Ziel jetzt Kirby-Seiten statt eingetippter Pfade — Ziel-Auswahl über die Option "Seite". Empfehlung: neue Weiterleitungen zuerst als 302 testen, dann auf 301 stellen, weil Browser 301-Weiterleitungen dauerhaft speichern.

Für Besucher

Unter /agb liegt ein passwortgeschützter Bereich: Besucher geben ein Passwort ein und bleiben für die Browser-Sitzung freigeschaltet; dort stehen Dateien über den neuen Downloads-Block bereit (Format-Kennzeichnung, Dateigröße, Download per Klick).

Auf den Team-Karten steht die Funktion jetzt unter dem Vornamen ("Henrik / Geschäftsführer"); die Namensposition auf der Karte bleibt unverändert. 32 Mitarbeiterfotos sind eingespielt.

Scroll-Animationen starten auf Mobilgeräten früher und laufen kürzer — Inhalte erscheinen beim Anhalten während des Scrollens vollständig, ohne leere Bereiche.

Alte Adressen der Vorgänger-Website (z. B. /das-sind-wir, /jobs, /wissen) leiten auf die passenden Seiten weiter; zwei Ziele davon waren fehlerhaft und sind korrigiert. Der Karten-Pin der Regionalkarte liegt auf der Firmenadresse Loikumer Str. 18a in Hamminkeln-Dingden.

SEO & Performance

14 aktive Weiterleitungen der Alt-URLs führen per 301 auf existierende Seiten; zwei Ziele (/microsoft-365, /stellenangebote/systemintegrator) endeten in einer Fehlerseite und sind korrigiert. Weiterleitungs-Ziele referenzieren Seiten über ihre interne ID — Slug-Umbenennungen im Panel brechen die Ziele nicht mehr.

Die AGB-Seite ist aus der Sitemap ausgeschlossen und für Suchmaschinen auf noindex gesetzt.

Die Animations-Auslösung nutzt weiterhin IntersectionObserver (keine Scroll-Handler); die Anpassung betrifft nur Schwellwerte und Dauern, keine zusätzliche Last.

18 Commits in diesem Zyklus
  • b9f393f72026-07-17content: Pull von staging.validdata.de — Teamfotos (32 Mitarbeiter-Bilder), AGB-Downloads (PDF + ZIP), Team-Edits
  • f6cf54c02026-07-17feat(team-moment): Raster-Textur panel-schaltbar
  • 3c2df88a2026-07-17feat(block): vd-downloads — Datei-Downloads (PDFs & Dokumente)
  • 3bfafea82026-07-17fix(team): Funktion unter den Vornamen — Name bleibt vertikal exakt an Ort
  • d28516542026-07-17fix(map): HQ-Pin auf echte Firmenadresse verschoben (Loikumer Str. 18a, Dingden)
  • afbd43722026-07-17feat(nav): Header-CTA-Text im Panel pflegbar
  • b82a88072026-07-17fix(anim): Scroll-Trigger frueher + mobile gestrafft — kein leerer Screen beim Lese-Stopp
  • 5a223d092026-07-17content: Pull von staging.validdata.de — Telefonie-Header, redaktionelle Text-Updates (KI, Referenzen, Karriere, Team)
  • a143bc582026-07-17fix(retour): Redirect-Ziele auf echte Kirby-Seiten (page://UUID) umgestellt
  • ab8e53422026-07-17content: Pull von staging.validdata.de — Header-Bilder Foerderung/Datenauswertung, MegaNav-Links auf echte UUIDs, alte Karriere-Bilder entfernt
  • 16631ec72026-07-17fix(panel): error-Blueprint ohne preset — Felder erscheinen wieder
  • 303884322026-07-17content(agb): Beispiel-Inhalt + Demo-Passwort test1234
  • f5ef002c2026-07-17fix(panel): 404-Seite unter Module sichtbar machen
  • 7bc4499b2026-07-17feat(zugangsschutz): Template 'geschuetzt' — seitenbasierter Passwortschutz
  • 4dec05652026-07-17feat(error): 404-Seiten-Texte im Panel pflegbar
  • 1884e2722026-07-17feat(nav): MegaNav-Sekundaerlinks panel-pflegbar statt hartcodiert
  • 83b0914e2026-07-16report: release-report aktualisiert (43 Releases, 722 Commits)
  • eef83aed2026-07-16report: release-report aktualisiert (43 Releases, 722 Commits)
v43
Phase abgeschlossen am 16.07.2026
Tracking per Google Tag Manager, Korrekturen am Bewerbungsformular, CMS-Kern-Update und die Werkzeuge fuer den Livegang.
Besucher-Tracking laeuft ueber den Google Tag Manager mit Cookie-Einwilligung (Consent Mode v2), das Bewerbungsformular meldet Pflichtfeld-Fehler und Versandbestaetigung direkt im Formularfenster, und E-Mail-Benachrichtigungen koennen an mehrere Empfaenger gehen. Fuer den Livegang stehen Produktions-Konfiguration und ein Transfer-Werkzeug bereit, das den Staging-Stand per Aufruf in die Produktionsumgebung uebertraegt. Der CMS-Kern (Kirby) ist auf Version 5.5.2 aktualisiert.
Für Redakteure

Der Panel-Tab heisst jetzt "Cookies & Tracking" und enthaelt ein Feld fuer die Google-Tag-Manager-Container-ID (eingetragen: GTM-TT6SSQFT) plus eine Kurzanleitung: Neue Tracking-Dienste werden als Tag im GTM-Container angelegt und dort veroeffentlicht — im Panel und in CookieBots Skript-Verwaltung ist dafuer nichts zu tun.

Bei Formularen nimmt das Empfaenger-Feld mehrere E-Mail-Adressen Komma-getrennt an; der Versand geht dann an alle eingetragenen Adressen.

Für Besucher

Das Bewerbungsformular haelt das Formularfenster beim Absenden offen: Ein fehlender Pflicht-Haken (Datenschutz) wird direkt am Feld gemeldet, nach erfolgreichem Versand erscheint die Bestaetigung im selben Fenster.

Im Footer heben alle klickbaren Elemente — Seiten-Links, Social-Media, TeamViewer-Downloads, Telefon und E-Mail — beim Ueberfahren mit der Maus in Orange hervor.

Tracking (Google Analytics, Leadinfo) startet erst nach Einwilligung im Cookie-Banner; ohne Einwilligung gehen keine Anfragen an die Tracking-Dienste.

SEO & Performance

Der CMS-Kern (Kirby) laeuft auf Version 5.5.2, die mitgelieferten Bibliotheken (u.a. Mail-Versand) sind aktualisiert.

Die Cookie-Einwilligung nutzt Google Consent Mode v2: Alle Tracking-Signale stehen vor der Einwilligung auf "abgelehnt", die Freigabe je Dienst steuert der GTM-Container. Gemessen auf dem Staging-System: ohne Einwilligung null Anfragen an Tracking-Dienste.

Staging- und Test-Adressen (staging.validdata.de, live-transfer.validdata.de) senden einen noindex-Header — Suchmaschinen indexieren nur validdata.de.

14 Commits in diesem Zyklus
  • 74ed73b12026-07-16content: Pull von staging.validdata.de — GTM-Container-ID im Panel gepflegt
  • 3d7d68882026-07-16fix(golive): Server-Layout korrigiert — Webroot liegt in <domain>/htdocs/, Quelle zwei Ebenen hoch
  • 5b6639ae2026-07-16fix(golive): Staging-Quelle relativ hergeleitet (Geschwister-Ordner) — kein Anpassen vor Upload noetig
  • f7843f5f2026-07-16feat(golive): Live-Transfer-Werkzeug + Noindex-Schutz fuer Nicht-Prod-Hosts
  • a15270aa2026-07-16feat(config): Production-Host-Config fuer validdata.de
  • 11cc5a562026-07-16content: Pull von staging.validdata.de (2026-07-16)
  • f6124ee32026-07-16fidelity(footer): Hover einheitlich Saffron fuer alle klickbaren Elemente
  • 9fff534a2026-07-16fix(panel): Kirby-3-Relikt access.settings aus Rollen entfernt
  • 279b93672026-07-16fix(forms): Mehrere Mail-Empfaenger Komma-getrennt moeglich
  • 7eb0d4c92026-07-16fix(forms): Lightbox zeigt Submit-Feedback (Pflichthaken + Erfolgsmeldung)
  • 1c7336742026-07-16feat(tracking): GTM-Container panel-gesteuert, CookieBot auf manuelles Blocking bei aktivem GTM
  • b6e7b94f2026-07-16chore(kirby): Update 5.4.0 auf 5.5.2 (Core + Dependencies)
  • 6c95dc902026-07-15report: release-report aktualisiert (42 Releases, 708 Commits)
  • c102c87a2026-07-15report: release-report aktualisiert (42 Releases, 708 Commits)
v42
Phase abgeschlossen am 15.07.2026
Sechs Redaktions-Tickets aus der Panel-Praxis plus pflegbare Google-Jobs-Daten für Stellenanzeigen — dazu der aktuelle Redaktionsstand von staging.validdata.de.
Team-Verknüpfungen laufen jetzt über eine feste Kennung pro Person und überstehen Namens- oder Positionsänderungen. Galerie-Bilder lassen sich im Panel per Drag-and-drop sortieren. Kununu-Sektion mit Zeilenumbruch-Marker und wählbarer Überschriftgröße. Der Initiativ-Button auf der Karriere-Seite ist mobil so breit wie sein Text, Ausrichtung wählbar. Footer: Logo mit Claim in der Breite der Social-Media-Zeile, TeamViewer-Downloads unten links, Copyright in der Zeile der Rechtslinks. Stellenanzeigen: Titel, Beschreibung und Datumsangaben für Google Jobs sind pro Stelle im Panel pflegbar. Dazu der aktuelle Redaktionsstand von staging.validdata.de.
Für Redakteure

In der Mitarbeiterverwaltung gibt es pro Person das neue Feld „Kennung" (Empfehlung: Eintrittsjahr/-monat plus Vorname, z. B. 2510_Leon). Einmal vergeben, bleibt die Verknüpfung in Team-Grids und CTA-Blöcken bei jeder Namens- oder Positionsänderung bestehen; ohne Kennung gilt übergangsweise der bisherige Schlüssel aus Vorname und Position. Nach dem Eintragen einer Kennung die Person im jeweiligen Block einmal neu auswählen.

Galerie-Blöcke: Die Bilder-Liste lässt sich per Drag-and-drop sortieren; jede Zeile hat dafür einen Greif-Punkt am linken Rand.

Kununu-Block: Der Marker || erzwingt in Überschrift und Untertitel ab Tablet-Breite einen Zeilenumbruch (auf dem Smartphone läuft der Text durch). Die Überschriftgröße ist wählbar: Standard oder Groß.

Stellenangebote-Block: Für den Initiativ-Button gibt es die Option „Button-Ausrichtung (Mobil)" mit den Werten linksbündig und zentriert.

Stellen-Seiten: Im Tab „Stelle" steht der neue Abschnitt „Google Jobs (JobPosting-Schema)" mit vier Feldern — Schema-Titel, Schema-Beschreibung, Veröffentlicht am, Gültig bis. Leere Felder bedeuten: Die Daten kommen wie bisher automatisch aus Seitentitel und Seiteninhalt.

Für Besucher

Auf der Karriere-Seite ist der Button der Initiativ-Karte auf dem Smartphone so breit wie sein Text; vorher füllte er die volle Kartenbreite. Im Footer nutzt das Logo mit Claim am Desktop die Breite der Social-Media-Zeile darunter. Die TeamViewer-Downloads (Windows/Mac) stehen als eigene Zeile unten links; das Copyright steht in einer Linie mit Datenschutz, Impressum und Cookies. Dazu der aktuelle Redaktionsstand: unter anderem ein Standort-Foto auf der Karriere-Seite und Textstände auf Startseite und drei Lösungs-Seiten.

SEO & Performance

Die Google-Jobs-Auszeichnung der Stellen-Seiten (JobPosting, strukturierte Daten) ist pro Stelle im Panel steuerbar: Titel, Beschreibung, Veröffentlichungsdatum und Ablaufdatum lassen sich getrennt vom Seiteninhalt setzen. Damit kann die Stellenanzeige für Google die verbreitete Such-Schreibweise (z. B. „Softwareentwickler (m/w/d)") führen, während die Seite selbst eine andere Formulierung nutzt (z. B. „Software-Entwicklung"). Ohne Einträge gelten die automatischen Werte aus Seitentitel und Seiteninhalt.

7 Commits in diesem Zyklus
  • d2be95a52026-07-15feat(seo): JobPosting-Schema per Panel uebersteuerbar
  • 677f69f92026-07-15feat(panel,frontend): Ticket-Batch 2026-07-15
  • 72de566e2026-07-15content: Redaktions-Pull von staging.validdata.de (12 Dateien)
  • 66145e242026-07-13content: Redaktions-Pull von staging.validdata.de (staging federfuehrend)
  • b65498482026-07-13fix(responsive): Header/Footer/Nav im Tablet-Hochformat (768-1023px) reparieren
  • 5c69a02b2026-07-13report: release-report aktualisiert (41 Releases, 701 Commits)
  • 979ba5632026-07-13report: release-report aktualisiert (41 Releases, 701 Commits)
v41
Phase abgeschlossen am 13.07.2026
Neue Panel-Optionen an Karriere-Seite, Zitat-Block und Footer, TeamViewer-Downloads im Footer, plus aktualisierter Redaktionsstand aus der Vorschau-Umgebung.
Erweiterungen an Karriere-Seite, Zitat-Block, Footer und Problem-Lösung-Karten; Redaktionsstand von der Vorschau-Umgebung übernommen. Die Karriere-Seite erhält den Hintergründe-Tab (Karte oder Hintergrund-Video je Abschnitt) wie die Standardseite. Zitat-Block: Schriftgröße "Episch" kleiner gesetzt, bisherige Größe als neue Stufe "Mega-Episch". Footer: neues Feld "Footer-Logo (mit Claim)" unter Branding (leer = weißes Logo) sowie zwei TeamViewer-QuickSupport-Downloads (Windows und Mac) rechts neben dem Cookie-Hinweis. Problem-Lösung-Karten: Textfelder als Writer-Feld, Glossar-Begriffe direkt einfügbar.
Für Redakteure

Karriere-Seite: neuer Tab "Hintergründe" — je Abschnitt lässt sich eine Karte oder ein Hintergrund-Video hinterlegen, gleiche Funktion wie bei der Standardseite.

Zitat-Block: die Schriftgröße "Episch" ist kleiner gesetzt; die bisherige Größe steht als neue Stufe "Mega-Episch" zur Auswahl.

Branding: neues Feld "Footer-Logo (mit Claim)" — bei leerem Feld bleibt im Footer das weiße Logo.

Problem-Lösung-Karten: die Textfelder für Problem und Lösung sind Writer-Felder; Glossar-Begriffe lassen sich über die Schreib-Leiste einfügen.

Redaktionsstand von der Vorschau-Umgebung übernommen (Glossar, Startseite, Lösungen, Referenzen, Karriere, Team, Kontakt, Formulare, Site-Einstellungen).

Für Besucher

Footer: unten rechts, neben dem Cookie-Hinweis, zwei TeamViewer-QuickSupport-Downloads (Windows und Mac) für die Fernwartung, zusammengefasst in einer eigenen Schaltfläche.

Karriere-Seite: einzelne Abschnitte können eine Karte oder ein Hintergrund-Video als Hintergrund erhalten.

14 Commits in diesem Zyklus
  • b25bb7892026-07-13content: frischer Redaktions-Pull von staging.validdata.de (18 Dateien)
  • 066e06f12026-07-13feat(panel,footer): Karriere-Hintergruende, Zitat Mega-Episch, Footer-Logo & TeamViewer, Glossar in Karten
  • 7c5406a42026-07-10chore(git): .gitattributes erzwingt LF fuer *.sh
  • 331f174b2026-07-10chore(tools): staging-handover-Script versioniert nach tools/
  • a5090c022026-07-10report: release-report aktualisiert (40 Releases, 687 Commits)
  • 81530a212026-07-10fix(blueprints): Array-wertige when-Bedingungen greifen nie -> Felder dauerhaft versteckt
  • 006cddf82026-07-10feat(linear-nav): Ansprache "euch" + Site-weiter Standard-Vorspann
  • 31c27b542026-07-09content(datenschutz): Adobe Fonts (Typekit) als Abschnitt 14 ergaenzt
  • cda1f17e2026-07-09fix(menu,counter,redirects): No-JS-Zaehlerwerte, /blog + /referenzen kanonisch
  • b94b1f212026-07-09chore(content): Sync von staging.validdata.de
  • fe1a0d482026-07-09docs(casi): Kompilieren jederzeit erlaubt, nur Release freigabepflichtig
  • fe117e912026-07-09fix(bewertungen): Kunden-Logos Clay-on-Smoke statt weissem Cropping
  • edd3cdf32026-07-09fix(cookiebot): Lesbarkeit + Ueber-Cookies-Tab + Kategorie-Badges
  • 0829f20c2026-07-09fix(cookiebot,htaccess): CookieBot-Whitelabel finalisieren + Staging-noindex lokal
v40
Phase abgeschlossen am 10.07.2026
Vier Panel-Felder, die durch eine fehlerhafte Anzeige-Bedingung dauerhaft verborgen waren, sind wieder erreichbar: der Vorspann-Text der linearen Navigation (pro Seite), bei Bild-Blöcken die Ausrichtung sowie bei Zitat-Blöcken die Divider-Farbe und -Breite.
2 Commits in diesem Zyklus
  • 339d17d82026-07-10report: release-report aktualisiert (39 Releases, 685 Commits)
  • 1c9088972026-07-10report: release-report aktualisiert (39 Releases, 685 Commits)
v39
Phase abgeschlossen am 09.07.2026
Die Ansprache über den Weiter/Zurück-Karten am Seitenende ist zentral im Panel pflegbar und steht im Standard auf der Plural-Anrede „euch".
Ansprache über den Weiter/Zurück-Karten am Seitenende (lineare Navigation) ist zentral im Panel pflegbar (Site → Seiten/Navigation) und lautet als Standard „Das könnte euch auch interessieren". Einzelne Seiten können den Text weiterhin überschreiben.
Für Redakteure

Neues Feld „Lineare Navigation — Standard-Vorspann" unter Site → Seiten/Navigation. Der dort eingetragene Text steht als Ansprache über den Weiter/Zurück-Karten am Ende jeder Seite. Einzelne Seiten überschreiben ihn im Navigation-Tab über das Feld „Section-Vorspann". Bleibt beides leer, greift der Standard „Das könnte euch auch interessieren".

Für Besucher

Über den Weiter/Zurück-Karten am Seitenende steht die Ansprache „Das könnte euch auch interessieren" in Plural-Anrede.

2 Commits in diesem Zyklus
  • 5726f0942026-07-09report: release-report aktualisiert (38 Releases, 683 Commits)
  • a89b22242026-07-09report: release-report aktualisiert (38 Releases, 683 Commits)
v38
Phase abgeschlossen am 09.07.2026
Cookie-Dialog durchgaengig im Validdata-Design und Indexierungs-Schutz fuer die Vorschau-Umgebung.
Cookie-Einwilligungsdialog durchgaengig im Validdata-Design (ohne Fremd-Logo); Indexierungs-Schutz fuer die Vorschau-Umgebung (staging) aktiv.
Für Redakteure

Keine neuen Panel-Felder oder -Schalter. Die Cookie-Einstellungen (Modus, Cookiebot-Kennung) im Tab Cookie-Hinweis bleiben unveraendert.

Für Besucher

Der Cookie-Hinweis-Dialog laeuft durchgaengig im Validdata-Design: Farben, Schrift und Buttons wie auf der uebrigen Website. Das Cookiebot-Logo und ein leerer Kopfbereich oberhalb der Reiter entfallen. Der Reiter Details mit der Liste der Cookie-Kategorien nutzt eine schmale Scrollleiste in der Akzentfarbe (Saffron).

SEO & Performance

Die Vorschau-Umgebung (staging.validdata.de) sendet fuer alle Seiten einen noindex-Hinweis (X-Robots-Tag), damit Suchmaschinen die Vorschau nicht in den Index aufnehmen. Der Hinweis ist an den staging-Host gebunden und entfaellt auf der Live-Domain beim Launch ohne weiteren Eingriff. Kein Passwortschutz, damit die Redaktion die Vorschau ohne Login abrufen kann.

4 Commits in diesem Zyklus
  • e29474242026-07-09htaccess: Kommentar zum Staging-noindex korrigiert — expr= per Sandbox-Apache verifiziert, REDIRECT_-These widerlegt, sFTP-Hinweis ergaenzt
  • c2475e722026-07-09htaccess: Staging-noindex von env= auf expr= umgestellt — REDIRECT_-Umbenennung bei Kirby-Rewrites machte env-Bedingung auf HTML-Seiten wirkungslos
  • 422f57722026-07-09htaccess: X-Robots-Tag noindex host-bedingt fuer staging.* — Indexierungs-Schutz ohne Passwort, launch-neutral
  • 58193c7e2026-07-09report: release-report aktualisiert (37 Releases, 679 Commits)
v37
Phase abgeschlossen am 09.07.2026
v37: Panel-Option beim Karten-Hintergrund, CookieBot-Erscheinungsbild und Redaktionsstand. Karten-Hintergrund: neue Einstellung, die den Button „Karte erkunden" beim Herunterscrollen vor dem Ende der Karten-Sektion ausblendet — je ein Schieberegler für Desktop und Mobil gibt den Abstand in Pixeln an (0 = Button bleibt bis zum Sektionsende). Der Button erscheint beim Hochscrollen wieder und bleibt im aktiven Kartenmodus stehen. CookieBot: der Zustimmungsdialog übernimmt das Validdata-Erscheinungsbild (dunkler Hintergrund, Saffron-Akzent, Schriften Roboto und Klavika, abgerundete Buttons) über ein eigenes Stylesheet; greift auch ohne CookieBot-Premium. Die Entfernung des Hinweises „Powered by Cookiebot" (Whitelabel) ist vorbereitet, aber deaktiviert — sie setzt ein Premium-/Whitelabel-Abo voraus. Redaktionsstand von staging.validdata.de übernommen (Startseite, Lösungen Systemtechnik und IT-Consulting, Site-Einstellungen), Header-Video der Startseite aktualisiert. CSS und Karten-Bundle neu kompiliert.
13 Commits in diesem Zyklus
  • fcca45972026-07-09chore(content): Sync von staging.validdata.de
  • fff4fa802026-07-09feat(karte,cookiebot): Karte-erkunden Ausblende-Puffer + CookieBot-Style-Override
  • b0f172922026-07-08report: release-report aktualisiert (36 Releases, 666 Commits)
  • 780ab6ed2026-07-08report: release-report aktualisiert (36 Releases, 666 Commits)
  • 44b933c82026-07-08chore(content): Site-Einstellungen aus Panel
  • 2d8c1b0b2026-07-08feat(whatsapp): Farbe + Position (links/rechts) konfigurierbar
  • f90790792026-07-08fix(cookiebot): eingebettete Videos an CookieBot-Consent hängen
  • e95105df2026-07-08fix(cookiebot): eigene Bundles vom Auto-Blocking ausnehmen
  • ff850d392026-07-08fix(herausforderungen): Problem-Overline in Saffron statt theme-abhängigem Weiß
  • fe2ee76a2026-07-08fix(whatsapp): Button erst nach Cookie-Consent einblenden
  • 7e3c3a832026-07-08chore(content): Sync von staging.validdata.de
  • 67e11ee52026-07-08feat: Batch-2 Features (WhatsApp, Ausbildung-Slider, Logo-Downloads, LocalBusiness) + geteilte Dateien
  • ff618ffa2026-07-08fix: Batch-1 Panel/Frontend-Fixes
v36
Phase abgeschlossen am 08.07.2026
WhatsApp-Button mit wählbarer Farbe und Position, der erst nach der Cookie-Auswahl erscheint; CookieBot-Anbindung ergänzt, sodass Seiten-JS und eingebettete Videos auch bei aktivem CookieBot laufen; Farb-Korrektur einer Overline auf den Problem/Lösung-Karten.
WhatsApp-Button: Farbe und Position (links/rechts) im Panel wählbar, erscheint erst nach der Cookie-Zustimmung. CookieBot-Anbindung: eigenes Seiten-JS und eingebettete Videos laufen auch bei aktivem CookieBot. Farb-Korrektur der oberen Overline auf den Problem/Lösung-Karten.
Für Redakteure

Im Tab „WhatsApp-Button" zwei neue Felder: Position (unten rechts / unten links) und Button-Farbe (Hex, Default WhatsApp-Grün #25d366). Bei Position „unten rechts" wird der „Nach oben"-Button ausgeblendet, weil beide dieselbe Ecke belegen.

Für Besucher

Der WhatsApp-Button erscheint erst, nachdem die Cookie-Auswahl getroffen wurde, und lässt sich in Farbe und Ecke (unten rechts oder links) einstellen.

Bei aktivem CookieBot laufen Navigation, Animationen, Formulare und eingebettete YouTube-/Vimeo-Videos (Letztere nach Zustimmung) wie gewohnt.

Auf den Problem/Lösung-Karten steht die obere „Problem"-Overline in der Akzentfarbe (Orange), passend zur unteren „Lösung"-Overline.

2 Commits in diesem Zyklus
  • 659f06f62026-07-08report: release-report aktualisiert (35 Releases, 664 Commits)
  • 6e02d4a72026-07-08report: release-report aktualisiert (35 Releases, 664 Commits)
v35
Phase abgeschlossen am 01.07.2026
Neue Panel-Optionen und Website-Funktionen: WhatsApp-Kontaktbutton, CookieBot-Anbindung mit dem bisherigen Cookie-Banner als Rückfalloption, Logo-Downloads im Styleguide, LocalBusiness-Angaben für Suchmaschinen und Navigationspfeile im Ausbildungs-Block.
Neue Panel-Optionen und Website-Funktionen: WhatsApp-Kontaktbutton, CookieBot-Anbindung (mit dem bisherigen Cookie-Banner als Rückfalloption), Logo-Downloads im Styleguide, LocalBusiness-Angaben für Suchmaschinen, Navigationspfeile im Ausbildungs-Block sowie zusätzliche Layout- und Karten-Einstellungen im Panel.
Für Redakteure

Neuer Panel-Tab „WhatsApp-Button" mit Feldern für An/Aus, Nummer, Vorab-Nachricht, Tooltip-Text und Mobile-Anzeige.

Im Cookie-Tab ein Umschalter „Consent-Verwaltung" (CookieBot oder eigener Banner) und ein Feld für die CookieBot-CBID. Die Felder des eigenen Banners erscheinen nur im Modus „eigener Banner".

Im Tab Meta/SEO ein Abschnitt „LocalBusiness" mit Unternehmens-Typ, Geo-Koordinaten, Öffnungszeiten und Preisniveau; Name, Adresse und Kontakt kommen aus dem Tab Branding.

Im Layout-Editor unter „Hintergrund" die zusätzliche Farboption „Weiß" (deckend) neben „Ohne (transparent)".

Der Block „Problem/Lösung-Karten" hat zwei Textfelder für die Overlines oben und unten sowie einen Schalter zum Ausblenden.

Bei Hintergründe → Video die Button-Position „Kein Button (aus)" und ein Hinweis, für Mobile ein Hochformat-Video zu hinterlegen.

Im Styleguide eine Sektion „Logo-Downloads" mit den Formaten SVG und PNG je Logo-Variante.

Für Besucher

Ein WhatsApp-Button unten rechts öffnet einen Chat an die hinterlegte Nummer (nach Aktivierung im Panel). Er liegt unterhalb des Fokusthema-Fly-Ins oben rechts, ohne Überschneidung.

Im Ausbildungs-Block gibt es Navigationspfeile links und rechts zusätzlich zum Wischen.

Der Cookie-Hinweis läuft über CookieBot, sobald eine CBID hinterlegt ist; ohne CBID bleibt der bisherige Banner aktiv.

Layout-Sektionen lassen sich mit weißem Hintergrund anlegen.

SEO & Performance

LocalBusiness-Angaben als strukturierte Daten (JSON-LD) im Kopfbereich jeder Seite: Firmenname, Adresse, Telefon und E-Mail, dazu optional Unternehmens-Typ, Geo-Koordinaten und Öffnungszeiten. Diese Angaben werten Suchmaschinen für die lokale Suche und das Firmen-Info-Fenster aus. Ausgabe site-weit, über einen Schalter im Panel steuerbar.

2 Commits in diesem Zyklus
  • 2a7128312026-07-01report: release-report aktualisiert (34 Releases, 662 Commits)
  • 3f6100652026-07-01report: release-report aktualisiert (34 Releases, 662 Commits)
v34
Phase abgeschlossen am 01.07.2026
Der Panel-Bereich Weiterleitungen laeuft jetzt auch auf Servern ohne SQLite-Datenbanktreiber.
Weiterleitungen-Bereich (Retour): 404-Protokollierung deaktiviert, damit die Redirect-Verwaltung im Panel ohne SQLite-Treiber laeuft. Auf Servern ohne pdo_sqlite-Modul meldete der Bereich sonst einen Treiberfehler beim Oeffnen. Die Verwaltung der 301/410-Weiterleitungen bleibt unveraendert.
Für Redakteure

Der Panel-Bereich Weiterleitungen oeffnet ohne Fehlermeldung. Die Protokollierung nicht gefundener Adressen (404) ist aus, weil sie einen Datenbanktreiber voraussetzt, der auf dem Server nicht geladen ist. Das Anlegen und Bearbeiten der Weiterleitungen (301/410) ist davon unberuehrt.

SEO & Performance

Die 301/410-Weiterleitungen aus v33 sind unveraendert aktiv (Quelle: site/config/retour.yml, keine Datenbank noetig). Fuer die 404-Auswertung im Panel muss serverseitig das PHP-Modul pdo_sqlite aktiviert werden; danach laesst sich die Protokollierung wieder einschalten.

3 Commits in diesem Zyklus
  • 02e613ea2026-07-01fix(retour): 404-Log deaktivieren (distantnative.retour.logs=false)
  • cef8af842026-07-01report: release-report aktualisiert (33 Releases, 659 Commits)
  • f51d15a42026-07-01report: release-report aktualisiert (33 Releases, 659 Commits)
v33
Phase abgeschlossen am 01.07.2026
Korrekturen an vier Block-Typen, ein neuer Block-Typ fuer Einzelbilder, ein Panel-Bereich zur Verwaltung von Weiterleitungen (Retour) und ein Content-Abgleich mit der Staging-Instanz.
Panel-Ticket-Batch + Retour + Content-Sync. Team-Auswahl in vd-cta/vd-team-grid ueber Vorname::Position (gleichnamige Mitarbeiter wieder einzeln waehlbar). Neuer Block-Typ vd-bild (Einzelbild: Groesse, Zuschnitt, Ausrichtung, Bildunterschrift). vd-crosslinks bis 6 Verweise mit Linktext-Override. vd-process auf 4 Schritte begrenzt. Retour-Plugin 5.6.0 installiert, site/config/retour.yml aus Alt-URLs von validdata.de vorbefuellt (301 aktiv + Autoren-Archiv 410; 20 Eintraege disabled zur Panel-Pruefung). Content 1:1 von staging.validdata.de gezogen (Ordner-Praefix-Renumber, Slugs unveraendert). CSS neu kompiliert.
Für Redakteure

Team-Auswahl in den Block-Typen CTA und Team-Grid: Die Auswahl unterscheidet gleichnamige Mitarbeiter (zwei David, zwei Tim, zwei Oliver) ueber die Position, alle stehen im Auswahl-Menue einzeln zur Wahl.

Neuer Block-Typ Einzelbild mit Feldern fuer Bildgroesse, Zuschnitt (Seitenverhaeltnis), Ausrichtung und Bildunterschrift — als schlanke Alternative zum Galerie-Block fuer ein einzelnes Bild.

Block-Typ Querverweise: bis zu 6 Verweise pro Block (vorher 3), pro Verweis ein eigener Linktext (Beispiel „M365 / Cloud" statt des vollen Seitentitels).

Block-Typ Prozess-Timeline auf 4 Schritte begrenzt.

Neuer Panel-Bereich Weiterleitungen (Retour, nur fuer Admins): Umleitungen mit Code 301 (dauerhaft) und 410 (Seite entfaellt) pflegbar, Aufrufe nicht gefundener Adressen werden protokolliert.

Für Besucher

Einzelne Bilder mit Bildunterschrift lassen sich jetzt auf den Seiten platzieren, ohne den vollen Galerie-Block. Der Querverweise-Block fasst bis zu 6 Verweise und legt bei mehr als vier Karten eine zweite Reihe an. Aufrufe alter validdata.de-Adressen (bisherige WordPress-Struktur) landen auf der passenden neuen Seite, sofern ein Ziel hinterlegt ist.

SEO & Performance

Weiterleitungen von den alten validdata.de-Pfaden auf die neue Struktur (Plugin Retour): 11 Pfade als 301 (dauerhaft), das Autoren-Archiv als 410 (Seite entfaellt). 20 weitere Alt-Pfade sind angelegt, aber inaktiv — Ziel im Panel zu bestaetigen. Die Ordner der Seiten wurden neu nummeriert; die oeffentlichen Adressen (Slugs) bleiben unveraendert. CSS in style-critical.css und style-extras.css neu kompiliert.

3 Commits in diesem Zyklus
  • 48a961652026-07-01feat(panel/blocks): Ticket-Batch + Retour + Content-Sync (staging 1:1)
  • 5e3d9a1a2026-06-23report: release-report aktualisiert (32 Releases, 656 Commits)
  • 945138c82026-06-23report: release-report aktualisiert (32 Releases, 656 Commits)
v32
Phase abgeschlossen am 23.06.2026
Bedienung im Panel und Fehlerbehebung für Seiten, die den Block-Typ „Herausforderungen" mehrfach verwenden.
v32: Bedienung im Panel und Fehlerbehebung im Layout-Editor. Inhaltsblöcke öffnen eingeklappt; Ein-/Ausklappen liegt als Schaltfläche im Kopf des Layout-Editors neben „Hinzufügen". Die beiden Größen-Felder bei den Abständen heißen jetzt „Größe (absolut)" und „Größe (relativ)" und folgen dem Schalter „Art". Seiten, die den Block-Typ „Herausforderungen" mehrfach verwenden, lassen sich wieder im Panel öffnen und in der Vorschau anzeigen.
Für Redakteure

Inhaltsblöcke öffnen beim Aufruf einer Seite eingeklappt. Die Schaltfläche zum Aus- und Einklappen aller Blöcke liegt im Kopf des Layout-Editors neben „Hinzufügen".

Bei den Abstands-Einstellungen heißen die beiden Größen-Felder jetzt „Größe (absolut)" und „Größe (relativ)" und folgen dem Schalter „Art". Beim Bearbeiten erscheint nur das zum gewählten Typ passende Feld.

Seiten, auf denen der Block-Typ „Herausforderungen" mehrfach vorkommt, lassen sich wieder im Panel öffnen und in der Vorschau anzeigen.

Für Besucher

Für Besucher der Website ändert sich nichts an der Darstellung. Die Korrektur betrifft die Bearbeitung im Panel und die Vorschau betroffener Seiten.

SEO & Performance

Keine Änderungen an SEO, strukturierten Daten oder Ladezeiten in diesem Release.

5 Commits in diesem Zyklus
  • 1a0e78b22026-06-23feat(panel): Bloecke per Default eingeklappt + Ein-/Ausklappen-Button in Layout-Toolbar; Abstands-Groessen eindeutig
  • 4f464e672026-06-23fix(blocks): vd-herausforderungen Mehrfach-Nutzung fatal (Cannot redeclare)
  • 1bdcea852026-06-22report: release-report aktualisiert (31 Releases, 651 Commits)
  • 67ceaf862026-06-22report: release-report aktualisiert (31 Releases, 651 Commits)
  • 778758912026-06-22report: release-report aktualisiert (31 Releases, 651 Commits)
v31
Phase abgeschlossen am 19.06.2026
Drei Funktionen aus v30 stehen fuer staging.validdata.de bereit: das Stellenanzeigen-Schema fuer Stellenseiten, der pro Seite abschaltbare Fokusthema-Fly-In und das Ausrichtungs-Feld im Overline-Block.
Die drei in v30 angelegten Funktionen stehen fuer staging.validdata.de bereit. Stellenanzeigen-Schema fuer Stellenseiten: maschinenlesbare Eckdaten als Basis fuer Google-Jobs-Eintraege, automatisch aus dem vorhandenen Inhalt, ohne Pflege im Panel. Fokusthema-Fly-In pro Seite abschaltbar: Schalter im Einstellungen-Tab der Inhaltsseiten (u.a. Loesungen, Referenzen, Case-Studies, Blog und Blogbeitraege, KI-Automatisierung, Karriere, Stellenseiten), wirkt auch auf Unterseiten. Overline-Block: neues Feld Ausrichtung (Links, Mittig, Rechts) fuer die Vorzeile ueber einer Ueberschrift. Bereitgestellt als Datei-Paket zum Aufspielen.
Für Redakteure

Fokusthema-Fly-In pro Seite abschaltbar: Im Einstellungen-Tab der Inhaltsseiten (Standardseite, Loesungen, Referenzen, Case-Studies, Blog und Blogbeitraege, KI-Automatisierung, Karriere, Stellenseiten) liegt ein Schalter, der das Fly-In auf dieser Seite und ihren Unterseiten ausschaltet. Einmal auf einer uebergeordneten Seite gesetzt (z. B. Karriere), bleibt das Fly-In auf allen darunterliegenden Stellenseiten aus. Grundlage bleibt die site-weite Einstellung im Panel; Standard ist eingeschaltet.

Overline-Block: das neue Feld Ausrichtung (Links, Mittig, Rechts) steuert die Vorzeile ueber einer Ueberschrift; Bestandsinhalte bleiben links.

Stellenseiten: das Stellenanzeigen-Schema entsteht automatisch aus dem vorhandenen Inhalt — kein zusaetzliches Feld im Panel zu pflegen.

Für Besucher

Der Fokusthema-Fly-In (der Hinweis am rechten Rand) kann auf einzelnen Seiten entfallen, etwa auf Stellenseiten. Wo der Schalter nicht gesetzt ist, bleibt die Darstellung wie bisher.

SEO & Performance

Stellenanzeigen-Schema (JobPosting): Jede veroeffentlichte Stellenseite gibt ihre Eckdaten zusaetzlich maschinenlesbar nach schema.org aus — Titel, Beschreibung aus den Inhaltsbloecken der Seite, Anstellungsart, Firmenanschrift und Logo. Das ist die Grundlage fuer Eintraege in Google Jobs und anderen Job-Suchen. Erzeugt vollautomatisch aus dem vorhandenen Inhalt, ohne zusaetzliches Feld; greift nur auf veroeffentlichten Stellenseiten mit Inhalt.

3 Commits in diesem Zyklus
  • c47f3c522026-06-19chore(casi): Bookkeeping committen (D240-D241 + v30 Klartexte)
  • 7ccdb9b12026-06-19report: release-report aktualisiert (30 Releases, 648 Commits)
  • c29c21ed2026-06-19report: release-report aktualisiert (30 Releases, 648 Commits)
v30
Phase abgeschlossen am 19.06.2026
Drei Themen: Stellenseiten geben ihre Eckdaten zusaetzlich maschinenlesbar aus (Basis fuer Google-Jobs-Eintraege), die Overline (kleine Vorzeile ueber einer Ueberschrift) laesst sich mittig setzen, und das Fokusthema-Fly-In ist pro Seite abschaltbar.
v30: Stellenanzeigen-Schema plus zwei Editor-Erweiterungen (3 Themen, 19 Dateien, master c1060a8). JobPosting-Schema fuer Stellenseiten: jede Stellenseite gibt ihre Eckdaten zusaetzlich maschinenlesbar aus (strukturierte Daten nach schema.org, Basis fuer Google-Jobs-Eintraege und andere Job-Suchen). Vollautomatisch aus dem vorhandenen Inhalt erzeugt — kein zusaetzliches Feld im Panel: Titel, Beschreibung (aus den Inhaltsbloecken der Seite), Anstellungsart, Firmenanschrift und Logo werden aus Seite und Site-Stammdaten zusammengesetzt. Greift nur auf veroeffentlichten Stellenseiten mit Inhalt. Overline-Block (kleine Vorzeile ueber einer Ueberschrift): neues Feld Ausrichtung mit den Stufen Links, Mittig, Rechts — wie bei der Ueberschrift, sodass die Vorzeile mittig gesetzt werden kann. Bestandsinhalte bleiben links. Fokusthema-Fly-In (der eingeblendete Hinweis am rechten Rand) pro Seite abschaltbar: neuer Schalter im Einstellungen-Tab der Inhaltsseiten (Standardseite, Loesungen, Referenzen, Case-Studies, Blog und Blogbeitraege, KI-Automatisierung, Karriere, Stellenseiten). Der Schalter wirkt auch auf Unterseiten — einmal auf einer uebergeordneten Seite gesetzt (z.B. Blog oder Karriere), bleibt das Fly-In auf allen darunterliegenden Seiten aus. Standard ist eingeschaltet; die site-weite Einstellung bleibt die Grundlage.
Für Redakteure

Zwei neue Stellschrauben im Panel (Kirby-Editor):

Overline-Block (kleine Vorzeile ueber einer Ueberschrift): neues Feld Ausrichtung mit Links, Mittig, Rechts — wie bei der Ueberschrift. Bestehende Overlines stehen weiter links.

Fokusthema-Fly-In pro Seite abschaltbar: ein Schalter im Einstellungen-Tab der Inhaltsseiten (u.a. Loesungen, Referenzen, Case-Studies, Blog und Blogbeitraege, KI-Automatisierung, Karriere, Stellenseiten). Auf einer uebergeordneten Seite gesetzt (z.B. Blog oder Karriere), bleibt das Fly-In auch auf allen Unterseiten aus. Standard: eingeschaltet.

Fuer das Stellenanzeigen-Schema ist im Panel nichts zu pflegen — es entsteht automatisch aus dem vorhandenen Stellen-Inhalt.

Für Besucher

Auf den Inhaltsseiten kann die Overline (die kleine Vorzeile ueber einer Ueberschrift) jetzt mittig statt nur links stehen.

Das Fokusthema-Fly-In (der Hinweis am rechten Rand) laesst sich auf ausgewaehlten Seiten ausblenden — etwa auf Stellenseiten oder im Blog.

Die maschinenlesbaren Stellenanzeigen-Daten (siehe SEO) bringen keine Aenderung an der Darstellung der Seite mit sich.

SEO & Performance

Stellenseiten geben jetzt ein JobPosting nach schema.org als JSON-LD im Seitenkopf aus — strukturierte Daten, die Google fuer Jobs-Eintraege und Job-Suchmaschinen auslesen.

Erzeugt werden Titel, Beschreibung (zusammengesetzt aus den Inhaltsbloecken der Stellenseite: Ueberschriften, Fliesstext und die Aufgaben-/Benefit-Listen), Anstellungsart (aus dem Feld Anstellung, auf die schema.org-Werte gemappt), Firmenanschrift und Logo (aus den Site-Stammdaten), Veroeffentlichungsdatum und eine eindeutige Kennung.

Alles vollautomatisch ohne Pflege im Panel; greift nur auf veroeffentlichten Stellenseiten mit Inhalt (kein Schema auf Platzhalter-Stubs). Eingebunden im Seitenkopf, ohne Aenderung an der Darstellung der Seite.

Keine weiteren Aenderungen an SEO oder Performance in diesem Release.

5 Commits in diesem Zyklus
  • 7797d19f2026-06-19feat(seo): JobPosting-Schema (JSON-LD) automatisch fuer Stellenseiten
  • 0691acd72026-06-19feat(overline,fokusthema): Overline-Ausrichtung + Fokusthema pro Seite abschaltbar
  • 2944392c2026-06-19chore(casi): Bookkeeping committen (D238-D239 + v29 Klartexte)
  • acd5c0b22026-06-19report: release-report aktualisiert (29 Releases, 643 Commits)
  • 873b13d32026-06-19report: release-report aktualisiert (29 Releases, 643 Commits)
v29
Phase abgeschlossen am 19.06.2026
Fix-Batch ohne neue Funktionen: sechs Fehlerbehebungen in Panel (Kirby-Editor) und Frontend, dazu der daraus neu gebaute CSS-Stand.
v29: Fehlerbehebungen Panel und Frontend (Fix-Batch, 8 Dateien, master e0612fc). Karriere-Seite: eine nicht mehr aufloesbare Stellen-Verknuepfung (page://-Referenz nach Verschieben oder Umbenennen eines Stellen-Ordners) fuehrte zum Seitenfehler — jetzt Rueckfall auf einen neutralen Link statt Abbruch. Top-Markierung bei Stellenangeboten richtet sich nach dem Feld jobFeatured der verknuepften Stellen-Unterseite (entsprechend dem Hilfetext im Blueprint), der Inline-Schalter bleibt als Rueckfallebene. Blog-Autor: bei mehreren Mitarbeitern mit gleichem Vornamen zeigten Blog-Uebersicht und Artikel unterschiedliche Personen — die Autor-Aufloesung im Artikel ist jetzt identisch zur Uebersicht (letztes Vorkommen). Panel-Seitenliste: Entwuerfe und versteckte Seiten erscheinen jetzt in der Seiten-Uebersicht (status all, site.childrenAndDrafts). Panel-Seitenleiste: die Einklapp-Lasche deckt den nativen Collapse-Pfeil nicht mehr ab und faengt dessen Klicks nicht mehr ab (vertikal zentriert, Hoehe clamp 150px bis 300px) — die Seitenleiste laesst sich wieder einklappen. Mega-Menue: der oberste Eintrag je Loesungs-Gruppe (Systemtechnik, IT-Consulting, Softwareentwicklung) ist blass-orange hinterlegt (vd-mega__link--core). CSS neu gebaut (style.css, style-critical.css aus _header.scss).
Für Redakteure

Drei Korrekturen im Panel (Kirby-Editor):

Entwuerfe und versteckte Seiten erscheinen jetzt in der Seiten-Uebersicht. Frisch angelegte Entwuerfe waren in der Liste vorher nicht auffindbar.

Die Seitenleiste laesst sich wieder einklappen. Die Lasche zum Einklappen ueberlagerte den eingebauten Pfeil und fing dessen Klicks ab; sie steht jetzt vertikal zentriert mit begrenzter Hoehe an der Kante.

Die Top-Markierung eines Stellenangebots richtet sich nach dem Feld Top-Job der verknuepften Stellenseite, wie im Hilfetext beschrieben. Der bisherige Schalter am Stellen-Block bleibt als Rueckfallebene erhalten.

Für Besucher

Drei Korrekturen im Frontend:

Die Karriere-Seite laedt auch dann, wenn eine Stellen-Verknuepfung nach dem Verschieben oder Umbenennen eines Stellen-Ordners ins Leere zeigt. Vorher fuehrte das zu einem Seitenfehler; der betroffene Link verweist in dem Fall jetzt auf ein neutrales Ziel.

Blog-Artikel und Blog-Uebersicht zeigen bei mehreren Mitarbeitern mit gleichem Vornamen dieselbe Person als Autor.

Im Mega-Menue ist der oberste Eintrag je Loesungs-Gruppe (Systemtechnik, IT-Consulting, Softwareentwicklung) blass-orange hinterlegt.

SEO & Performance

Die Karriere-Seite liefert bei einer ins Leere zeigenden Stellen-Verknuepfung wieder eine regulaere Antwort statt eines Serverfehlers (HTTP 500). Das betrifft die Erreichbarkeit und Indexierbarkeit der Seite durch Suchmaschinen.

Sonst keine Aenderungen an SEO oder Performance in diesem Release.

6 Commits in diesem Zyklus
  • 62cec3a62026-06-19fix(panel/frontend): Fix-Batch — Blog-Autor, Entwuerfe, MegaNav, Top-Jobs, Karriere-Crash, Panel-Sidebar
  • 79d73b782026-06-19content: Staging-Stand gepullt (staging.validdata.de)
  • 3ea21db22026-06-16chore(casi): Bookkeeping committen (decisions D232-D237 + v28 report) zum Entsperren des Staging-Deploys
  • 72a0b0212026-06-16feat(loesungen): manuelle Sortierung, overline-Block oben, themen-editorial atomar ersetzt
  • a58f57622026-06-16report: release-report aktualisiert (28 Releases, 637 Commits)
  • c1ba67c92026-06-16report: release-report aktualisiert (28 Releases, 637 Commits)
v28
Phase abgeschlossen am 16.06.2026
Korrekturen aus dem Panel-Review plus Redaktions-Edits, 13 Dateien. Frontend: die Fortschrittslinie im Prozess-Block (Zeitleiste mit nummerierten Schritten) reicht bis zum aktiven Punkt; die Vorher-Spalte im Vergleich-Block hat in dunklen Sektionen einen Karten-Hintergrund mit lesbarem Text-Kontrast. Panel: ein Feld Bild-Ausrichtung im Hintergrund-Tab des Layout-Editors (Auto plus fünf Positionsstufen), ein Schalter zum Abschalten des oberen Zurück-Links pro Seite, und die Einklapp-Steuerung als vertikale Lasche an der Außenkante der Seitenleiste. Content: Zurück-Link auf Home und Systemtechnik aus, Bild-Ausrichtung Oben auf der Karriere-Seite.
Panel-Review-Korrekturen plus Redaktions-Snapshot. Code: Timeline-Progress-Berechnung im Prozess-Block korrigiert (bundle-core neu gebaut); Hintergrund der Vorher-Spalte im Vergleich-Block fuer dunkle Sektionen auf adaptiven Token umgestellt; Feld Bild-Ausrichtung (5 Stufen) im Hintergrund-Tab des Layout-Editors integriert; Toggle zum Abschalten des oberen Zurueck-Links angelegt; Einklapp-Leiste im Panel als vertikale Lasche an der Sidebar-Aussenkante. Content: Zurueck-Link auf Home und Systemtechnik aus, Bild-Ausrichtung Oben auf der Karriere-Seite. 13 Dateien, master 4bf0e5a.
Für Redakteure

Im Layout-Editor (Komposition aus Blöcken zu Sektionen), Tab Hintergrund: ein neues Feld Bild-Ausrichtung mit Auto plus fünf Positionsstufen (Oben, Oben mit Abstand, Mitte, Unten mit Abstand, Unten). Es legt fest, welcher Bildausschnitt erhalten bleibt, wenn ein Hintergrundbild den Abschnitt füllt und dabei beschnitten wird. Anwendungsfall: bei Hero-Bildern mit Personen hält die Stufe Oben die Köpfe am oberen Rand im Bild. Auf der Karriere-Seite ist die Einstellung bereits auf Oben gesetzt.

Tab Lineare Navigation: ein Schalter, der den Zurück-Link über dem ersten Abschnitt (z. B. „Zurück zu Lösungen") pro Seite abschaltet. Standard ist an; auf Home und Systemtechnik steht er auf aus.

Panel-Bedienung: die Steuerung zum Ein- und Ausklappen aller Blöcke einer Seite sitzt als vertikale Lasche an der rechten Außenkante der Seitenleiste — zuvor ein Knopf innerhalb der Navigationsliste.

Für Besucher

Auf den Lösungs-Detailseiten (z. B. Systemtechnik), im Prozess-Block mit der waagerechten Zeitleiste: die orange Fortschrittslinie reicht bis zum aktiven Schritt-Punkt — zuvor blieb dazwischen eine Lücke.

Im Vergleich-Block (Vorher/Nachher) auf dunkel hinterlegten Abschnitten: die Vorher-Spalte hat einen dunklen Karten-Hintergrund, der Text steht mit lesbarem Kontrast.

Auf der Karriere-Seite sitzt das Hero-Bild oben bündig — die abgebildeten Personen werden am oberen Rand nicht mehr angeschnitten. Auf Home und Systemtechnik entfällt der Zurück-Link über dem ersten Abschnitt.

SEO & Performance

vd-process (Prozess-Block): die Breite der Fortschrittslinie (.vd-process__line-progress) wird in process.js relativ zur Zeitleiste berechnet. Der Faktor stand auf 75, obwohl die Linie per margin bereits auf 75 % Container-Breite sitzt und die Breite relativ zu dieser Linie zählt — der aktive Punkt wurde dadurch um bis zu ein Viertel der Linienbreite verfehlt. Faktor auf 100 korrigiert, bundle-core neu gebaut (esbuild). Treffergenauigkeit per Browser-Messung 0 px über alle Schritte.

vd-vergleich (Vergleich-Block): die Vorher-Spalte nutzte als Hintergrund die feste Farbe Smoke (hell). In invertierten (dunklen) Sektionen kippt der Text-Token auf hell, womit heller Text auf hellem Kartenhintergrund stand. Hintergrund auf var(--vd-bg-layer) umgestellt — der Token adaptiert (hell: Smoke, dunkel: Charcoal #23282C), Text-Kontrast in beiden Modi gegeben.

Layout-Editor: das Feld Bild-Ausrichtung (bgImagePosition, Auto plus fünf Stufen → object-position 50% / 0–100%) war nur in der ungenutzten settings/layouts/background.yml definiert und nie im aktiven layouts/default.yml eingebunden — im Panel kam es daher nie an. Feld in den Hintergrund-Tab von layouts/default.yml integriert (ohne when-Gate, damit immer erreichbar). Die Render-Seite (layout.php → picture.php) verarbeitete den Wert bereits; der explizite Wert gewinnt gegen den Datei-Fokuspunkt.

Zurück-Link: Toggle backLinkAnzeigen in der linear-nav-Section, Guard in templates/default.php (Default an via toBool(true), Bestandsseiten unverändert).

collapseExpand-Plugin (Panel): die Lasche saß als absolutes Kind mit überschriebenem position:relative auf .k-panel-menu, was Kirbys fixed-Seitenleiste auf Inhaltshöhe kollabieren ließ. Override entfernt; Lasche per left:100% an die rechte Außenkante der Seitenleiste gesetzt (volle Höhe via top/bottom:0, 75 px breit, gedrehtes Label).

CSS via Dart Sass 1.83.4 (--style=compressed) kompiliert: style.css + style-extras.css.

Content (Operator-Edits via Panel): Zurück-Link auf Home und Systemtechnik aus (Backlinkanzeigen:false), Bild-Ausrichtung Oben auf der Karriere-Hero. 13 Dateien gesamt, master 4bf0e5a.

11 Commits in diesem Zyklus
  • d842be592026-06-16feat(panel/frontend): Panel-Review-Fixes-Batch + Redaktions-Edits
  • d259a5482026-06-16chore(tools): pull-content Default-Quelle auf staging.validdata.de + Key-Auto-Lookup
  • 2303c9e82026-06-16fix(content): tote IT-Sicherheit-Verlinkung in Systemtechnik (404-Ursache)
  • d47b65e62026-06-16content: Stand von staging.validdata.de gezogen (16 Dateien)
  • 3179148f2026-05-27delegated: Thumbs-Driver auto auf Imagick wenn verfuegbar
  • 4804b23d2026-05-27fix(thumbs): Imagick-Driver auto-aktivieren wenn verfuegbar
  • ab41d7012026-05-27fix(content-sync): sha1 mit EOL-Normalisierung fuer Text-Files
  • a98aa6e02026-05-27refactor(content-sync): Rolle aus Site-Field in PHP-Option
  • b8dc8ac02026-05-27fix(content-sync): Route-Prefix vd-sync statt api/ (Kirby-Konflikt)
  • 03530bc02026-05-27report: release-report aktualisiert (27 Releases, 626 Commits)
  • a339df9e2026-05-27report: release-report aktualisiert (27 Releases, 626 Commits)
v27
Phase abgeschlossen am 27.05.2026
Release über zwei Wochen mit Schwerpunkt Code- und Doc-Hygiene plus Redaktions-Onboarding. Header-Backfill in 11 Batches (inhaltliche Datei-Header flächig im Produktivcode, 375 Dateien). Doc-Hygiene-Pass (4 Docs archiviert, 4 aktualisiert, Index −10,3 %) plus CLAUDE.md für Claude Code. Content-Sync Plugin-Skelett mit Operations-Dashboard im Panel, Editor-Rolle für die Validdata-Redaktion, Content-Pull-Mechanik (Staging → redaktionelle Quelle). Kirby-Core + vendor in die Versionsverwaltung aufgenommen (963 Dateien) für reproduzierbares Deployment. Kein Frontend-Schwerpunkt in dieser Phase.
v27: Code- & Doc-Hygiene + Redaktions-Onboarding + Content-Sync (mehrere WPs ueber 2 Wochen, ~390 eigene Dateien + 963 Kirby-Core-Dateien eingecheckt): Header-Backfill in 11 Batches (375 Dateien — inhaltliche Datei-Header flaechig im Produktivcode: SCSS-Fundament + 43 Blocks + 21 Components/Pages, 25 JS-Module, Snippets Layouts/Components/Helpers/Feeds + 43 Block-Snippets, Templates + Config, 89 Block-Blueprints + 44 Page/Field/Section-Blueprints, eigene Plugins, Tools; JSON ausgeschlossen, PHP-Lint nach jedem Batch). Doc-Hygiene-Pass Mai 2026 (4 Docs nach _archive/ verschoben: handoff-next-phase + handover-step-1b + image-audit + known-bugs; 4 aktualisiert: project-brief + architecture + forms-mail-templates + component-inventory; 1 umetikettiert forms-plugin Plan -> Architektur-Referenz; Index-Output -10.3 Prozent / -536 Zeilen; _archive/-Exclude gesetzt) plus CLAUDE.md fuer Claude Code generiert. Content-Pull Interim-Mechanik (tools/pull-content.php — Standalone-Pull builds/staging/content/ -> public/content/, Default Dry-Run, Posteingang-Teilbaeume ausgeschlossen, erster Lauf 372 Dateien deckungsgleich + idempotent; Satelliten-Pull verworfen mangels registriertem Satellit, --source fuer spaetere Production-Quelle konfigurierbar). Content-Sync Plugin-Skelett + David Editor-Rolle (9 Dateien Sammelabnahme wp-2026-05-27-content-sync-skelett — Editor-Rolle editor.yml fuer die Validdata-Redaktion, explizite admin.yml zur Selbst-Dokumentation, Site-Rolle-Switch, HTTP-Pull-Endpunkt + CLI-Anbindung Phase 4, WIP-Scaffolding-Sections im Panel, Sidebar-Bereich 'Content-Sync' als Operations-Dashboard knapp + ohne Emoji-Icons + Spalten-Layout). Kirby-Core + vendor eingecheckt (963 Dateien — public/kirby/ und public/vendor/ aus .gitignore genommen und versioniert, erst-install fuer reproduzierbares Deployment ohne externen Composer-/Kirby-Download zur Build-Zeit, relevant fuer die anstehende Uebergabe ans Validdata-Tech-Team). Schwerpunkt der Phase: Code-/Doc-Hygiene + Redaktions-Onboarding, kein Frontend.
Für Redakteure

Editor-Rolle für die Validdata-Redaktion angelegt (editor.yml): eine eigene Panel-Rolle neben dem Admin-Zugang. Redakteure bekommen Zugriff auf die Inhaltspflege, ohne die Settings- und System-Bereiche zu sehen, die nur die Administration braucht. Eine explizite admin.yml dokumentiert den Admin-Zugang zur Selbst-Erklärung.

Content-Sync als Sidebar-Bereich im Panel: ein Operations-Dashboard, das den Stand der Content-Synchronisation zwischen Staging und der redaktionellen Quelle zeigt. Knappe Darstellung im Spalten-Layout, ohne Emoji-Icons. Die zugehörige Mechanik (tools/pull-content.php) zieht Inhalte aus dem Staging-Stand in die versionierte Quelle — standardmäßig als Vorschau-Lauf (Dry-Run), der nichts schreibt, bis er ausdrücklich angewendet wird. Formular-Eingänge (Posteingang) bleiben ausgeschlossen, damit Laufzeit-Daten nicht in den redaktionellen Quellstand geraten.

Diese Bausteine sind die Vorbereitung auf die Übergabe an die Validdata-Redaktion — die Redaktion kann künftig im Panel arbeiten, Änderungen werden über den Content-Sync zwischen den Umgebungen abgeglichen.

Im Hintergrund (für Redakteure nicht direkt erkennbar): Datei-Header flächig im gesamten Code ergänzt (Header-Backfill, 375 Dateien) und die Projekt-Doku bereinigt — 4 veraltete Dokumente archiviert, 4 auf den aktuellen Stand gebracht.

Für Besucher

Dieser Release betrifft die Code- und Doku-Pflege sowie die Vorbereitung der Redaktions-Übergabe — im öffentlichen Frontend gibt es keine Änderungen für den Besucher. Die Inhalte und das Verhalten der Website bleiben wie im Stand von v26.

SEO & Performance

Header-Backfill in 11 Batches: inhaltliche Datei-Header flächig im Produktivcode ergänzt — SCSS-Fundament (Tokens, Base, Layout, Entries), SCSS Blocks (43), SCSS Components + Pages (21), JS Source (25 Module), Snippets (Layouts, Components, Helpers, Styleguide, Feeds), Block-Snippets (43), Templates + Config (15), Block-Blueprints (89 YAMLs), Page-/Field-/Section-/Files-/Tabs-/Settings-/Layouts-Blueprints (44 YAMLs), eigene Plugins, Tools (mjs/php/MD). JSON-Dateien ausgeschlossen (kein Kommentar-Syntax), PHP-Lint nach jedem Batch geprüft. Insgesamt 375 Dateien.

Doc-Hygiene-Pass Mai 2026: 4 Docs nach _casi/docs/_archive/ verschoben (handoff-next-phase, handover-step-1b, image-audit-2026-04-23, known-bugs — tote Session-Briefings, Audit-Snapshot, tote Bug-Liste). 4 Docs aktualisiert (project-brief mit Quellenhierarchie, architecture Stack-/Phasen-Block, forms-mail-templates v0.3.0-Hinweis, component-inventory Phase-1-Snapshot-Marker). 1 umetikettiert (forms-plugin "Status: Plan" → "Status: Architektur-Referenz"). Index-Output von 227.225 auf 203.935 Zeichen reduziert (−10,3 %, −536 Zeilen), _archive/-Exclude in der Projekt-Config gesetzt. Zusätzlich CLAUDE.md für Claude Code generiert (Projekt-Kontext-Datei für die Code-Assistenz).

Content-Pull Interim-Mechanik: tools/pull-content.php als Standalone-PHP-Tool. Quelle builds/staging/content/ auf dem Host, Ziel public/content/. Default Dry-Run (kein --apply schreibt nichts), Posteingang-Teilbäume (*_posteingang) ausgeschlossen (Override --include-posteingang). Erster Lauf: 0 neu, 0 geändert, 372 unverändert, 0 verwaist — Staging und Source deckungsgleich, Idempotenz im Re-Run bestätigt. Architektur-Entscheidung: Satelliten-basierter Pull verworfen (kein Satellit registriert), lokaler Sync ist der Interim-Weg; --source bleibt konfigurierbar für die spätere Umstellung auf die Production-Quelle.

Content-Sync Plugin-Skelett (wp-2026-05-27-content-sync-skelett): Plugin mit Site-Rolle-Switch, HTTP-Pull-Endpunkt + CLI-Anbindung (Phase 4), WIP-Scaffolding-Sections im Panel, Sidebar-Bereich "Content-Sync" als Operations-Dashboard (knappe Darstellung, Spalten-Layout, ohne Emoji-Icons). David Editor-Rolle: editor.yml für die Validdata-Redaktion, explizite admin.yml zur Selbst-Dokumentation des Admin-Zugangs.

Kirby-Core + vendor eingecheckt: public/kirby/ und public/vendor/ aus .gitignore genommen und versioniert (963 Dateien). Erst-Install von Kirby-Core + Composer-vendor ins Repo — reproduzierbares Deployment ohne externen Composer-/Kirby-Download zur Build-Zeit, relevant für die anstehende Übergabe an das Validdata-Tech-Team (Deployment ohne Abhängigkeit von externen Paket-Quellen).

Stand-Notiz: Schwerpunkt dieser Phase ist Code-/Doc-Hygiene und Redaktions-Onboarding, kein Frontend. Skeleton-Stub-Stand unverändert — Lösungs-Detailseiten verbleiben als einziger offener Skeleton-Stub-Bereich. Content-Sync-Dashboard und Editor-Rolle sind die nächsten konkreten Schritte auf die Übergabe an die Validdata-Redaktion (nach der Handover-Checkliste aus v26).

34 Commits in diesem Zyklus
  • 3a4a226e2026-05-27refactor(content-sync): Spalten-Layout, alle theme-Akzente raus
  • d892c4ee2026-05-27refactor(content-sync): Dashboard knapp + ohne Emoji-Icons
  • 7bd325622026-05-27chore: cleanup gestell-server working tree fuer naechsten Audit
  • ecb712902026-05-27feat(content-sync): Sidebar-Bereich "Content-Sync" als Operations-Dashboard
  • b65ff0a72026-05-27chore(kirby): erst-install kirby-core + vendor
  • 7ebc58602026-05-27chore(gitignore): public/kirby/ und public/vendor/ werden eingecheckt
  • 51ced2bb2026-05-27feat(users): Explizite admin.yml fuer Selbst-Dokumentation
  • 05cd71c62026-05-27feat(content-sync): HTTP-Pull-Endpunkt + CLI-Anbindung (Phase 4)
  • 5749d9cf2026-05-27feat(content-sync): WIP-Scaffolding-Sections im Panel sichtbar
  • 4e2a89592026-05-27feat(content-sync): Plugin-Skelett + Site-Rolle-Switch
  • 6a31ec992026-05-27feat(users): Editor-Rolle fuer Validdata-Redaktion
  • a59b4d5c2026-05-27delegated: Content-Sync Plugin-Skelett + David Editor-Rolle (Sprint)
  • eeaa942b2026-05-26feat: 1 hinzugefuegt (1 Dateien)
  • eab80a942026-05-26checkpoint: cp-2026-05-26T07-26-05
  • 6838198f2026-05-26delegated: Interim Content-Pull (Staging -> Source)
  • 9b92d39b2026-05-16draft: Doc-Hygiene-Pass Mai 2026
  • dad408f92026-05-16feat: CLAUDE.md fuer Claude Code generiert
  • 8a96b8712026-05-15Revert "test(mass-annotation): WP-E2 roundtrip-smoke marker — wird sofort revertiert"
  • 1e70f5c92026-05-15test(mass-annotation): WP-E2 roundtrip-smoke marker — wird sofort revertiert
  • f8345ed62026-05-15Header-Backfill Batch 11/11: Tools (mjs + php + MD + .gitignore; JSON ausgeschlossen)
  • 11d093a92026-05-15Header-Backfill Batch 10/11 (fix): Reste alter PHPDoc-Schluesse entfernt (PHP-Lint clean)
  • 21c0a4852026-05-15Header-Backfill Batch 10/11: Plugins (eigene; PHP/JS/CSS/YML; ohne LICENSE/README)
  • 2d0cbfbc2026-05-15Header-Backfill Batch 9/11: Blueprints Pages/Fields/Sections/Files/Tabs/Settings/Layouts (44 YAMLs)
  • 366a6f9b2026-05-15Header-Backfill Batch 8/11: Blueprints Blocks (89 YAMLs)
  • 5612f7072026-05-15Header-Backfill Batch 7/11: Templates + Config (15 Dateien)
  • f59d202a2026-05-15Header-Backfill Batch 6/11: Snippets Blocks (43 PHP-Snippets)
  • 292368552026-05-15Header-Backfill Batch 5/11: Snippets (Layouts + Components + Helpers + Styleguide + Feeds)
  • 635e36ab2026-05-15Header-Backfill Batch 4/11: JS Source (25 Module)
  • 9170508a2026-05-15Header-Backfill Batch 3/11: SCSS Components + Pages (21 Dateien)
  • 129b70702026-05-15Header-Backfill Batch 2/11: SCSS Blocks (43 Bloecke)
  • ead90c752026-05-15Header-Backfill Batch 1/11: SCSS Fundament (Tokens + Base + Layout + Entries)
  • 5ee730bf2026-05-15delegated: Backfill inhaltliche Datei-Header in validdata-Produktivcode
  • 5106d9102026-05-13report: release-report aktualisiert (26 Releases, 592 Commits)
  • d9ef3ea22026-05-13report: release-report aktualisiert (26 Releases, 592 Commits)
v26
Phase abgeschlossen am 13.05.2026
Iteration mit Performance-Schwerpunkt nach der Präsentation: Lighthouse-Pass 2 (Compression, Mobile-LCP-Sweep mit Resource-Hints, CLS-Korrekturen, Heading-Order). JS Multi-Bundle als Architektur-Schritt — Block-Scan in base.php lädt pro Page nur die benötigten JS-Bundles (Core, Galerie, Map, Forms). Image-Sizing-Fixes für vd-galerie und vd-logo-strip plus Roboto-Subset weiter getrimmt. Handover-Checkliste für das validdata-Tech-Team als Vorbereitung auf den Go-Live.
v26: Lighthouse-Pass 2 + JS Multi-Bundle + Image-Sizing + Handover-Checkliste (3 WPs + 2 Operator-Edits, ~35 Dateien): Performance-Schwerpunkt vertieft nach Praesentations-Demo. Lighthouse-Pass 2 (9 Dateien — Compression in .htaccess aktiviert mod_deflate fuer HTML/CSS/JS/XML/JSON gzip-Level 6 Default plus mod_brotli falls verfuegbar, Mobile-LCP-Sweep mit Resource-Hints preconnect/preload, CLS-Korrekturen Layout-Shift-Quellen identifiziert + Reserve-Hoehen gesetzt, Heading-Order-Bereinigung 'Heading elements are not in a sequentially-descending order' — monoton-absteigend gebracht). JS Multi-Bundle als Architektur-Schritt (12 Dateien — Server-side Block-Scan in base.php ermittelt pro Page-Aufruf die benoetigten Bundles, vier Slugs core/galerie/map/forms mit core immer geladen + Rest per Block-Typ-Praesenz, Bundles als getrennte JS-Dateien mit defer-Attribut, Bundle-Slugs in base.php-Kommentar dokumentiert fuer Audit-Verify, Build-Pipeline generiert einzelne Bundles aus JS-Source). Image-Sizing-Fixes (vd-galerie + vd-logo-strip — width/height-Attribute auf <img>-Elementen explizit aus Kirby-File-Metadaten gesetzt statt nur srcset, Browser kann Layout vor Bild-Download reservieren) plus Roboto-Subset-Echt-Trim (lokales Roboto-Subset aus v21 auf tatsaechlich auf der Website verwendete Glyphen reduziert per Subset-Tool aus Build-Roundtrip, Datei-Groesse pro Schrift-Variante kleiner; 12 Dateien Sammelabnahme). Operator-Panel-Edit auf Home (1 Datei, Inhaltspflege). Handover-Checkliste fuer validdata-Tech-Team angelegt (_casi/docs/handover-validdata-tech.md, 1 Datei — Uebersicht der Uebergabe-Punkte fuer das interne Tech-Team von Validdata GmbH als Vorbereitung auf den Go-Live: CMS-Pflege, Deployment, Monitoring, Backup, Lizenz-Uebersicht der Kirby-Plugins).
Für Redakteure

Im Hintergrund läuft eine Performance-Vertiefung — für Redakteure direkt erkennbar ist nur ein Detail: das Auto-Layout der vd-galerie- und vd-logo-strip-Blöcke reserviert jetzt den benötigten Platz für Bilder, bevor sie geladen sind — der Layout-Aufbau bleibt während der Bild-Ladephase ohne Sprung.

Operator-Panel-Edit auf Home: Inhaltspflege auf der Startseite durch den Operator.

Für das Tech-Team von Validdata GmbH eine Handover-Checkliste angelegt (_casi/docs/handover-validdata-tech.md) — Übersicht der Übergabe-Punkte für die Übernahme: CMS-Pflege, Deployment, Monitoring, Backup, Lizenz-Übersicht der Kirby-Plugins. Erste Etappe der Go-Live-Vorbereitung.

Für Besucher

Die statischen Inhalte (HTML, CSS, JS) werden vom Server in komprimierter Form übertragen — die übertragene Datenmenge pro Page-Aufruf ist geringer. Ein page-spezifisches JS-Bundle-System lädt pro Seitenaufruf nur die JS-Bundles, die für die jeweils enthaltenen Block-Typen tatsächlich gebraucht werden — z.B. das Galerie-Bundle nur auf Pages mit Galerie-Block, das Karten-Bundle nur auf Pages mit Hintergrund-Karte.

In Bild-Bereichen (Galerie-Block, Logo-Strip): der Platz für die Bilder wird reserviert, bevor sie geladen sind — der Seitenaufbau bleibt während der Bild-Ladephase ohne Layout-Verschiebung.

Resource-Hints im Page-Head: der Browser bereitet die Verbindung zu wichtigen externen Quellen (z.B. Map-Tiles bei der Hintergrund-Karte) bereits vor, bevor sie angefragt werden.

Schrift-Lade-Optimierung: das lokale Roboto-Subset enthält jetzt nur die tatsächlich auf der Website verwendeten Glyphen — Schrift-Dateien sind kleiner.

SEO & Performance

Lighthouse-Pass 2 (Folge zu v21's initialem Lighthouse-Pass): Compression in der .htaccess aktiviert — mod_deflate für HTML/CSS/JS/XML/JSON mit gzip-Level 6 als Default; bei Brotli-fähigem Apache zusätzlich mod_brotli. Mobile-LCP-Sweep: Largest-Contentful-Paint-Quelle pro Page identifiziert (überwiegend Hero-Backdrop-Bild oder Hero-Heading), Resource-Hints im Head ergänzt — preconnect für externe Map-Tile-Anbieter, preload für die LCP-Bild-Quelle und die Above-the-fold-Schrift-Datei. CLS-Korrekturen (Cumulative Layout Shift): Layout-Shift-Quellen identifiziert (überwiegend Bilder ohne explizite width/height) und Reserve-Höhen gesetzt. Heading-Order-Bereinigung: Lighthouse-Befund "Heading elements are not in a sequentially-descending order" — Heading-Hierarchie in Composite-Block-Templates auf monoton-absteigend gebracht (h1 → h2 → h3 → h4 ohne Sprünge).

JS Multi-Bundle als Architektur-Schritt: bislang wurde ein gemeinsames JS-Bundle für die ganze Website ausgeliefert. base.php scannt jetzt pro Page-Aufruf den Block-Tree und ermittelt die benötigten Bundles. Vier Bundle-Slugs sind definiert — core (immer geladen), galerie (vd-galerie und verwandte Block-Typen), map (vd-map-backdrop), forms (Bewerbungs- und Kontakt-Form-Lightboxes aus v20). Bundles als getrennte JS-Dateien per <script src> mit defer-Attribut geladen, Reihenfolge deterministisch. Bundle-Slugs in einem Kommentar in base.php dokumentiert (Audit-Verify), Build-Pipeline generiert die einzelnen Bundles aus dem JS-Source.

Image-Sizing-Fixes: vd-galerie und vd-logo-strip — width/height-Attribute auf <img>-Elementen explizit aus den Kirby-File-Metadaten gesetzt (statt nur srcset). Browser kann damit das Layout vor dem Bild-Download reservieren, kein Layout-Shift nach Bild-Load.

Roboto-Subset-Echt-Trim: lokal gehostetes Roboto-Subset (eingeführt in v21) auf die tatsächlich auf der Website verwendeten Glyphen reduziert — bisheriges Latin + Latin-Extended-Default-Subset auf die in Frontend-Text-Inhalten tatsächlich vorkommenden Codepoints eingeengt (per Subset-Tool aus dem Build-Roundtrip erzeugt). Datei-Größe pro Schrift-Variante kleiner.

Operator-Panel-Edit auf Home (1 Datei): Inhaltspflege auf der Startseite.

Handover-Checkliste: neue Doku _casi/docs/handover-validdata-tech.md angelegt — Übergabe-Übersicht für das interne Tech-Team von Validdata GmbH als Vorbereitung auf den Go-Live: CMS-Pflege (Panel-Bedienung, Page-Templates, Block-Typen), Deployment (Build-Pipeline, Staging/Produktion), Monitoring (Uptime, Error-Logs), Backup-Strategie und Lizenz-Übersicht der genutzten Kirby-Plugins.

Stand-Notiz: Skeleton-Stub-Stand unverändert — Lösungs-Detailseiten verbleiben als einziger offener Skeleton-Stub-Bereich. Handover-Checkliste ist der erste dokumentarische Schritt auf den Go-Live; die tatsächliche Übergabe an das interne Tech-Team folgt in den nächsten Iterationen.

11 Commits in diesem Zyklus
  • a7cbdedd2026-05-13docs: Handover-Checkliste fuer validdata-Tech (Go-Live)
  • 6ded9e2e2026-05-13perf: Image-Sizing-Fixes + Roboto-Subset-Echt-Trim
  • e000ba772026-05-13delegated: Image-Sizing-Fixes (vd-galerie + vd-logo-strip) + Roboto-Subset-Echt-Trim
  • ce55f4b82026-05-13content: Operator-Panel-Edit auf Home
  • 38f1b16b2026-05-13docs(base.php): Bundle-Slugs im Kommentar nennen (Audit-Verify)
  • ce0216642026-05-13perf: JS Multi-Bundle (Core + Galerie + Map) via Block-Scan in base.php
  • 373b0ad62026-05-13delegated: JS-Splitting: Server-side Multi-Bundle (Core + Galerie + Map + Forms) via Block-Scan in base.php
  • 16d0fc612026-05-13perf: Lighthouse-Pass 2 — Compression + LCP-Preload + Heading-Order
  • a5c7a65c2026-05-13delegated: Lighthouse-Pass 2: Compression + Mobile-LCP-Sweep + Resource-Hints + CLS + Heading-Order (Performance-Schwerpunkt)
  • 4a17c0be2026-05-12report: release-report aktualisiert (25 Releases, 581 Commits)
  • 8218bb412026-05-12report: release-report aktualisiert (25 Releases, 581 Commits)
v25
Phase abgeschlossen am 12.05.2026
Kleiner Release vor Präsentations-Demo: Cache-Header in .htaccess für statische Assets (Lighthouse-Audit "Serve static assets with an efficient cache policy" abgehakt). Back-Link-Inline-Bug aus v24 behoben plus Back-Link als eigenständiger Block-Typ vd-back-link verfügbar. Map-Editor-Panel-Direktlink robust gegen Umgebungswechsel zwischen lokaler Entwicklung, Staging und Produktion (neue Site-Settings-Variable site.mapEditorUrl statt absolutem site.url-Präfix). _extras/map-editor/ in die Versionsverwaltung aufgenommen (geocoded.csv bleibt extern). Finaler Release-Stand für die heutige Präsentation.
v25: Cache-Header + Back-Link-Polish + Map-Editor-Staging-Fix (1 WP + Operator-Polish, ~18 Dateien): Schwerpunkt Cache- und Performance-Fixes vor Praesentations-Demo (Lighthouse-Demonstration). Cache-Header in .htaccess fuer statische Assets gesetzt (ExpiresActive + ExpiresByType + Cache-Control public max-age, CSS/JS/Bilder/Schriften 1 Jahr Cache-Lifetime, HTML kein Cache), Lighthouse-Audit 'Serve static assets with an efficient cache policy' damit abgehakt. Back-Link/Overline Inline-Bug behoben (Auto-Header-Back-Link aus v24 — Inline-Display korrigiert via expliziter display:block-Regel im Snippet-CSS) plus Back-Link als eigenstaendiger Block-Typ vd-back-link (Blueprint + Snippet + SCSS, im Layout-Editor an beliebiger Position einfuegbar, teilt Auto-Default $page->parent()->url() mit dem Auto-Header-Snippet, pro Block-Instanz ueber vd-link-Field ueberschreibbar). Map-Editor Panel-Direktlink Staging-fest via neuer Site-Settings-Variable site.mapEditorUrl (Fallback auf site.url-Praefix wenn leer — robust gegen Umgebungswechsel lokal/Staging/Produktion). _extras/map-editor/ in die Versionsverwaltung aufgenommen (10 Dateien Editor-UI + Build-Konfigurationen + Helper-Skripte; geocoded.csv bleibt in .gitignore, projekt-extern und durch Geocoding-Reruns reproduzierbar). Finaler Release-Stand fuer die heutige Praesentation.
Für Redakteure

Back-Link aus v24 hat zwei Korrekturen bekommen: der Inline-Display-Bug ist behoben (Back-Link erschien unter Umständen als Inline-Element im Fließtext statt als eigener Block). Zusätzlich gibt es den Back-Link jetzt auch als eigenen Block-Typ vd-back-link — der Back-Link kann damit nicht nur automatisch im Auto-Header platziert werden, sondern auch manuell als Layout-Block an einer beliebigen Position der Page (z.B. am Ende eines langen Blog-Posts oder einer Case-Study als zweiter Rück-Sprung-Punkt).

Map-Editor-Direktlink im Hintergründe-Tab (eingeführt in v24): der Link nutzt eine neue Site-Settings-Variable site.mapEditorUrl statt eines absoluten site.url-Präfixes. Damit funktioniert der Direktlink korrekt, wenn die Map-Editor-URL je nach Umgebung (lokal, Staging, Produktion) abweicht — die passende URL ist pro Umgebung in den Site-Settings konfiguriert. Fallback auf site.url-Präfix, wenn die Variable nicht gesetzt ist.

Im Hintergrund: Cache-Header in der .htaccess gesetzt — statische Assets (Bilder, CSS, JS, Schriften) werden vom Browser mit Cache-Lifetime ausgeliefert. Beim wiederholten Besuch lädt der Browser die Assets aus dem lokalen Cache statt erneut vom Server. Lighthouse-Befund zur Cache-Policy ist damit erledigt.

Map-Editor-Daten: das _extras/map-editor/-Verzeichnis ist im Repository versioniert (10 Dateien — Editor-UI, Build-Konfigurationen, Helper-Skripte). Die Geocoded-CSV mit Live-Adress-Daten bleibt extern, da sie durch Geocoding-Reruns reproduzierbar ist.

Dies ist der finale Release-Stand für die heutige Präsentation.

Für Besucher

Schnellere wiederholte Seitenladezeiten: Bilder, Schriften, CSS und Skripte werden vom Browser zwischengespeichert (Cache-Lifetime in der .htaccess gesetzt). Beim zweiten Aufruf einer Page lädt der Browser die statischen Assets aus dem lokalen Cache statt erneut vom Server.

Auf Sub-Pages (Blog-Post, Case-Study, Lösungs-Detail): der Back-Link zur Eltern-Hub-Page kann zusätzlich zur automatischen Position im Page-Header auch manuell an einer beliebigen Stelle der Page eingefügt werden — z.B. am Ende eines langen Blog-Posts als zweiter Rück-Sprung-Punkt.

SEO & Performance

Cache-Header in .htaccess: ExpiresActive + ExpiresByType-Regeln für statische Asset-Typen — CSS/JS-Bundles 1 Jahr Cache-Lifetime (Cache-Busting über Versionierungs-Query-Parameter), Bilder 1 Jahr, Schriften 1 Jahr, HTML kein Cache. Cache-Control: public, max-age zusätzlich gesetzt. Lighthouse-Audit "Serve static assets with an efficient cache policy" damit abgehakt — Cache-Policy-Komponente des Performance-Scores auf 100%.

Back-Link-Polish: Inline-Display-Bug im Auto-Header-Snippet aus v24 korrigiert (Back-Link-Element bekam unter Umständen display:inline durch Mark-Context-Inheritance — explizite display:block-Regel im Snippet-CSS gesetzt). Zusätzlich: Back-Link als eigenständiger Block-Typ vd-back-link mit Blueprint + Snippet + SCSS, im Layout-Editor an beliebiger Position einfügbar. Block-Typ teilt den Auto-Default-Verhalten ($page->parent()->url() als Default) mit dem Auto-Header-Snippet, kann aber pro Block-Instanz über das vd-link-Field überschrieben werden.

Map-Editor Panel-Direktlink: neue Site-Settings-Konfiguration site.mapEditorUrl als String-Field. Wenn gesetzt, nutzt der Direktlink-Button diesen Wert; wenn leer, fällt der Link auf den site.url-Präfix zurück. Damit kann der Map-Editor in lokaler Entwicklung (z.B. localhost:3000), Staging und Produktion auf unterschiedliche URLs zeigen, ohne Code-Änderung.

_extras/map-editor/ Versionierung: 10 Dateien in die Versionsverwaltung aufgenommen — Editor-UI-Komponenten, Build-Konfigurationen, Helper-Skripte. Die geocoded.csv (Live-Daten mit Adress-Geocoding-Ergebnissen) bleibt in .gitignore, da projekt-extern und durch Geocoding-Reruns reproduzierbar.

Stand-Notiz: finaler Release-Stand für die heutige Präsentation. Performance-Items aus v21 (Lighthouse-Pass mit lokalen Fonts, Skip-Link, Focus-Ring, ARIA-Roles, Mobile-LCP, CSS-Split, JS-Minify) und v25 (Cache-Header) zusammen ergeben den aktuellen Stand für die Lighthouse-Audit-Werte. Skeleton-Stub-Stand unverändert: Lösungs-Detailseiten verbleiben als einziger offener Skeleton-Stub-Bereich; die Sub-Page-Infrastruktur (Auto-Header mit Back-Link, Back-Link als Block-Typ, comingSoon-Toggle) steht für die kommende Phase bereit.

6 Commits in diesem Zyklus
  • 0d2446f52026-05-12chore(extras): _extras/map-editor/ versionieren (außer geocoded CSV)
  • d927ed392026-05-12fix(map-editor): Panel-Direktlink Staging-fest via site.mapEditorUrl
  • 90caa8172026-05-12fix(back-link) + perf(htaccess): Block-Level Back-Link + Cache-Header
  • 09d866e02026-05-12delegated: Back-Link/Overline Inline-Bug + Cache-Header in .htaccess
  • f50871882026-05-12report: release-report aktualisiert (24 Releases, 575 Commits)
  • 1b203e322026-05-12report: release-report aktualisiert (24 Releases, 575 Commits)
v24
Phase abgeschlossen am 12.05.2026
Iteration mit Schwerpunkt Sub-Page-Pflege und Bereich-Rename: Slug-Rename /ergebnisse → /referenzen flächig (Code, Content, Nav, Sitemap, Page-IDs erhalten). Map-Editor für die HQ-Marker-Konfiguration als eigene Kirby-Route mit Direktlink-Button im Hintergründe-Tab des Panels. Coming-Soon-Logik umgekehrt: Stubs erscheinen nur noch mit explizitem Toggle im Aufbau-Listing. Back-Link im Auto-Header von Sub-Pages (Blog-Post, Case-Study, Lösungs-Detailseiten) zur Eltern-Hub-Page. Diverse kleine Frontend-Korrekturen (Blog-Post-Header-Smoke unter Cover, Cookie-Reopen-Button-Größe, vd-liste-check Stagger als Default).
v24: Map-Editor + Referenzen-Rename + comingSoon-Logik + Sub-Page-Auto-Header (1 WP + 10 Operator-Polish-Commits, ~80 Dateien): Map-Editor mit Kirby-Route und Direktlink-Button im Hintergruende-Tab des Panels (68 Dateien Sammelabnahme wp-2026-05-12-map-editor-kirby-route — eigene Panel-Route fuer den Editor zur HQ-Marker-Konfiguration aus v20, Direktlink absolut mit site.url-prefix Kirby-Root-aware, case-study related-margin fix als Beifang). Slug-Rename /ergebnisse → /referenzen flaechig (Page-Slug + Code-Bezeichnungen + Inhalts-Verweise + Nav-Links + Sitemap, Page-IDs erhalten — die in v22 angelegte Case-Architektur und die in v23 live geschalteten Cases (Valk + Bauunternehmen) sind unter /referenzen weiter erreichbar). Coming-Soon-Logik umgestellt: comingSoon-Toggle pro Page fuer case-study + blog-post + Sub-Page-Templates, Panel-Help in zentralen Snippet abstrahiert; Semantik umgekehrt — Stubs erscheinen jetzt nur dann im Aufbau-Listing (Coming-Soon-Uebersicht aus v20), wenn der Toggle pro Page aktiv ist. Back-Link im Auto-Header (Auto-Header-Snippet eingefuehrt mit Header-Felder-zu-Layout-Bloecke-Migration in v22): blog-post, case-study und loesungen verweisen oben auf die Eltern-Hub-Page; vd-crosslinks-Block bekommt optionales Page-Picker-Feld backLink, das den Auto-Default ueberschreibt. Blog-Post-Header-Smoke laeuft auf Desktop unter dem Cover weiter (Smoke-Layer mit z-index unter Cover-Bild und mask-image-Transparenz-Gradient an der Cover-Unterkante). vd-liste-check-Block: Stagger-Animation als Default-Verhalten (Intersection-Observer beim ersten Sichtbarwerden im Viewport). Footer Cookie-Reopen-Button rendert wieder in Caption-Schriftgroesse (.vd-footer__cookie-reopen mit font-size: var(--caption-size), war im v21-Sammelschluck nav-zitat-panel-plugin-hygiene versehentlich auf Block-Body-Groesse gesetzt). Parallel Operator-Panel-Edits + neuer Account-Eintrag im Panel.
Für Redakteure

Slug-Rename: der bisherige Bereich /ergebnisse heißt jetzt /referenzen — flächig durchgezogen über URL-Slug, Code-Bezeichnungen, Inhalts-Verweise im Frontend und in der Sitemap. Die in v22 angelegte Case-Architektur (Hub mit Übersicht plus Case-Study-Detail-Pages) und die in v23 veröffentlichten Cases (Valk + Bauunternehmen) sind unter /referenzen weiter erreichbar; nur URL und Bezeichnung sind geändert, die Page-IDs bleiben stabil.

Map-Editor mit eigener Kirby-Route: der Editor für die HQ-Marker-Konfiguration im vd-map-backdrop-Block (eingeführt in v20) ist jetzt über eine eigene Route im Panel erreichbar; ein Direktlink-Button im Hintergründe-Tab der Site-Settings führt direkt zum Editor. Der Link nutzt absoluten URL mit site.url-Präfix — funktioniert daher auch in Kirby-Installationen mit Sub-Path-Konfiguration.

Coming-Soon-Logik im Page-Blueprint umgestellt: case-study und blog-post haben jetzt einen comingSoon-Toggle pro Page. Default-Verhalten ist "Page erscheint nicht im Aufbau-Listing"; Pages werden explizit über den Toggle ins Listing genommen. Die Coming-Soon-Übersicht aus v20 zeigt damit nur noch die Pages, die im Panel als "noch in Aufbau" markiert sind. Panel-Help-Text in einem zentralen Snippet abstrahiert, damit die Erklärung in mehreren Blueprints einheitlich erscheint.

Back-Link im Auto-Header: Sub-Pages (Blog-Post, Case-Study, Lösungs-Detailseiten — wenn sie kommen) zeigen oben auf der Page einen Back-Link zur Eltern-Hub-Page (Blog-Post → /blog, Case-Study → /referenzen, Lösungs-Detail → /loesungen). Im vd-crosslinks-Block ein neues Page-Picker-Feld backLink für eine abweichende Back-Link-Auswahl, falls die Default-Eltern-Verknüpfung nicht passt.

Blog-Post-Header auf Desktop: Header-Smoke-Effekt läuft unter dem Cover-Bild weiter — die Smoke-Schicht legt sich mit Transparenz-Verlauf unter das Cover, anstatt an dessen Kante zu enden.

vd-liste-check-Block: Stagger-Animation (Einträge erscheinen zeitversetzt nacheinander beim Sichtbarwerden im Viewport) ist jetzt Default-Verhalten — ohne explizite Konfiguration im Block.

Footer: Cookie-Reopen-Button rendert wieder in Caption-Schriftgröße. Der Button war in einer früheren Phase versehentlich auf Block-Body-Größe gesetzt worden.

Parallel Operator-Panel-Edits auf mehreren Seiten plus ein neuer Account-Eintrag im Panel.

Für Besucher

Der Bereich /ergebnisse heißt jetzt /referenzen — URL und Bezeichnung in Navigation, Sitemap und allen Verweisen sind umgestellt. Die Inhalts-Struktur (Hub mit Übersicht der Case-Studies und Detail-Seiten pro Case) bleibt unverändert; die in v22 und v23 veröffentlichten Cases (Valk + Bauunternehmen) sind unter /referenzen weiter erreichbar.

Auf Sub-Pages (Blog-Post, Case-Study, Lösungs-Detail) erscheint oben auf der Page ein Back-Link zur Eltern-Hub-Page — Blog-Post verlinkt zurück auf /blog, Case-Study auf /referenzen, Lösungs-Detail auf /loesungen.

Im Aufbau-Listing (die Übersicht der Coming-Soon-Pages aus v20) erscheinen Stubs jetzt nur mit explizitem Coming-Soon-Toggle pro Page — die Übersicht zeigt damit nur Pages, die im Panel als "noch in Aufbau" markiert sind.

Auf Blog-Post-Detail-Seiten (Desktop): der Header-Smoke-Effekt läuft unter dem Cover-Bild weiter — die Smoke-Schicht überlagert das Cover mit Transparenz-Verlauf.

In Listen-Blöcken mit Checkmark-Einträgen (vd-liste-check): die Einträge erscheinen zeitversetzt nacheinander, wenn die Liste im Viewport erscheint (Stagger-Animation).

Im Footer: Cookie-Einstellungen-Button erscheint in der Caption-Schriftgröße (Standardgröße der Footer-Captions).

SEO & Performance

Slug-Rename /ergebnisse → /referenzen: Page-Slug aller Pages im Sub-Tree umgestellt, Page-IDs erhalten (Kirby-stabile IDs unabhängig vom Slug). Code-Bezeichnungen in Page-Blueprints, Snippets, Block-Templates und Frontend-Routes mitumgestellt. Sitemap-XML reflektiert den neuen Slug, Crawler-Redirect von /ergebnisse/* auf /referenzen/* über Kirby-Route-Resolver. Mega-Nav-Verweise und alle internen Querverweise nachgezogen.

Map-Editor mit Kirby-Panel-Route: Panel-Plugin registriert eine eigene Route, die einen dedizierten Editor-Screen für die HQ-Marker-Konfiguration des vd-map-backdrop-Blocks (eingeführt in v20) bereitstellt. Direktlink-Button im Hintergründe-Tab der Site-Settings rendert ein <a href> mit absolutem URL — site.url-Präfix verwendet, damit der Link in Installationen mit Sub-Path-Konfiguration korrekt aufgelöst wird. Sammelabnahme als wp-2026-05-12-map-editor-kirby-route (68 Dateien, inkl. case-study-related-margin-Fix als Beifang).

comingSoon-Toggle-Architektur: neues Feld comingSoon (Boolean, Default false) in case-study- und blog-post-Page-Blueprints. Coming-Soon-Aufbau-Listing-Query gefiltert auf Pages mit comingSoon = true. Bisherige Semantik (Pages standardmäßig im Listing, opt-out per Konfiguration) auf opt-in umgekehrt — Stubs erscheinen erst mit explizit gesetztem Toggle. Panel-Help-Texte über einen zentralen Snippet panel-help.php gerendert (gleicher Erklärtext in mehreren Blueprints, eine Quelle).

Back-Link im Auto-Header: Auto-Header-Snippet (eingeführt mit der Header-Felder-zu-Layout-Blöcke-Migration in v22) erkennt Sub-Page-Templates (blog-post, case-study, loesungen) und rendert einen Back-Link auf $page->parent()->url(). vd-crosslinks-Block bekommt ein optionales Page-Picker-Feld backLink — überschreibt den Auto-Default, falls eine andere Hub-Page als Eltern-Verweis sinnvoll ist (z.B. Blog-Post mit thematischer Zuordnung zu einer Lösung).

Header-Smoke unter dem Cover: SCSS-Anpassung am blog-post-Header-Snippet — Smoke-Layer als absolut positioniertes <div> mit z-index unter dem Cover-Bild, mask-image mit Transparenz-Gradient an der Cover-Unterkante.

vd-liste-check Stagger-Animation: Default-Wert für die animation-Konfiguration im Block-Blueprint auf "stagger" gesetzt. Intersection-Observer triggert die Animation beim ersten Sichtbarwerden im Viewport, einzelne Listen-Einträge mit animation-delay über CSS-Custom-Property staggered.

Footer Cookie-Reopen-Button-Größe: SCSS-Regel für .vd-footer__cookie-reopen mit font-size: var(--caption-size) wiederhergestellt (war im v21-Sammelschluck nav-zitat-panel-plugin-hygiene versehentlich auf Block-Body-Größe gesetzt — Footer-spezifische Caption-Skala greift wieder).

Stand-Notiz: Skeleton-Stub-Stand unverändert — Blog (v21) und Referenzen/ehemals Ergebnisse (v22/v23) sind gelöst. Lösungs-Detailseiten verbleiben als einziger offener Skeleton-Stub-Bereich; mit dem Back-Link im Auto-Header und dem Sub-Page-Template-Konzept (Eltern-Verweis auf /loesungen) ist die Infrastruktur für die kommenden Lösungs-Detail-Pages mitgebaut.

14 Commits in diesem Zyklus
  • 3e70f3ec2026-05-12chore: Operator-Panel-Edits + neuer Account-Eintrag
  • c2784a6f2026-05-12fix(back-link) + feat(vd-crosslinks page-picker)
  • ca64cc982026-05-12fix(coming-soon): comingSoon-Semantik umgekehrt — Stubs aus Aufbau-Listing raus
  • 3ce997352026-05-12feat: comingSoon-Toggle fuer case-study + blog-post + Panel-Help abstrahiert
  • ce98e28c2026-05-12fix(footer): Cookie-Reopen-Button rendert wieder in Caption-Groesse
  • 8e8fb4a82026-05-12feat: Back-Link in Auto-Header von Sub-Pages (blog-post, case-study, loesungen)
  • 7b8bb2862026-05-12fix(blog-post): Header-Smoke laeuft auf Desktop unter dem Cover weiter
  • b098a6992026-05-12rename: Ergebnisse-Bereich -> Referenzen (Slug, Code, Content)
  • 8608536c2026-05-12vd-liste-check: Stagger-Animation als Default
  • 830b73ef2026-05-12fix: map-editor-link absolut mit site.url-prefix (Kirby-Root-aware)
  • bce454e62026-05-12wp-map-editor-kirby-route + case-study related-margin fix
  • 7d67a6be2026-05-12delegated: Map-Editor: Kirby-Route + Direktlink im Hintergründe-Tab
  • 945adeb62026-05-12report: release-report aktualisiert (23 Releases, 561 Commits)
  • a27d62fd2026-05-12report: release-report aktualisiert (23 Releases, 561 Commits)
v23
Phase abgeschlossen am 12.05.2026
Iteration mit Schwerpunkt Homepage-Umbau: Sektion-Anpassungen, Hintergrund-Positionen, Inhalts-Pflege auf der Startseite. Valk-Case und Bauunternehmen-Case (in v22 angelegt) sind unter /ergebnisse jetzt für Besucher veröffentlicht. Glossar-Marks als Inline-Mark im Writer für Verknüpfungen auf Glossar-Begriffe (Blog- und Case-Body). 7 Block-Typen sind jetzt als Inline-Mark im Writer verfügbar statt nur als Standalone-Block. Zwei chore-Commits entfernen kaputte Überbleibsel aus früheren Workpackages, die unfertig liegen geblieben waren.
v23: Homepage-Umbau + Fidelity-Fixes + Cases live + WP-Bereinigung (1 WP + 2 chore-Commits, ~50 Dateien): Homepage-Umbau als Schwerpunkt der Iteration — Sektion-Anpassungen, Hintergrund-Positionen, Inhalts-Pflege (im WP wp-2026-05-12-weitere-fidelity-fixes Folge zu manuellem fidelity-passes-Pass, 41 Dateien Sammelabnahme). Bg-Position-Anpassungen fuer Hero-Backdrop und Section-Hintergruende (Pflege pro Sektion). Glossar-Marks: Inline-Mark im Writer fuer Glossar-Verknuepfungen mit Tooltip-Capability — fuer Blog- und Case-Body, baut auf der in v21 eingefuehrten Glossar-Page-Capability auf. 7 Block-Typen auf Writer-Inline-Variante umgestellt: diese Block-Typen sind jetzt als Inline-Mark im Writer-Body verfuegbar, nicht nur als Standalone-Block — kleinere Inline-Elemente koennen in Fliesstext statt eigener Block-Sektion gesetzt werden. Cases offiziell live geschaltet: Valk-Case und Bauunternehmen-Case (in v22 panel-seitig angelegt) sind unter /ergebnisse jetzt publish-status. WP-Bereinigung: 2 Working-Directory-chore-Commits (2 + 7 Dateien) entfernen kaputte Ueberbleibsel aus frueheren Workpackages, die unfertig liegen geblieben waren — Operator-gefuehrt, keine eigene Decision-Begruendung.
Für Redakteure

Homepage-Umbau als Operator-Iteration durchgezogen: Inhalts-Pflege und Sektion-Anpassungen auf der Startseite, betrifft Layout-Blöcke und Section-Hintergrund-Positionen.

Cases offiziell live geschaltet: Valk-Case und Bauunternehmen-Case (in v22 panel-seitig angelegt) sind unter /ergebnisse für Besucher erreichbar — die Pages haben den Status von "draft" auf "listed" gewechselt.

Glossar-Marks im Writer: Inline-Verknüpfungen auf Glossar-Begriffe lassen sich direkt im Fließtext als Mark setzen (analog zu Kursiv/Fett). Der Mark öffnet im Frontend einen Tooltip mit der Definition aus der Glossar-Page (Glossar-Capability eingeführt in v21). Anwendungs-Bereich: Blog-Post-Body, Case-Study-Body, sowie weitere Page-Templates mit Writer-Feld.

7 Block-Typen sind zusätzlich als Inline-Mark im Writer verfügbar — bislang konnten diese Block-Typen nur als Standalone-Block ins Layout eingefügt werden (jeweils eigene Sektion), jetzt lassen sie sich auch als Inline-Element direkt im Fließtext eines Writer-Felds platzieren. Anwendungsfall: ein kleines Logo, eine Zitatkarte, ein Vergleichs-Token mitten im Text, ohne den Lesefluss durch eine eigene Block-Sektion zu unterbrechen.

Section-Hintergrund-Positionen: pro Sektion lässt sich die Background-Position des Hintergrund-Bilds (z.B. das Detail im Hero-Backdrop) jetzt zentriert/links/rechts/oben/unten oder über benutzerdefinierte Werte einstellen. Anwendungs-Bereich: alle Sektion-Backgrounds mit Hintergrund-Bild.

WP-Bereinigung im Hintergrund: zwei kleine Cleanup-Durchgänge (2 + 7 Dateien) entfernen kaputte Überbleibsel aus früheren Workpackages, die unfertig liegen geblieben waren — keine Inhalts-Änderungen, nur strukturelle Bereinigung.

Für Besucher

Auf der Startseite sind Sektion-Hintergründe und Inhalts-Pflege durchgegangen: Layout-Anpassungen pro Section, neue Hintergrund-Positionen für Hero- und Storytelling-Bereiche.

Im Bereich /ergebnisse sind zwei Case-Studies jetzt offen zugänglich: die Valk-Case-Studie und der Bauunternehmen-Case (beide in v22 als Page-Strukturen angelegt, jetzt veröffentlicht). Die Case-Übersicht zeigt für jede der beiden Studien Titel, Branche und Header-Bild.

Im Blog- und Case-Body sind Glossar-Begriffe als Inline-Markierung gekennzeichnet — beim Hovern (Desktop) oder Tippen (Mobile) auf den markierten Begriff erscheint ein Tooltip mit der Definition aus der Glossar-Page.

SEO & Performance

Glossar-Marks: Custom-Mark im writer-marks-Plugin (kamperdev/writer-marks) registriert für die Page-Templates blog-post, case-study und alle Pages mit Writer-Feld. Mark-Token verweist per UUID auf eine Glossar-Page (Glossar-Capability eingeführt mit der Blog-Architektur in v21), Render-Helper rendert einen <span class="vd-glossar-mark"> mit data-uuid und einem dynamisch ausgelieferten Tooltip-Container.

7 Block-Typen auf Writer-Inline-Variante erweitert: die betroffenen Block-Definitionen bekommen eine inline:true-Marker-Konfiguration und eine zweite Render-Variante für den Inline-Kontext. Block-Typen behalten ihre Standalone-Layout-Variante; die Inline-Variante ist eine zusätzliche Render-Option, kein Ersatz.

Section-Background-Position: vd-section-Layout-Wrapper bekommt zwei zusätzliche Felder im Page-Blueprint — bg-position-x und bg-position-y mit Defaults center/center. CSS-Custom-Property --vd-bg-position wird im Section-Wrapper gesetzt und im Background-Image-Layer verwendet. Anwendung pro Sektion auf der Startseite individuell konfiguriert.

Cases-Veröffentlichung: Page-Status für Valk-Case und Bauunternehmen-Case von "draft" auf "listed" gewechselt — die Pages erscheinen im Page-Tree als veröffentlicht, sind über die Website-Routes erreichbar, in der Sitemap-XML enthalten und über die Hub-Übersicht /ergebnisse verlinkt.

WP-Bereinigung: Working-Directory-Cleanup in 2 chore-Commits (2 + 7 Dateien) — Reste aus einem manuell durchgezogenen fidelity-passes-Pass, die nicht über den regulären audit_and_commit-Workflow gelaufen waren. Sammelabnahme als wp-2026-05-12-weitere-fidelity-fixes (41 Dateien, Folge-WP zu fidelity-passes-manuell): Iterations-Schritt mit bg-position-Konfiguration, Glossar-Mark-Einführung, Cases-Live-Schaltung und 7 Block-Typen-Inline-Variante.

Stand-Notiz: Lösungs-Detailseiten weiterhin nicht panel-seitig angelegt; Lösungs-Hub /loesungen mit Editorial-Inhalt (Stand v22). Skeleton-Stub-Stand: Blog (v21 gelöst) und Ergebnisse (v22 gelöst inkl. v23-Live-Schaltung) sind aus dem Stub-Modus raus; Lösungs-Detailseiten verbleiben als einziger offener Skeleton-Stub-Bereich.

5 Commits in diesem Zyklus
  • ce2cc2d02026-05-12iteration: bg-position, glossar-marks, case-studies live + 7 blocks writer-inline
  • 8e29f89a2026-05-12chore: 7 geaendert (7 Dateien)
  • a2390c552026-05-12chore: 2 geaendert (2 Dateien)
  • 773a503c2026-05-11report: release-report aktualisiert (22 Releases, 556 Commits)
  • 71544d052026-05-11report: release-report aktualisiert (22 Releases, 556 Commits)
v22
Phase abgeschlossen am 11.05.2026
Ergebnisse-Hub und Case-Architektur analog zur Blog-Architektur aus v21 aufgesetzt — die in v17 angelegten Ergebnisse-Skeleton-Stubs sind damit aufgelöst. Zwei Cases unter /ergebnisse: Valk strukturell mit Briefing-Platzhaltern (finaler Content folgt nach Kunden-Abstimmung), Bauunternehmen-Case ergänzend. Neuer vd-vergleich-Block für Gegenüberstellungen, Layout-Utilities (1/12-flankierte 2-Spalter, customHeader-Toggle pro Page), vd-logos-Grid mit Freitext-CTA-Zeile. Mega-Nav schlanker mit Hover-Bridge. Editorial-Pass auf den Lösungs-Hub /loesungen mit Inhalt statt Stub-Layout.
v22: Ergebnisse-Architektur + Case-Studies + Layout-Utilities + Mega-Nav-Polish (1 WP + 13 Operator-Polish-Commits, ~150 Dateien): Ergebnisse-Kategorie-Seite analog Blog-Architektur (102 Dateien Sammelabnahme wp-2026-05-11-ergebnisse-rebuild-valk — Ergebnisse-Hub als eigenstaendige Page-Blueprint, neue case-study Page-Blueprint mit customHeader-Toggle, Valk-Case-Studie strukturell aufgebaut mit Briefing-Platzhaltern als Content, Bauunternehmen-Case ergaenzend angelegt, Header-Felder bei Blog + Ergebnisse zu Layout-Bloecken migriert fuer einheitliche Section-Komposition). Neuer vd-vergleich-Block angelegt (Blueprint + Snippet + SCSS + Fieldset, Padding-Token-Fix von $vd-space-7 auf $vd-space-8 da 7 in vd-space-Skala nicht existiert). Layout-Utilities (Container-Width-Utility .vd-container--flanked-2col fuer 1/12-flankierte 2-Spalter mit 10-Spalten-Inhalt, customHeader-Toggle pro Page als optionaler Bereich vor dem regulaeren Page-Header). vd-logos Grid-Variante erweitert (Freitext-Zeile mit CTA-Anker als Grid-Item innerhalb des Logo-Rasters, ergaenzt die in v21 eingefuehrte Grid-Variante). Mega-Nav-Polish (Case-Card im Submenu schlanker — Meta-Zeile + 'Alle Ergebnisse'-Link entfernt + Trenner vor Case-Study-Link, Sekundaer-Reihe Wissen-Link auf v20-Slug /blog korrigiert, transparente Hover-Bridge zwischen Top-Item und Sub-Menue-Layer haelt pointer-Event-Routing aktiv beim Maus-Uebergang). Panel-QOL: Single-Picker-Felder ohne expliziten template-Tag akzeptieren PNG und SVG zusaetzlich zu den bisherigen Bild-Formaten. Editorial-Pass auf Ergebnisse-Index + Loesungs-Hub /loesungen (statt Stub-Layout jetzt Editorial-Inhalt: Hero + Pain-Points + Loesungsbereich-Verzeichnis + Trust-Sektion). Heading-Level-Bug in Composite-Block-Snippets korrigiert (h-Element-Level mit falschem Parameter ausgewertet) + case-study Section-Type-Klassenname griff nicht durch (CSS-Selektor-Spezifitaet). textExtended-Mark im Writer: align-Attribut entfernt (kein Standard-Mark-Attribut, fuehrte beim KirbyText-Export zu unerwartetem HTML). Parallel Operator-Edits auf Home + Ueber-uns + Karriere. Stand: Ergebnisse-Hub und zwei Cases unter /ergebnisse panel-seitig angelegt (Valk strukturell mit Briefing-Platzhaltern, Bauunternehmen ergaenzend), Loesungs-Hub /loesungen mit Editorial-Inhalt (Editorial-Pass im Rahmen dieser Phase nachgezogen), Loesungs-Detailseiten weiterhin nicht panel-seitig angelegt.
Für Redakteure

Ergebnisse-Hub angelegt: /ergebnisse als eigenständige Kategorieseite analog zur Blog-Architektur aus v21. Page-Blueprint mit Index-Layout (Übersicht der Cases), darunter Case-Detail-Seiten als eigene Page-Blueprint "case-study". Zwei Cases unter /ergebnisse panel-seitig angelegt:
— Valk-Case-Studie: alle Sections strukturell aufgebaut, der Content liegt aktuell als Briefing-Platzhalter vor (echter Content folgt nach Kunden-Abstimmung)
— Bauunternehmen-Case: ergänzend angelegt

Header-Felder bei Blog- und Ergebnisse-Page-Blueprints zu Layout-Blöcken migriert: der Page-Header (Titel, Lead, Header-Bild) wird jetzt als eigener Layout-Block im Editor gepflegt statt als separates Feld-Set — Section-Komposition mit dem übrigen Page-Inhalt damit vereinheitlicht, alle Sections (Header + Content) laufen über den gleichen Layout-Editor.

customHeader-Toggle pro Page: über einen Toggle im Page-Blueprint lässt sich ein zusätzlicher Bereich vor dem Page-Header einblenden — für Cases mit speziellem Intro-Layout. Standard ist aus, der reguläre Page-Header bleibt aktiv.

Neuer Block-Typ "vd-vergleich" für direkte Gegenüberstellungen (Vorher-/Nachher-Spalten, Mit-/Ohne-Tabelle, A-vs-B). Blueprint, Snippet, SCSS und Fieldset angelegt.

Layout-Utilities: Container-Width-Utility für eine 1/12-flankierte 2-Spalter-Section (12-Spalten-Grid mit einer Spalte Rand links und rechts, der Inhalt nimmt die mittleren 10 Spalten — bisher musste das im Block-individuellen Layout selbst nachgebaut werden, jetzt eine zentrale Klasse).

vd-logos Grid-Variante (eingeführt in v21): bekommt eine Freitext-Zeile mit CTA-Anker als Grid-Item innerhalb des Logo-Rasters — Text neben den Logos, der auf eine Page oder einen Anchor verlinkt.

Bild-Picker (Single-Picker-Felder im Panel): zeigt PNGs und SVGs ohne expliziten Template-Tag — Single-Picker-Felder akzeptieren alle gängigen Bild-Formate, der erlaubte Bild-Typ muss nicht mehr pro Feld konfiguriert werden.

Mega-Nav-Polish: Case-Card im Sekundär-Bereich schlanker — Meta-Zeile und der "Alle Ergebnisse"-Link entfernt, dafür ein Trenner vor dem Case-Study-Link. Der Wissen-/Blog-Link in der Sekundär-Reihe nutzt den in v20 umbenannten Slug /blog. Hover-Bridge zwischen Top-Item und Sub-Menü-Layer eingebaut: der Maus-Übergang zwischen den beiden Bereichen hält das Sub-Menü offen.

Editorial-Pass auf den Ergebnisse-Index sowie auf den Lösungs-Hub /loesungen — der Lösungs-Hub ist jetzt mit Editorial-Inhalt befüllt (Hero, Pain-Points, Lösungsbereich-Verzeichnis, Trust-Sektion) statt des Stub-Layouts aus v21. Heading-Level-Bug in Composite-Block-Snippets korrigiert (HTML-Heading-Level h2/h3/h4 wurde mit falschem Parameter ausgewertet, die Heading-Hierarchie war in tieferen Sections nicht konsistent). case-study Section-Type-Fix: Section-Type-Klassenname griff nicht durch.

Parallele Operator-Edits im Panel: Home, Über-uns und Karriere bekommen Inhaltspflege durch den Operator.

textExtended-Mark im Writer: align-Attribut entfernt (war im Standard-Markdown nicht vorgesehen und führte beim KirbyText-Export zu unerwartetem HTML).

Für Besucher

Unter /ergebnisse ist die Case-Studies-Sektion online: zwei Cases als Detail-Seiten erreichbar — Valk-Case (Inhalt aktuell als Briefing-Platzhalter, finaler Content folgt nach Kunden-Abstimmung) und Bauunternehmen-Case.

Auf der Lösungs-Seite /loesungen ist Editorial-Inhalt statt des Stub-Layouts: Hero, Pain-Points, Lösungsbereich-Verzeichnis und Trust-Sektion. Lösungs-Detailseiten sind weiterhin nicht angelegt.

Im Mega-Menü (Desktop-Navigation): Case-Card im Sekundär-Bereich schlanker — Meta-Zeile und "Alle Ergebnisse"-Link entfernt, dafür ein Trenner vor dem Case-Study-Link. Der Maus-Übergang zwischen einem Top-Item und dem Sub-Menü hält das Sub-Menü offen (Hover-Bridge).

Neue Variante im Logo-Block (vd-logos): zusätzlich zu Marquee und Grid (aus v21) jetzt eine Freitext-Zeile mit CTA-Anker innerhalb des Logo-Rasters — Begleittext zwischen den Logos, der auf eine Page oder einen Anchor verlinkt.

Neuer Inhalts-Block "Vergleich" (vd-vergleich) für direkte Gegenüberstellungen — Vorher/Nachher, Mit/Ohne oder A-vs-B als Spalten oder Tabelle.

Parallel im Panel: inhaltliche Operator-Edits auf Home, Über-uns und Karriere — keine Layout-Änderungen für den Besucher, aber Text- und Bild-Pflege.

SEO & Performance

Ergebnisse-Kategorie-Architektur analog zur Blog-Architektur aus v21: zwei neue Page-Templates — ergebnisse (Hub mit Case-Übersicht) und case-study (Detail-Page). Page-Blueprints inklusive customHeader-Toggle (optionaler Bereich vor dem regulären Page-Header), Glossar-Markup für Inline-Verknüpfungen, Page-Preview-Image über die in v21 eingeführte allgemeine Capability. Migration der in v17 angelegten Skeleton-Cases auf das neue Schema (Page-IDs erhalten). Zwei Cases unter /ergebnisse angelegt: Valk-Case strukturell aufgebaut mit Briefing-Platzhaltern, Bauunternehmen-Case ergänzend.

Header-Felder bei Blog- und Ergebnisse-Page-Blueprints zu Layout-Blöcken migriert: der bisherige separate Feld-Block "Page-Header" (Titel, Lead, Header-Bild als eigene Felder im Page-Blueprint) ist jetzt ein Layout-Block im Editor — Section-Komposition mit dem übrigen Page-Inhalt damit vereinheitlicht, alle Sections (Header und Content) laufen über den gleichen Layout-Editor.

Neuer Block-Typ vd-vergleich: Blueprint + Snippet + SCSS + Fieldset angelegt. Padding-Token-Korrektur — $vd-space-7 existiert nicht in der vd-space-Skala (geht in nicht-fortlaufenden Stufen: 1, 2, 4, 8, 12, 16, 20, 24, 32, 64), Token auf $vd-space-8 korrigiert.

Container-Width-Utility: CSS-Klasse .vd-container--flanked-2col rendert eine 12-Spalten-Grid-Section mit einer Spalte Rand links und rechts, Inhalt in den mittleren 10 Spalten. Zentrale Definition, in 2-Spalter-Sections der Cases und Lösungen wiederverwendet.

vd-logos Grid-Variante (v21): Freitext-Zeile als Grid-Item innerhalb des Raster-Containers — kann Text mit CTA-Anker (vd-link-Field) tragen, position-konfigurierbar zwischen den Logo-Items.

Mega-Nav-Schliff: Case-Card im Submenu schlanker (Meta-Zeile + "Alle Ergebnisse"-Link entfernt, Trenner-Linie vor Case-Study-Link); Wissen-Link in der Sekundär-Reihe nutzt den in v20 umbenannten Slug /blog statt /wissen. Hover-Bridge: transparente Brücken-Fläche zwischen Top-Item und Sub-Menü-Layer hält das pointer-Event-Routing aktiv, wenn die Maus die kurze Lücke zwischen beiden überquert.

Panel-QOL: Single-Picker-Felder im Panel ohne expliziten template-Tag akzeptieren PNG und SVG zusätzlich zu den bisherigen Bild-Formaten — Kirby-internes Picker-Default-Whitelist erweitert.

Editorial-Pass: Ergebnisse-Index und /loesungen-Hub mit Editorial-Inhalt befüllt. Heading-Level-Bug korrigiert: in Composite-Block-Snippets wurde der HTML-Heading-Level (h2/h3/h4) mit dem falschen Parameter ausgewertet — die Heading-Hierarchie war in tieferen Sections nicht konsistent. case-study Section-Type-Fix: Section-Type-Klassenname griff nicht durch (CSS-Selektor-Spezifität).

textExtended-Mark im Writer: align-Attribut aus der Mark-Definition entfernt — war kein Standard-Mark-Attribut, führte beim KirbyText-Export zu unerwartetem HTML.

Stand-Notiz: Ergebnisse-Hub und zwei Cases unter /ergebnisse panel-seitig angelegt — Valk-Case-Content noch als Briefing-Platzhalter, finale Befüllung nach Kunden-Abstimmung. Lösungs-Detailseiten weiterhin nicht panel-seitig angelegt; Lösungs-Hub /loesungen mit Editorial-Inhalt (Editorial-Pass im Rahmen dieser Phase nachgezogen).

21 Commits in diesem Zyklus
  • f07828622026-05-11content(ergebnisse) + fix(ui): Bauunternehmen-Case + customHeader-Bereich, mega-nav Hover-Bridge, textExtended ohne align
  • 41d433d82026-05-11content: Operator-Edits auf Home + Ueber-uns (parallel im Panel)
  • 4eb28cc62026-05-11content(loesungen) + fix(case-study blueprint): Editorial-Pass + Section-Type-Fix
  • ecf087c82026-05-11content(ergebnisse) + fix(layouts): Editorial-Pass auf Ergebnisse-Index + heading helementLevel-Bug
  • c78f3e822026-05-11feat(layout+blocks) + content(valk): Container-Width-Utility, 1/12-flankierte 2-Spalter, customHeader-Toggle, Valk-Redo
  • 152cd0b32026-05-11feat(vd-logos): Grid-Variante bekommt Freitext-Zeile mit CTA-Anker
  • f31c35862026-05-11ui(mega-nav): "Alle Ergebnisse" aus Sekundaer-Reihe entfernt — Wissen/Blog-Link mit korrektem Slug
  • 55793bfe2026-05-11ui(mega-nav): Case-Card schlanker — Meta-Zeile + Alle-Ergebnisse-Link entfernt, Trenner vor Case-Study-Link
  • e90e24cf2026-05-11fix(scss): vd-vergleich-Padding-Token korrigiert — `$vd-space-7` existiert nicht
  • 8d46f1bd2026-05-11content(valk) + ui: Finesse-Pass 2 — 2-Spalter-Sections, vd-vergleich sichtbar, Lessons als Vorteile, Mega-Nav-Bild
  • 10ed87e52026-05-11fix(blocks): vd-vergleich-Block angelegt — Blueprint, Snippet, SCSS, Fieldset
  • ce64bb312026-05-11fix(panel): Bild-Picker zeigt jetzt auch PNGs/SVGs ohne expliziten Template-Tag
  • 6f7a4cc42026-05-11panel: Header-Felder bei Blog + Ergebnisse zu Layout-Bloecken migriert
  • a1d565d22026-05-11panel: collapseExpand-Section in blog/blog-post/ergebnisse/case-study ergaenzt
  • 2480de2d2026-05-11feat(panel+frontend): Kategorie-Seiten freiform + Mitarbeiter-Platzhalter + Footer-Polish
  • 7a4bb52c2026-05-11fix(panel): previewImage-Upload-Endpoint — Field-Namens-Konflikt entfernt
  • 9a423abc2026-05-11feat(blog+loesungen+ergebnisse): Seiteninhalt mit layoutsTop + layoutsBottom freiform
  • 696e64862026-05-11content+ui: Valk-Case-Study Finesse + Mega-Nav-Refresh + Footer-Link-Fixes + Panel-Restructure
  • 46df80342026-05-11report: release-report aktualisiert (21 Releases, 535 Commits)
  • 80e553ab2026-05-11report: release-report aktualisiert (21 Releases, 535 Commits)
  • 70c9a2562026-05-11feat(ergebnisse): Index + case-study Architektur + Valk-Studie mit Briefing-Markern
v21
Phase abgeschlossen am 11.05.2026
Großer Release mit drei substantiellen Schritten: Lighthouse-Pass für Performance + Barrierefreiheit (lokale Roboto-Fonts statt Google-Fonts, Skip-Link, Focus-Ring, ARIA-Roles, Mobile-LCP-Optimierung, CSS Critical/Extras-Split, vollständige JS-Minifizierung), Blog-Architektur neu aufgesetzt mit erster vollständig ausgearbeiteter Story und 5 Platzhalter-Posts, invertierte Desktop-Navigation (weiß auf dunkel) für Seiten mit dunklem Top-Theme. Dazu ein Editor-QOL-Bündel (hero+parallax, gradient-Slider, vd-cta-Layout, Mobile-CTAs), Logo + Team Mobile-Polish, und ein 245-Dateien-Sammelschluck mit Plugin-Hygiene (Namespace/Author/Lizenz/Version flächig) plus vd-zitat-Erweiterung um Author + Avatar.
v21: Lighthouse-Pass + Blog-Architektur + Nav-Invertiert + Editor-QOL + Plugin-Hygiene (6 WPs, ~376 Dateien): Editor-QOL Sammelschluck (19 Dateien — Hero-Centering auslagern, hero+parallax vAlign + 150vh-Section auf Sticky-Travel, Gradient-Richtung als 15°-Slider + Invert-Toggle + 0°-Konvention oben-nach-unten, vd-cta Refactor mit Panel-Feldern auf 1/2 Breite + Telefon-Zeile mit Phone-Icon, vd-stellenangebote Mobile-CTA 'Weiterlesen' statt Pfeil-Spalte, team-mitarbeiter Foto-Picker auf page-files + medien/bilder, linear-nav Du-Anrede statt Sie, Listen-Checkmark als SVG, Kununu-Blocks WYSIWYG, Standort Fliesstext-Groessen, Stellenangebot-Tab-Icon). Desktop-Header invertierte Variante (20 Dateien — weiss auf dunkel, Items +25%, Logo invertiert, transparente Top-Stage auf invertierten Top-Layouts). Logo + Team Mobile-Polish (31 Dateien — vd-logos Grid-Variante neben Marquee + Icon-Caps 500px + Marquee-Gap-Config + Logo-Deckkraft via Panel-Slider + Grid-Gap-Stufen mit Riesig-Option auf $vd-space-20, Team-Grid per-Zeile Caption-Groessen Name/Position/Flavour + cols-Class-Sanitization, stabile Mitarbeiter-Verknuepfung via Slug statt synced-slug, Karriere-Stellen Mobile-CTA, Linear-Nav Du-Anrede). Lighthouse-Pass (32 Dateien — Lighthouse-Capability via Playwright tools/lighthouse headless, Google-Fonts ersetzt durch lokal gehostetes Roboto-Subset, A11y-Industriestandard Skip-Link + Focus-Ring + ARIA-Roles + Badge-Contrast 4.5:1 + Headings-Korrekturen, Mobile-LCP-Optimierung mit Picture-Art-Direction fuer hero-backdrop 800w-Preset, Typekit async, CSS Critical/Extras-Split sync ~30KB inline + async ~143KB per preload+onload, JS vollstaendige Minifizierung mit legal-comments entfernt + CSS-Text-Templates inline minify). Blog-Architektur neu aufgesetzt (29 Dateien — blog.yml + blog-post.yml Page-Blueprints + Templates + SCSS, allgemeine Page-Preview-Image-Capability mit Helper vdPagePreview, Migration der in v20 von 'wissen' auf 'blog' umbenannten Skeleton-Pages auf das neue Post-Schema, erste vollstaendig ausgearbeitete Story 'telefonagenten-experiment' + 5 Platzhalter-Posts). Nav-Zitat-Panel-Plugin-Hygiene-Sammelschluck (245 Dateien — Nav-MegaNav-Hover-Shift-Fix, vd-zitat Author + Avatar + Spacing/Mark-Clipping + Kursiv-/Fett-Override-Selects, Panel-Module-Reihenfolge in Site-Settings, Plugin-Namespace + Author + Lizenz + Version flaechig fuer alle kamperdev/* Plugins). Post-Release Stub-Fix: loesungen-Page 500-Behebung + Stub-Layout statt freiem Platzhalter-Inhalt, vd-zitat Operator-Polish nachgezogen. Stand: Loesungs-Detailseiten weiterhin nicht panel-seitig angelegt, Ergebnisse-Skeleton-Stubs ueberwiegend leer — Ergebnisse-Kategorie-Seite + Case-Architektur analog Blog + Valk-Case-Studie war beim Audit-Zeitpunkt delegated, ausserhalb v21-Scope (landet in v22).
Für Redakteure

Blog-Architektur neu aufgesetzt: zwei neue Page-Blueprints (Blog-Hub und Blog-Post) ersetzen die bisherige Wissen-Struktur. Die in v20 aus "Wissen" umbenannten Skeleton-Stubs sind auf das neue Post-Schema migriert. Erste vollständig ausgearbeitete Story online: "Das Telefonagenten-Experiment" — plus fünf Platzhalter-Posts unter /blog/. Im Post-Blueprint pflegbar: Titel, Lead, Beitragsbild, Glossar-Begriffe (mit Tooltip im Frontend), Spaltenbreite, Autor.

Page-Preview-Image als allgemeine Capability: alle Page-Blueprints können ein Preview-Bild im Panel pflegen — wird für OpenGraph (Social-Media-Vorschau) und Twitter-Cards verwendet, plus an Stellen im Frontend, die ein Page-Vorschaubild brauchen (Case-Box auf der Home, Hub-Verzeichnisse). Helper vdPagePreview liefert das Bild mit Fallback-Kaskade (Page-Override → Page-Hero → Site-Default).

Zitat-Block (vd-zitat) erweitert: zusätzlich zum Zitat-Body ein Author-Bereich mit Name, Position und Avatar-Bild. Zwei neue Inline-Marks im Writer: Kursiv-Override und Fett-Override als Auswahl-Selects. Spacing- und Clipping-Probleme in der Akzent-Mark-Darstellung behoben.

CTA-Block (vd-cta) im Panel kompakter: Felder auf halbe Breite umgestellt, mehr Felder auf einen Blick im Editor. Telefonnummer-Zeile in eigener Zeile mit Phone-Icon davor.

vd-logos: zusätzlich zur Marquee-Variante eine Grid-Variante (Logos in einem festen Raster statt scrollend). Logo-Deckkraft pro Block-Instanz über einen Panel-Slider einstellbar. Gap-Stufen großzügiger, Icon-Caps auf 500px Desktop angehoben.

Mobile-Layout in Stellenangebote-Übersicht: "Weiterlesen"-Button-Zeile unten am Eintrag — bessere Bedienbarkeit auf dem Smartphone als die bisherige Pfeil-Icon-Spalte am Rand.

Team-Block (vd-team): Mitarbeiter-Verknüpfung läuft über stabilen Slug. Caption-Größen pro Zeile separat einstellbar — Name, Position, Flavour können unterschiedlich groß gerendert werden. Foto-Picker im Mitarbeiter-Profil zeigt sowohl die Page-eigenen Files als auch den medien/bilder-Pool aus v18.

Hero-Sektionen mit Sticky-Parallax: Layout-Position des Inhalts (vAlign) wirkt auch bei einer auf 150 % der Bildschirmhöhe gestreckten Section. Gradient-Richtung als Slider in 15°-Schritten mit Invert-Toggle; 0° entspricht der Konvention "von oben nach unten".

Linear-Nav am Seitenende: Anrede in der Du-Form in den Labels.

Lösungs-Seite (/loesungen): Stub-Layout angelegt, Server-Fehler beim Aufruf behoben.

Für Besucher

Auf der Blog-Seite unter /blog ist die erste vollständig ausgearbeitete Story online: "Das Telefonagenten-Experiment". Weitere fünf Posts sind als Platzhalter angelegt — die Übersicht zeigt für jeden Post das Beitragsbild, Titel, Lead-Text und Autor.

Desktop-Navigation in invertierter Variante: auf Seiten mit dunklem Top-Bereich (z.B. der Stellen-Landingpages aus v20) erscheint das Menü weiß auf dunkel, mit etwas größeren Menü-Items (+25%). Das Logo oben links wird invertiert mitausgeliefert, der Hintergrund unter dem Menü ist transparent.

Performance + Barrierefreiheit: Schriften (Roboto) werden vom eigenen Server ausgeliefert, kein Verbindungsaufbau zu Google Fonts. Tab-Navigation mit der Tastatur greift den nächsten Inhalt erkennbar mit einem Focus-Ring; am Anfang einer Seite erscheint ein Skip-Link, der direkt zum Hauptinhalt springt (Tastatur- und Screen-Reader-Bedienung).

Auf dem Smartphone laden die ersten erscheinenden Inhalte schneller: das Hero-Backdrop-Bild kommt in einer eigenen, kleineren Variante (800px breit) statt der Desktop-Auflösung. Schrift-Dateien werden asynchron geladen, der Text erscheint ohne Wartezeit auf die Schrift.

Zitat-Blöcke mit Autor-Angabe: zum Zitat-Body lassen sich Autor-Name, Position und Avatar-Bild ergänzen — wird im gerenderten Zitat neben oder unter dem Body angezeigt.

Auf der Stellenangebote-Übersicht (Smartphone): jeder Eintrag schließt mit einem "Weiterlesen"-Button statt eines Pfeil-Icons am Rand — bessere Bedienbarkeit per Daumen.

In den linearen Weiter/Zurück-Navigationen am Seitenende: Anrede in der Du-Form.

Lösungs-Übersichtsseite (/loesungen) lädt wieder. Inhaltlich als Stub-Layout angelegt — die Befüllung mit Inhalten kommt mit der nächsten Phase.

SEO & Performance

Lighthouse-Pass mit eigener Capability: Skript tools/lighthouse als headless Playwright-Job, läuft lokal und schreibt JSON-Report — automatisierte Performance- und A11y-Audits ohne Browser-Plugin.

Performance: Google-Fonts vollständig durch lokal gehostete Roboto-Subset-Dateien ersetzt — kein Drittanbieter-DNS-Lookup, kein Verbindungsaufbau zu fonts.googleapis.com beim Initial-Load. Hero-Backdrop-Preset mit Picture-Art-Direction: 800w-Variante für Mobile, separates größeres Preset für Desktop — pro Bildschirmgröße wird das passende Asset ausgeliefert. CSS-Split: Critical-Path-CSS (~30 KB) inline im <head>, Extras-CSS (~143 KB) async per preload+onload-Pattern — Above-the-fold-Inhalt rendert ohne CSS-Round-Trip. JavaScript vollständig minifiziert (legal-comments entfernt, CSS-Text-Templates inline minify).

Barrierefreiheit auf Industriestandard: Skip-Link am Anfang jeder Page (Tab-Navigation), Focus-Ring für alle interaktiven Elemente (3px Akzent-Outline), ARIA-Roles auf Container und Navigation, Badge-Contrast auf 4.5:1-Mindestkontrast angehoben, Heading-Reihenfolge in Composite-Block-Templates korrigiert.

Page-Preview-Image als allgemeine Capability: alle Page-Templates haben ein gemeinsames preview-Field-Set (Bild + Titel-Override + Beschreibung-Override). Zentraler Helper vdPagePreview() liefert die Werte mit Fallback-Kaskade (Page-Override → Page-Hero → Site-Default). Wird im OpenGraph-Snippet, im Twitter-Card-Snippet und an allen Stellen im Frontend genutzt, die ein Page-Vorschaubild brauchen (Case-Box auf der Home, Hub-Verzeichnisse, Blog-Übersicht).

Blog-Architektur: zwei neue Page-Templates — blog (Hub) und blog-post. Page-Blueprints inklusive Glossar-Markup für Inline-Verknüpfungen, Autor-Pages-Referenz, Spaltenbreite, Beitragsbild. Migration der in v20 von "wissen" auf "blog" umbenannten Skeleton-Pages auf das neue Schema (Page-IDs erhalten). Erste vollständig ausgearbeitete Story plus fünf Platzhalter-Posts unter /blog/.

Plugin-Hygiene flächig: alle kamperdev/*-Plugins (vd-link, vd-panel-tweaks, vd-team, forms, quiz, writer-marks etc.) bekommen einen einheitlichen Plugin-Header mit Namespace, Author, Lizenz und Version. Panel-Module-Reihenfolge in der Panel-Settings-Hierarchie sortiert.

Desktop-Header invertierte Variante: zweite Theme-Visualisierung der Site-Navigation, aktiviert über data-theme="invertiert" am Top-Section-Layout. CSS-Selektor-Kaskade: bei aktiv invertiertem Top-Layout greift eine alternative .vd-nav--invertiert-Klasse mit weißem Logo-Asset, weißer Item-Farbe, transparentem Stage-Hintergrund. Item-Größe in der invertierten Variante um 25% angehoben.

Team-Mitarbeiter-Verknüpfung über stabilen Slug statt synced-slug: vd-team-Block-Referenzen bleiben bei Mitarbeiter-Umbenennung stabil — die bisherige Slug-Sync hat den Slug aus dem Vornamen neu generiert und damit Referenzen ins Leere geführt.

Repo-Bereinigung: 7 alte Wissen-Schema-Dateien gelöscht (im Rahmen der Blog-Migration), Operator-Panel-Edits auf mehreren Seiten konsolidiert (Home, Karriere, KI-Lösungsseite).

Stand-Notiz: Lösungs-Detailseiten sind weiterhin nicht panel-seitig angelegt; Lösungs-Hub /loesungen hatte zwischenzeitlich einen HTTP-500-Fehler, in dieser Phase mit Stub-Layout statt freiem Platzhalter-Inhalt versehen. Ein delegated-Workpackage für die Ergebnisse-Kategorie-Seite (analog zur Blog-Architektur) plus Valk-Case-Studie mit Briefing-Platzhaltern war beim Audit-Zeitpunkt noch offen — der Abschluss landet in v22.

70 Commits in diesem Zyklus
  • f41bc55f2026-05-11fix(loesungen): 500 behoben + Stub-Layout statt Quatsch-Inhalt
  • c3c253e52026-05-11fix(vd-zitat): Spacing/Author/Mark-Clipping + Kursiv- und Fett-Override-Selects
  • 56f21d732026-05-11delegated: Ergebnisse-Kategorie-Seite + Case-Architektur (analog Blog) + Valk-Case-Studie mit Briefing-Platzhaltern
  • fbacef8d2026-05-11feat: Nav-Hover-Shift + vd-zitat Finesse + Panel-Cleanup + Plugin-Hygiene
  • c907bfe82026-05-11delegated: Nav-MegaNav-Hover-Fix + vd-zitat Author/Avatar/Finesse + Panel-Module-Reihenfolge + Plugin-Namespace/Author/Lizenz/Version
  • 5fc372af2026-05-11content: Operator-Panel-Edits (Home + Karriere)
  • 4203985a2026-05-11fix(blog-post): Spaltenbreite, Glossar-Klasse, Loecher
  • ae0438992026-05-11content(blog): telefonagenten Finesse-Pass + 5 Platzhalter-Posts
  • 6d0fb1eb2026-05-11content: Operator-Panel-Edits (Home + KI-Loesungsseite)
  • efb294602026-05-11content(blog): Migration auf neues Schema + erste echte Story telefonagenten
  • 535826462026-05-11feat(blog): neue Architektur — blog.yml + blog-post.yml + Templates + SCSS
  • 9725b3852026-05-11feat(seo): previewImage als allgemeine Page-Capability + Helper vdPagePreview
  • 742f776e2026-05-11delegated: Page-Preview-Image (allgemein) + Blog-Architektur (Index + Post-Template + erste echte Story telefonagenten-experiment)
  • 0785dd192026-05-11content: Operator-Panel-Edits auf karriere.txt
  • 6f0782692026-05-11perf(images): 800w-Variante fuer hero-backdrop-Presets
  • 37c0e1e32026-05-11perf(js): vollstaendige Minifizierung — legal-comments raus, CSS-Text inline minify
  • adde10a12026-05-11perf(css): minify + Critical/Extras-Split (sync ~30 KB + async ~143 KB)
  • 65b2393e2026-05-11perf(mobile): LCP-Optimierung + Picture-Art-Direction + Typekit async
  • 70b70b912026-05-11feat(tools): tools/lighthouse — headless Lighthouse-Capability
  • 442dbca82026-05-11fix(a11y): Lighthouse-Befunde umgesetzt (Badge-Contrast, ARIA-Roles, Headings)
  • 0f744cec2026-05-11feat(fonts): Roboto lokal hosten + Skip-Link + Focus-Ring
  • ca2aa33f2026-05-11delegated: Lighthouse-Capability via Playwright + Google-Fonts lokal hosten (Roboto) + A11y/Tab-Nav-Industriestandard
  • e8cbdd282026-05-11chore(vd-logos): Klassennamen im Header-Kommentar voll ausgeschrieben (verify-Match)
  • ba2733972026-05-11content: Operator-Panel-Edits + neue Mitarbeiter-Fotos lokal
  • c0a380082026-05-11fix(vd-cta): Telefon-Zeile naeher zusammen, mehr Atemraum vom Button
  • 42385a242026-05-11fix(gradient): 0° = oben nach unten (User-Erwartung) statt CSS-Default
  • 0769784c2026-05-11feat(vd-cta): Telefonnummer in eigener Zeile mit Phone-Icon
  • 951b8dc52026-05-11refactor(vd-cta): Panel-Felder auf 1/2 Breite (kompakteres Layout)
  • 2d9cd49e2026-05-11fix(team): Mitarbeiter-Identifier via Vorname statt synced-slug
  • bccf99112026-05-11feat(vd-logos): Logo-Deckkraft via Panel-Slider konfigurierbar
  • 224a75162026-05-11fix(vd-logos): Grid-Gaps auf Mobile auf ~50% reduziert
  • 464cb1e52026-05-11fix(vd-logos): Grid-Gap-Stufen grosszuegiger + 'Riesig'-Option
  • 7f1a75f22026-05-11fix(vd-logos): Grid-Items shrink-to-content, Row-Gap optisch wirksam
  • b05c414a2026-05-11fix(vd-logos): max-width skaliert jetzt visuell mit (Hoehe + Item-Box gekoppelt)
  • aa6ff9122026-05-11fix(team): stabile Mitarbeiter-Verknuepfung via slug + Caption-Padding oben
  • d96c36ea2026-05-11fix(vd-team): Caption-Typografie wirkt jetzt + cols-Class-Sanitization
  • a7b6d8f62026-05-11fix(team-mitarbeiter): Dateien-Tab zeigt lokal + medien/bilder als 2 Sections
  • 5fec8df12026-05-11fix(team-mitarbeiter): Foto-Picker zeigt page.files + medien/bilder
  • 248b124e2026-05-11fix(vd-stellenangebote): Mobile-CTA 'Weiterlesen' statt Pfeil-Spalte
  • 5e0031262026-05-11fix(team-mitarbeiter): Foto-Picker auf normalen page-files-Picker zurueck
  • 16e988162026-05-11fix(linear-nav): Du-Anrede statt Sie
  • 3cc0df782026-05-11fix(grid): gap-riesig auf $vd-space-20 (80px) reduziert — 128px sprengte 12-Spalten
  • d5f3ce692026-05-11feat(vd-team): per-Zeile Caption-Groessen (Name/Position/Flavour)
  • b40e00672026-05-11feat(vd-logos): Grid-Layout-Variante + Marquee-Gap-Config + Cap auf 500px Desktop
  • ac3e76bd2026-05-11delegated: vd-logos Grid-Variante + Icon-Caps 500px + Marquee-Spacing + Team-Grid-Overlay-Sizes + Linear-Nav Du-Anrede + Karriere-Stellen-Mobile-CTA
  • 3b91616d2026-05-11fix(hero+parallax): min-height 150vh fuer Sticky-Travel (border-box)
  • f48510722026-05-11feat(gradient): Richtung als 15°-Slider + Invert-Toggle; fix(hero+parallax): vAlign relativ zum ersten Viewport
  • 4ba3c2a92026-05-11fix(hero): vAlign greift auch auf Section-flex-justify-content
  • 038155312026-05-11fix(hero + parallax): Content am Top statt mittig in 150vh
  • 07a36df82026-05-11fix(hero + parallax): Section auf 150vh wenn Pseudo-Parallax aktiv
  • 727b1bd62026-05-11fix(hero + parallax): __bg auf volle Section-Hoehe wenn Sticky-BG aktiv
  • 482869332026-05-11fix(hero bg): Wrapper-Divs auf width/height 100% - kein leerer Bereich oben/unten
  • df6ae08f2026-05-11fix(hero): bg-image immer 100vh, kein Stretch wenn Section laenger wird
  • 041a07502026-05-11fix(hero + nav): inner-width, mobile-padding, burger-color
  • 150349642026-05-11fix(nav + hero): -20px Nav-Offset + Hero-Inner ohne Seitenpadding
  • f35b7bad2026-05-11fix(layout): erstes Layout randabfallend bei invertiertem Top - kein schwarzer Balken mehr
  • 84a9bdc02026-05-11fix(layout + nav): viel zu klären
  • 94dc02582026-05-11fix(layout): halign steuert Container-Position, plus Toggle 'Schmaler Inhaltsbereich (1/10/1)'
  • 1b01e6a42026-05-11fix(nav): mehr Atemraum + Logo +15% + Text -10%
  • b36c345d2026-05-11delegated: Desktop-Header invertiert + Items +25% + Logo-Swap + transparente Top-Stage (wp-2026-05-11-nav-invertiert)
  • 3ee8a5aa2026-05-11delegated: Desktop-Header-Navigation: invertierte Variante (weiss auf dunkel) + Items +25% + Logo invertiert + transparente Top-Stage auf invertierten Layouts
  • 7fce93d32026-05-11fix(layout): halign-Klassen ueberschreiben Block-eigene align-Klassen
  • 708d3dba2026-05-11fix(qol): Horizontale Ausrichtung als eigenes Feld + Standort-Text als Heading-Pattern
  • bdaa565b2026-05-11report: release-report aktualisiert (20 Releases, 465 Commits)
  • cebd201a2026-05-11report-config: XAMPP-Eintrag aus tech_stack entfernt
  • ff6b29282026-05-11report: release-report aktualisiert (20 Releases, 465 Commits)
  • dda6ae692026-05-11report-config: stats_extra geleert (veraltete eigene-Bloecke / Seiten-fertig-Stats entfernt)
  • e5066aa52026-05-11delegated: 6 Editor-QOL-Items (wp-2026-05-11-editor-qol)
  • 1ebcd61b2026-05-11report: release-report aktualisiert (20 Releases, 465 Commits)
  • 85d847532026-05-11report: release-report aktualisiert (20 Releases, 465 Commits)
v20
Phase abgeschlossen am 11.05.2026
Mittelgroßer Release mit Architektur-Schritt bei Formularen: Form-Pages lassen sich aus dem Link-Field heraus als Lightbox öffnen (neues Protocol lightbox-form://uuid). Stellen-Landingpages mit Frontend-Inhalt befüllt, Karrier-o-Mat als Bewerbungs-Quiz angebunden. Neuer Custom Field-Type vd-link mit gefiltertem Page-Picker. Footer-Polish, Wissen-Hub als Blog umbenannt (inkl. URL-Pfad und RSS-Scope), Coming-Soon-Stub-Seiten zeigen eine Liste der bereits ausgearbeiteten Seiten. Logo-Größen, Video-Button-Stil und Button-Naming projektweit als zentrale Token.
v20: Form-Lightbox-Architektur + vd-link Custom Field + Stellen-Landingpages + Footer-Polish (8 WPs, ~87 Dateien): Form-Lightbox als Link-Field-Extension (lightbox-form://uuid Protocol, Auto-Detection statt Source-Toggle — Form-Pages im link-Field oeffnen implizit als Lightbox, konsistente Link-/Form-Provision in button, vd-cta, vd-hinweiskarte, vd-stellenangebote, Karrier-o-Mat als Bewerbungs-Quiz-Pfad angebunden). Stellen-Landingpages mit Frontend-Dev-Inhalt + Schnellkontakt-Flyin Doppel-Label-Fix + vd-video Hochformat-Provision (--portrait Modifier) + Spalten-Layouts + Self-Hosted-Video + Stats-Strip + Karrier-o-Mat-Strip + Kununu-Section-Refactor in Stellenangebot (36 Dateien). vd-link Custom Field-Type kamperdev/vd-link (6 Dateien — Formular als 7. Top-Level-Link-Type, Page-Picker auf Frontend-Templates beschraenkt, Site-Wrapper-Entry + Datei-Option entfernt). Footer-Polish + Coming-Soon-Stub mit Liste bestehender Seiten (27 Dateien — Wissen → Blog rename inkl. RSS-Scope auf /blog, Sitemap-HTML-Page entfernt, Impressum & AGB zu 'rechtliches' gemerged, Coming-Soon-Hierarchie, Nav-Group via Spacer-Column nach rechts mit column-gap $vd-space-16, Outer-Grid-Gap +32 zur Kontakt-Spalte). Logo-Groessen zentral + Video-Slot-Button-Stil + Button-Standard-Naming (9 Dateien). Logo-Leiste Cap-Erhoehung 300->400 Desktop + 260->280 Mobile + Help-Texte (3 Dateien). Hintergrund-Karte HQ-Marker V-Icon-Varianten dunkel/hell + HQ-Label entfernt (5 Dateien). Home-Polish: Hero-Heading-Punkt + Logo-Strip-Divider Charcoal (1 Datei).
Für Redakteure

Form-Lightbox als Link-Option: in jedem Link-Field (Buttons, vd-cta-Block, vd-hinweiskarte, vd-stellenangebote) kann eine Form-Page als Link-Ziel ausgewählt werden — der Klick öffnet das Formular als Lightbox-Overlay statt einer Seitennavigation. Die Auswahl funktioniert ohne Source-Toggle: wer eine Form-Page als Link-Ziel wählt, bekommt automatisch das Lightbox-Verhalten. Anwendungsfall: ein "Jetzt bewerben"-Button auf einer Stellen-Landingpage öffnet die Bewerbungs-Form als Lightbox, der Besucher verlässt die Seite nicht.

Neuer Custom Field-Type "vd-link" (Plugin kamperdev/vd-link): einheitliches Link-Field mit Formular als 7. Top-Level-Link-Typ neben URL, E-Mail, Telefon, Anker, Page, Datei. Der integrierte Page-Picker zeigt nur Frontend-Templates (keine Site-Wrapper, keine Datei-Option) — die Auswahlliste enthält nur Pages, die als Link-Ziel inhaltlich sinnvoll sind.

Stellen-Landingpages: die Unterseiten unter /karriere/stellen sind mit Frontend-Inhalt befüllt — Spalten-Layouts, Self-Hosted-Video, Stats-Strip (Kennzahlen-Block), Karrier-o-Mat-Strip, Kununu-Section. Der Karrier-o-Mat ist als Bewerbungs-Quiz-Pfad angebunden: Besucher können sich über den Quiz-Flow zur passenden Stellenangebot-Detailseite leiten lassen.

Wissen-Hub umbenannt: der Hub-Bereich heißt jetzt "Blog" statt "Wissen", URL-Pfad ist /blog, RSS-Feed-Scope ebenfalls auf /blog. Die bisherigen Artikel und Skeleton-Stubs liegen dort unverändert weiter.

Footer-Polish: Footer-Layout in zwei Iterationen verfeinert — Nav-Group rückt über eine Spacer-Column nach rechts, intra-Gruppen-Abstand reduziert, Außen-Grid-Abstand zur Kontakt-Spalte erhöht. Impressum und AGB zu einer Page "rechtliches" zusammengeführt. Sitemap-HTML-Page (Card-Grid aus v17) entfernt — die XML-Sitemap bleibt für Suchmaschinen, die HTML-Variante war zum Footer-Verzeichnis redundant. Coming-Soon-Stub-Seiten (noch nicht ausgearbeitete Pages) zeigen eine Liste der bereits fertigen Seiten als Orientierung.

Schnellkontakt-Flyin: Doppel-Label-Anzeige behoben — Label erscheint einmalig statt zweimal.

vd-video-Block: Hochformat-Provision per --portrait Modifier-Klasse — Hoch-Videos (z.B. Smartphone-Aufnahmen) werden ohne Verzerrung gerendert.

Logo-Pflege: Logo-Größen als zentrale CSS-Token (Wiederverwendung über Logo-Strip-Block, Footer-Logo, Über-uns-Logos). Video-Slot-Button-Stil-Optionen ergänzt, Button-Naming projektweit auf Standard-Bezeichner vereinheitlicht. Logo-Strip Max-Breite-Cap auf 400px (Desktop) und 280px (Mobile) angehoben, mit Help-Texten im Panel.

Hintergrund-Karte (vd-map-backdrop): HQ-Marker als V-Icon in dunkler und heller Variante (Theme-adaptiv); HQ-Text-Label entfernt — der Marker steht ohne Text-Bezeichnung im Karten-Hintergrund.

Home-Polish: Hero-Heading auf der Startseite endet mit Punkt; Logo-Strip-Divider im Charcoal-Farbton.

Für Besucher

Frontend-Änderungen für den Besucher: Auf den Stellen-Landingpages unter /karriere/stellen ist Inhalt zu sehen — pro Stellenangebot eine Detailseite mit Beschreibung, Spalten-Layouts, eingebettetem Self-Hosted-Video, Stats-Strip mit Kennzahlen, Karrier-o-Mat-Strip (Selbst-Test-Quiz) und Kununu-Section.

Jetzt-bewerben-Buttons und ähnliche Form-Verweise öffnen die Bewerbungs- bzw. Kontakt-Form als Lightbox-Overlay über der aktuellen Seite — der Besucher verlässt die Seite nicht, das Formular liegt über dem Inhalt.

Im Hauptmenü heißt der Bereich mit den Artikeln jetzt "Blog" statt "Wissen", erreichbar unter /blog.

Im Footer: Layout-Pflege — die Nav-Spalten und die Kontakt-Spalte sind in den Abständen neu austariert. Impressum und AGB sind zu einer Page "rechtliches" zusammengelegt. Seiten, die noch in Vorbereitung sind, zeigen statt eines leeren Inhalts eine Liste der bereits fertigen Seiten als Orientierung.

Schnellkontakt-Flyin (am Rand andockbares Kontakt-Element): Label-Anzeige einmalig.

Auf der Karriere-Seite: Karrier-o-Mat als Selbst-Test-Quiz angebunden, leitet zur passenden Stellenangebot-Detailseite.

Hintergrund-Karte: HQ-Marker als V-Icon in dunkler und heller Variante (passend zum jeweiligen Sektion-Theme); das HQ-Text-Label ist entfernt — der Marker steht ohne Beschriftung im Karten-Hintergrund.

Logo-Strip auf der Startseite: Logos können bis 400px breit (Desktop) bzw. 280px (Mobile) ausgegeben werden, mit Help-Text im Panel. Der Trenner zwischen Logo-Strip und folgender Sektion erscheint im Charcoal-Farbton. Hero-Heading auf der Startseite endet mit einem Punkt.

Hochkant-Videos im vd-video-Block werden über einen --portrait Modifier ohne Verzerrung gerendert (Smartphone-Aufnahmen behalten ihr Seitenverhältnis).

SEO & Performance

Form-Lightbox-Architektur: neues Protocol "lightbox-form://uuid" im Kirby-Link-Field als 7. Top-Level-Type. Auto-Detection statt explizitem Source-Toggle — wenn ein Link-Field eine Page mit Template "form" referenziert, wird beim Rendering ohne weitere Konfiguration der Lightbox-Trigger erzeugt. Konsistente Link-/Form-Provision in den Block-Types button, vd-cta, vd-hinweiskarte und vd-stellenangebote — alle nutzen dasselbe Link-Field und denselben Render-Helper. Refactor-Schritt von einer block-individuellen Form-Lightbox (vd-cta + Bewerbungs-Form als Block-eigene Komposition) auf eine Link-Field-Extension, die in jedem Block-Typ verfügbar ist.

vd-link Custom Field-Type (eigenes Plugin kamperdev/vd-link): einheitliches Link-Field mit sieben Top-Level-Typen (URL, E-Mail, Telefon, Anker, Page, Datei, Form). Page-Picker auf Frontend-Templates beschränkt (Filter über Template-Whitelist), Site-Wrapper-Entry und Datei-Option im Picker ausgeblendet. Ersetzt das Kirby-Standard-Link-Field projektweit.

Stellen-Landingpages: Page-Template "stellenangebot" mit Frontend-Inhalt befüllt — Spalten-Layouts über den Layout-Editor, Self-Hosted-Video-Block mit --portrait Modifier (Hochformat-Provision für vertikale Videos, aspect-ratio und object-fit explizit auf das Quell-Seitenverhältnis gesetzt, verhindert CSS-Letterboxing), Stats-Strip (Kennzahlen-Block), Karrier-o-Mat-Strip (Link auf das Bewerbungs-Quiz mit gefiltertem Quiz-Pfad pro Stellenangebot), Kununu-Section.

Wissen → Blog Rename: Page-Template und URL-Slug von "wissen" auf "blog" umgestellt, RSS-Feed-Scope-Filter auf den neuen Slug aktualisiert. Bestehende Wissen-Artikel-Pages migriert (Page-IDs erhalten, URL-Pfad geändert). Sitemap-HTML-Page entfernt (Card-Grid aus v17 — Funktion war redundant zum Footer-Verzeichnis nach Footer-Polish), XML-Sitemap bleibt für Crawler.

Footer-Coming-Soon: Stub-Page-Template "coming-soon" enthält eine Section, die per Kirby-Query die bereits ausgearbeiteten Pages im aktuellen Sub-Tree listet — dient als Orientierung für Besucher, die auf einer noch nicht befüllten Seite landen. Impressum und AGB zu einer Page "rechtliches" zusammengelegt. Footer-Layout: Nav-Group via Spacer-Column nach rechts gerückt, Nav-Group column-gap auf $vd-space-16 (64px), Outer-Grid-Gap +32px zur Kontakt-Spalte, intra-Gruppen-Gap -8px.

Layout-Token-Vereinheitlichung: Logo-Größen als zentrale CSS-Token statt block-individueller Größenangaben (Wiederverwendung im Logo-Strip-Block, Footer-Logo, Über-uns-Logos). Logo-Strip Max-Breite-Cap auf 400px (Desktop) und 280px (Mobile) angehoben, Help-Texte für die Panel-Felder ergänzt. Video-Slot-Button-Stil-Optionen ergänzt, Button-Naming projektweit auf Standard-Bezeichner vereinheitlicht.

Hintergrund-Karte (vd-map-backdrop): HQ-Marker als SVG-Icon-Komponente mit dunkler und heller Variante (Theme-adaptiv via mix-blend-mode-Cascade), bisheriges HQ-Text-Label entfernt — Marker steht ohne Text-Bezeichnung im Karten-Hintergrund.

Karrier-o-Mat-Anbindung: bestehender Quiz-Block (kamperdev/quiz oder Inhouse-Variante) als Bewerbungs-Quiz-Pfad konfiguriert — Quiz-Ergebnis leitet zur passenden Stellenangebot-Detailseite, Filter über Quiz-Pfad-Parameter im Page-Picker.

74 Commits in diesem Zyklus
  • 79f0ea822026-05-11delegated: Editor-QOL: Layout-Variante umbenennen + Hero-Centering auslagern + Video-Button-Swap + Listen-Checkmark als SVG + Kununu-Blocks WYSIWYG + Standort Fliesstext-Groessen + Stellenangebot-Tab-Icon
  • 5a4dcce02026-05-11delegated: Editor-QOL: Layout-Variante umbenennen + Hero-Centering auslagern + Video-Button-Swap + Listen-Checkmark als SVG + Kununu-Blocks WYSIWYG + Standort Fliesstext-Groessen
  • fb5fc71f2026-05-11fix(vd-link): Site-Wrapper-Entry aus dem Page-Picker entfernen
  • 9ccea2592026-05-11fix(vd-link): Page-Picker funktioniert wieder
  • d87603bc2026-05-11feat(vd-link plugin): Page-Picker auf Frontend-Templates beschraenken + Datei-Option raus
  • 161b188b2026-05-11feat(vd-link plugin): Formular als 7. Top-Level-Link-Type (wp-2026-05-11-vd-link-field)
  • ccdd9adf2026-05-11delegated: Custom Field-Type vd-link: Formular als Top-Level-Link-Type + gefilterter Page-Picker
  • 449a30c22026-05-11refactor(blocks): Auto-Detection statt Source-Toggle — Form-Pages im link-Field oeffnen implizit Lightbox
  • c5ce89242026-05-11feat(blocks): konsistente Link-/Form-Provision in button, vd-cta, vd-hinweiskarte, vd-stellenangebote
  • ba63703d2026-05-11feat(helpers + base): Form-Lightbox als Link-Field-Extension (wp-2026-05-11-lightbox-form-link-extension)
  • e42391fb2026-05-11delegated: Form-Lightbox als Link-Field-Extension (lightbox-form://uuid)
  • 63df4d722026-05-11fidelity(stellenangebot): Karrier-o-Mat-Strip + Kununu-Section refactor
  • 360a63a52026-05-11feat(vd-cta + form-lightbox): Block-eigene Form-Lightbox + Bewerbungs-Form
  • 9dec62142026-05-11feat(karriere): Karrier-o-Mat als Bewerbungs-Quiz-Pfad anbinden
  • b5fb31582026-05-11feat(vd-video): Hochformat-Provision (--portrait Modifier)
  • 2ffd53162026-05-11delegated: Frontend-Dev Iter2 Spalten-Layouts + Self-Hosted-Video + Stats-Strip
  • 2997e75f2026-05-11delegated: Flyin-Doppellabel + Stellen-Landingpages (wp-2026-05-11-flyin-stellen-landingpages)
  • 39fb7fd72026-05-11delegated: Schnellkontakt-Flyin Doppel-Label-Fix + Stellen-Landingpages (Frontend-Dev mit Inhalt)
  • a01de6862026-05-11fidelity(footer): Nav-Group -8px intra, Outer-Grid-Gap +32 zur Kontakt-Spalte
  • cce746c92026-05-11delegated: Wissen->Blog rename + Sitemap-HTML-Page entfernt + RSS-Scope auf Blog (wp-2026-05-11-footer-stub-polish)
  • 0a4dc1232026-05-11fidelity(footer): Nav-Group column-gap auf $vd-space-16 (64px)
  • 2c0851fb2026-05-11fidelity(footer): Nav-Group via Spacer-Column nach rechts ruecken
  • c02f12a42026-05-11delegated: Footer Iter2 + Impressum&AGB-Merge + Coming-Soon-Hierarchie
  • 7ec8e5482026-05-11delegated: Footer-Polish + Coming-Soon-Seitenliste (wp-2026-05-11-footer-stub-polish)
  • 22dd88cd2026-05-11delegated: Footer-Polish + Coming-Soon-Stub bekommt Liste bestehender Seiten
  • e35830222026-05-10content(home): Hero-Heading mit Punkt + Logo-Strip-Divider Charcoal
  • e8143de42026-05-10delegated: Home-Polish: Hero-Heading-Punkt + Logo-Strip-Divider Charcoal
  • 1d8ff7892026-05-10feat(vd-logos): Cap fuer Max-Breite auf 400/280 angehoben + Help-Texte
  • fb65ef172026-05-10delegated: Logo-Leiste: Max-Breite-Cap 300→400 (Desktop), 260→280 (Mobile) + Help-Texte
  • 633787ea2026-05-10feat: Logo-Groessen zentral + Video-Slot-Stiloptionen + Button-Naming
  • daacf77d2026-05-10delegated: Logo-Groessen zentral + Video-Slot-Button-Stil + Button-Standard-Naming
  • 36e3ed412026-05-10delegated: Hintergrund-Karte: HQ-Marker — V-Icon-Varianten + Label-Removal
  • d239159a2026-05-10refactor(map-backdrop): HQ-Label komplett entfernt
  • 3502e3032026-05-10delegated: Hintergrund-Karte: HQ-Marker — V-Icon-Varianten + Label-Removal
  • 2a4427612026-05-10feat(map-backdrop): HQ-V dunkel/hell + HQ-Label-Pill
  • 7bbdcb7a2026-05-10delegated: Hintergrund-Karte: HQ-Marker — V-Icon-Varianten + HQ-Label-Fix
  • 0f9336352026-05-08feat(vd-video-button-slot): Groessen-Wahl wie regulaere Buttons
  • e74154a92026-05-08delegated: vd-video-button-slot: Groessen-Wahl wie regulaere Buttons
  • 486806912026-05-08delegated: 5er-Pack: Button-Groessen / Display-XL / Logo-Px / Mitarbeiter-Sort / Schnellkontakt-Lightbox
  • 7f6e9d792026-05-08feat(five-pack): Buttons 3 Groessen, Display-XL, Logo-px-Override, Mitarbeiter-Sort, Schnellkontakt-Lightbox
  • 482746642026-05-08delegated: 5er-Pack: Button-Groessen / Display-XL / Logo-Px / Mitarbeiter-Sort / Schnellkontakt-Lightbox
  • 3b9c9ed82026-05-08feat(vd-team-teaser): Foto-Field auf vd-files-pools
  • 1f9911bf2026-05-08delegated: vd-team-teaser: Pool-Picker fuer Foto-Field
  • 74f081782026-05-08fix(vd-team-teaser): Block 1:1 zurueckholen (war versehentlich entfernt)
  • 766f30aa2026-05-08delegated: vd-team-teaser Block gezielt wiederherstellen (aus c349ce9~1)
  • 5062d6a52026-05-08content: Home Hero-Video + Karriere-Portrait-Cleanup (operator)
  • cc41c6fa2026-05-08feat(medien-bibliothek): Upload-Feedback (Toolbar-Counter + Highlight)
  • de2e889b2026-05-08fix(medien-bibliothek): Upload via fetch + zentraler File-Input
  • edbd01312026-05-08fix(medien-bibliothek): Upload via Plugin-Route statt /api/pages
  • a0957b492026-05-08fix(medien-bibliothek): Pool-Picker Filter (Vue-3-Reactivity) + Direkt-Upload
  • b64f7f672026-05-08delegated: vd-files-pools: Filter-Bug fixen + Upload-Funktion im Dialog
  • aced2db42026-05-08feat(vd-kununu-mini): Zitat groesser
  • f5cf420e2026-05-08delegated: vd-kununu-mini: Zitat-Typo groesser
  • 00b6daac2026-05-08feat(vd-kununu-mini): Desktop 2-Spalten-Layout — Karte gut ausgefuellt
  • 3a610f4f2026-05-08delegated: vd-kununu-mini Desktop: Karte besser ausnutzen (2-Spalten-Layout)
  • 14211f2e2026-05-08feat(vd-kununu): direkte Hoehe + Verschiebung in px (mobile/desktop)
  • ace15b212026-05-08delegated: vd-kununu Iter 4: direkte Hoehe + Verschiebung in px (mobile/desktop)
  • 04fbb9bf2026-05-08feat(vd-kununu): Bildgroesse + Verschiebung links/oben pro Block-Instanz
  • a550d8c82026-05-08delegated: vd-kununu Iter 3: Bildgroesse + Verschiebung links/oben pro Block-Instanz
  • 63c5cc182026-05-08refactor(vd-kununu-mini): Foto komplett raus, Card sitzt natuerlich
  • d74562ae2026-05-08feat(vd-kununu): Foto schmaler + Bildposition pro Block-Instanz
  • aa90c7742026-05-08delegated: vd-kununu Iter 2: Foto schmaler + Panel-Bildposition, vd-kununu-mini ohne Foto
  • fd643ae62026-05-08feat(vd-kununu): Lizenz-Hygiene — Siegel + Top Company raus, Team-Foto rein
  • 09d0eecd2026-05-08chore(medien): Team-Foto Maurice + Hendrick in Bilder-Bibliothek
  • 6dad08df2026-05-08delegated: vd-kununu/-mini: Siegel + 'Top Company' raus, Team-Foto rein (Lizenz-Hygiene)
  • 959f941f2026-05-08delegated: Bild-Auslieferung Audit — komponentenweite Verifikation (srcset/sizes/Format/Bytes)
  • c81f49022026-05-08feat(image-pipeline): qualityBoost-Argument fuer Hero-Backdrops (+1 Stage)
  • 68b51ae22026-05-08chore(tools): inspect.mjs Pages-Liste fuer alle Hauptseiten
  • 688aaab32026-05-08feat(vd-logos): aspect-ratio-basierte sizes pro Logo
  • 964c3feb2026-05-08feat(image-pipeline): case-preview +800w, editorial-photo +1200w/+2000w
  • cb1192f12026-05-08feat(vd-video): Poster auf picture-Pipeline (AVIF/WebP/sizes)
  • 1fa8b99b2026-05-08delegated: Bild-Auslieferung Audit — komponentenweite Verifikation (srcset/sizes/Format/Bytes)
  • 259a21172026-05-08report: release-report aktualisiert (19 Releases, 391 Commits)
  • 72cd0bbb2026-05-08report: release-report aktualisiert (19 Releases, 391 Commits)
v19
Phase abgeschlossen am 08.05.2026
Kürzerer Release nach drei großen Wellen: Polish-Batch (Linear-Nav-Icon, Pipe-Mark im Zitat-Block, vd-cta-Refactor, Mitarbeiter-Picker auch in CTA-Block und Team-Grid, vd-liste-Cleanup, alte Site-Page aus dem Page-Tree entfernt) plus Operator-Finetuning der Kontakt-Seite (seitenweite Lightbox, Pool-Picker für Hintergründe aus den v18-Bereichen der Medien-Bibliothek, diverse Sammel-Korrekturen).
v19: Polish-Batch + Operator-Finetuning (2 WPs, ~66 Dateien): Polish-Batch (36 Dateien — Linear-Nav-Icon ergaenzt, Pipe-Mark `||` als Writer-Mark im vd-zitat-Block, vd-cta-Refactor mit einheitlicher Feldstruktur zum vd-team-Block, Mitarbeiter-Picker (Pages-Field auf die zentrale Mitarbeiter-Sammlung) jetzt auch in vd-cta und Team-Grid verfuegbar, vd-liste-Cleanup, alte Top-Level-Page 'site' aus dem Page-Tree entfernt). Operator-Finetuning (30 Dateien, Sammel-WP on-the-fly — Kontakt-Seite mit seitenweiter Lightbox auf <picture>-Elementen + Pool-Picker fuer Hintergruende aus den v18-Bereichen 'Bilder' und 'Branding' der Medien-Bibliothek, plus diverse kleine Korrekturen waehrend des Operator-Durchgangs).
Für Redakteure

Im vd-linear-nav-Block (Weiter/Zurück am Seitenende, eingeführt mit v18) gibt es jetzt ein Pfeil-Icon vor den Labels — Richtung im Block-Header optisch erkennbar, ohne den Label-Text zu lesen.

Im Zitat-Block (vd-zitat) ein neuer Writer-Mark mit Pipe-Syntax `||...||` — der Text zwischen den beiden doppelten Pipe-Zeichen wird als hervorgehobener Akzent im Zitat-Body gerendert (eine Art Pull-Quote-Ausschnitt innerhalb eines Zitats, im Editor per Mark-Auswahl gesetzt).

CTA-Block (vd-cta) refaktoriert auf einheitliche Feldstruktur mit dem vd-team-Block — der Mitarbeiter-Picker (Auswahl aus der zentralen Mitarbeiter-Sammlung) ist jetzt auch im CTA-Block und im Team-Grid verfügbar. Mitarbeiter werden zentral gepflegt und können in mehreren Block-Typen referenziert werden — eine Stamm-Daten-Quelle für Mitarbeiter-Referenzen über alle Block-Typen.

vd-liste-Block strukturell vereinfacht (Felder zusammengefasst, redundante Sub-Felder entfernt) — Bestandsdaten unverändert kompatibel, keine Verhaltensänderung im Frontend. Die alte Top-Level-Page "site" wurde aus dem Page-Tree entfernt; sie war ein Überbleibsel aus der frühen Architektur und seit Längerem nicht mehr referenziert.

Kontakt-Seite (Operator-Finetuning, Sammel-WP): seitenweite Lightbox für Bild-Klicks aktiviert (jedes Bild auf der Kontakt-Seite öffnet bei Klick eine Vollbild-Ansicht), Pool-Picker für Hintergrund-Bilder — Auswahl aus den v18-Bereichen "Bilder" und "Branding" der zentralen Medien-Bibliothek statt freier File-Picker. Dazu eine Reihe kleiner Korrekturen, die beim Operator-Durchgang auf den überarbeiteten Seiten aufgefallen sind.

Für Besucher

Drei Änderungen im öffentlichen Frontend: Auf der Kontakt-Seite öffnen sich Bilder per Klick als Lightbox in der Vollbild-Ansicht. Im Weiter/Zurück-Block am Seitenende erscheint ein Pfeil-Icon vor den Labels (Pfeil links für "zurück", Pfeil rechts für "weiter"). In Zitat-Blöcken können Akzent-Stellen mit der Pipe-Syntax `||...||` markiert werden — der eingerahmte Text erscheint als hervorgehobene Passage innerhalb des Zitats.

Übrige Änderungen betreffen die Editor-Bedienung im Panel und sind im Frontend nicht direkt zu erkennen.

SEO & Performance

vd-cta-Refactor: einheitliche Feld-Struktur mit dem vd-team-Block — der Mitarbeiter-Picker (Pages-Field auf die zentrale Mitarbeiter-Sammlung) wird jetzt von vd-cta, vd-team und Team-Grid genutzt. Picker-Implementierung als gemeinsamer Field-Snippet, eine Stamm-Daten-Quelle für alle Mitarbeiter-Referenzen über die Block-Typen.

Pipe-Mark im Writer (`||`-Syntax): neuer Custom-Mark im writer-marks-Plugin, registriert für den vd-zitat-Block. Mark-Token wird beim Render in ein <em class="akzent"> mit Block-spezifischem Styling überführt.

vd-liste-Cleanup: Block strukturell vereinfacht (Felder zusammengefasst, redundante Sub-Felder entfernt). Bestandsdaten unverändert kompatibel — die alten Sub-Felder werden beim Rendern als zusammengefasstes Feld interpretiert, kein Migrations-Hook nötig.

Site-Page-Entfernung: die alte Top-Level-Page "site" aus dem Page-Tree gelöscht. Inhalt war seit der Refactor-Phase nicht mehr referenziert; Page-Existenz selbst hatte keine Routen-Auswirkung. Page-Tree-Listing im Panel entsprechend reduziert.

Kontakt-Lightbox: Lightbox-Snippet seitenweit aktiviert (data-lightbox auf <picture>-Elementen im Inhaltsbereich der Kontakt-Seite). Pool-Picker im Kontakt-Page-Blueprint nutzt die in v18 eingeführten Bereiche der Medien-Bibliothek (Bilder + Branding) statt eines freien File-Pickers — erste Verwendung der Pool-Picker-Variante außerhalb der initial umgestellten Felder, dient als Vorlage für weitere Page-Blueprints.

Linear-Nav-Icon: SVG-Pfeil in den Block-Snippet eingebaut, Position als CSS-pseudo-Element vor dem Label, Richtung über data-direction-Attribut gesteuert.

Operator-Finetuning als Sammel-WP on-the-fly: keine eigene Architektur-Entscheidung, eingegangen sind diverse kleine Korrekturen, die beim manuellen Durchgang auf den überarbeiteten Seiten aufgefallen sind (Layout-Spacing, Bild-Positionen, Text-Korrekturen).

5 Commits in diesem Zyklus
  • 1fb3773e2026-05-08feat(kontakt): seitenweite Lightbox + Pool-Picker fuer Hintergruende
  • 3b4de0782026-05-08delegated: Operator-Finetuning diverser Seiten (Sammel-WP, on-the-fly)
  • c767c7472026-05-08feat(polish): Linear-Nav-Icon + Mitarbeiter-Picker + diverse Items
  • 9392dd5f2026-05-08report: release-report aktualisiert (18 Releases, 386 Commits)
  • a2254dd22026-05-08report: release-report aktualisiert (18 Releases, 386 Commits)
v18
Phase abgeschlossen am 08.05.2026
Phase mit Schwerpunkt Editor-Bedienkomfort: Zentrale Medien-Bibliothek in drei Phasen — Page-Tree /medien mit Bereichen 'Bilder/Branding/Dokumente', Move-Helper-Plugin für Datei-Verschiebung zwischen Page und zentralem Pool, Files-Picker mit kollabierbaren Pool-Bereichen. Block-Pflege mit Aufräum-Pass (28 Dateien entfernt) und Icon-Audit-Nachzug. Neue Lineare Navigation am Seitenende (Weiter/Zurück-Block, drei Modi pro Page). Field-Picker als Writer-Mark im Forms-Plugin für Mail-Templates. Animations-Skala umgestellt mit automatischer Migration bestehender Auswahlen.
v18: Redakteurs-QOL — Zentrale Medien-Bibliothek + Block-Pflege + Lineare Navigation + Forms-Field-Mark (7 WPs, ~240 Dateien): Zentrale Medien-Bibliothek in drei Phasen (126 Dateien) — Phase A Boardmittel (57 Dateien — medien-Page-Tree mit Bereichen 'Bilder/Branding/Dokumente', File-Felder pageweit umgestellt, Architektur-Discovery Boardmittel vs. Plugin), Phase B Move-Helper-Plugin (27 Dateien — Datei-Verschiebung von Page nach zentral und zurueck als Panel-Action, vd-galerie Mosaic-Aufraeumen), Picker-Pools (42 Dateien — Files-Picker mit kollabierbaren Bereichen 'Auf dieser Seite / Bilder / Branding / Dokumente', Move-Anwendung integriert). Block-Pflege & Aufraeumen (53 Dateien, 28 geloescht — Entfernungen + Refactors + Sample-Fixes fuer Styleguide-Page) plus Icon-Audit-Nachzug (8 Dateien — 8 panel-invalide Block-Icons auf Kirby-Standards gemappt, vorher kein Icon im Block-Picker). Lineare Navigation am Seitenende (28 Dateien gesamt mit Iterationen — vd-linear-nav Block, drei Modi auto/manuell/aus pro Page mit Default 'auto', auto-Modus bestimmt Vorgaenger/Nachfolger ueber Page-Sortierung in gleicher Sub-Tree-Ebene, Theme aus letzter Sektion uebernommen, border-top + pair-divider, Mobile-Schliff: kompakter, zentriert auf Mittelachse, Label zentriert, vd-crosslinks aus Ueber-uns raus). Forms-Field-Mark (12 Dateien — kamperdev/forms Field-Picker als Writer-Mark in Mail-Templates statt freier {Feld}-Text-Token-Substitution, umbenannte Felder schlagen jetzt mit Validierungsfehler im Panel an). Animation-Werte umgestellt (10 Dateien — Skala 600/900/1400/2000/2800ms, Migration alter Auswahlen ueber Block-Loader-Hook beim naechsten Page-Save).
Für Redakteure

Zentrale Medien-Bibliothek unter /medien angelegt, gegliedert in vier Bereiche: "Auf dieser Seite" (Datei-Anhänge der aktuellen Page), "Bilder" (allgemeiner Bild-Pool), "Branding" (Logos, Vorlagen) und "Dokumente" (PDF, Vertrags-Vorlagen). Im Files-Picker werden diese Bereiche als kollabierbare Pools angezeigt — beim Klick auf "Datei wählen" sind die vier Sektionen direkt erreichbar, gezielt aufklappbar statt durch eine flache Liste scrollen.

Datei-Verschieben zwischen Page und zentralem Pool: ein neuer Move-Button im File-Detail-Panel verschiebt eine Datei von einer Page in den zentralen Pool oder umgekehrt — Page-Referenzen bleiben durch fixe UUIDs bestehen. Damit lassen sich versehentlich an einer Page hochgeladene Bilder nachträglich in "Bilder" oder "Branding" überführen.

Lineare Navigation am Seitenende: ein optionaler Weiter/Zurück-Block am unteren Rand jeder Page mit drei Modi pro Seite — "auto" verlinkt auf die nachfolgende und vorhergehende Page in der Sortierreihenfolge des Sub-Tree, "manuell" nimmt zwei vom Redakteur gepflegte Page-Referenzen, "aus" blendet den Block aus. Default ist "auto". Der Block übernimmt die Hintergrundfarbe der letzten Sektion auf der Page; Mobile-Layout mit kompakteren Padding-Werten und auf der Mittelachse zentrierten Labels.

Block-Pflege: 28 nicht mehr genutzte Dateien entfernt (Sample-YAMLs für inzwischen abgelöste Block-Typen, alte Helper-Snippets, Legacy-SCSS), Refactors auf einheitliche Block-Strukturen, Sample-Fixes für die Styleguide-Page. 8 Block-Icons im Panel waren auf Icon-Namen referenziert, die Kirby nicht kennt — auf Kirby-Standards gemappt, im Block-Picker erscheint jetzt das Icon statt nur des Text-Namens.

Forms-Plugin (kamperdev/forms): in Mail-Templates können Formularfelder über einen Field-Picker als Mark im Writer eingefügt werden. Vorher mussten Feldnamen als {Feld}-Text in den Mail-Body getippt werden — jetzt wählt man das Feld aus einer Liste, der Mark erscheint inline und wird beim Versand mit dem Feld-Inhalt ersetzt. Umbenennt jemand ein Formularfeld, schlägt der Mark mit Validierungsfehler im Panel an.

Animations-Skala: Auswahl-Werte für Animations-Dauer im Block-Panel umgestellt auf 600/900/1400/2000/2800 ms. Bestehende Auswahlen alter Werte werden beim nächsten Page-Save automatisch auf den nächstgelegenen neuen Wert migriert — keine manuelle Anpassung in vorhandenen Layouts nötig.

Für Besucher

Im öffentlichen Frontend zwei direkt erfahrbare Änderungen: Am Ende langer Inhalts-Seiten erscheint ein Weiter/Zurück-Block mit Verweis auf die nachfolgende und vorhergehende Page in der Sortierreihenfolge — auf Über-uns sind die alten manuellen Querverweise aus dem Inhalt entfernt, die Navigation am Seitenende übernimmt diese Funktion. Der Block übernimmt die Hintergrundfarbe der letzten Sektion auf der Page; Mobile-Layout zentriert auf der Mittelachse mit kompakteren Padding-Werten.

Animations-Werte: bei animierten Block-Inhalten (Hero-Loop-Video, Fade-In von Storytelling-Sektionen) sind die Übergangs-Zeiten neu (Skala von 600 ms bis 2800 ms statt vorher engerer Schritte), Migration alter Auswahlen erfolgt automatisch.

Übrige Änderungen betreffen die Editor-Bedienung im Panel und sind im Frontend nicht direkt zu erkennen.

SEO & Performance

Medien-Bibliothek-Architektur — Boardmittel-Variante statt Plugin: /medien als Top-Level-Page-Tree mit drei Sub-Pages "bilder", "branding", "dokumente" plus dynamischer Sektion "auf-dieser-seite" (per Page-Kontext gefiltert). File-Felder im Panel zeigen pro Bereich eine collapsible Section. Architektur-Discovery hat die Boardmittel-Variante gegenüber einer Plugin-Lösung gewählt — weniger Custom-Code, alle File-Mechaniken bleiben Kirby-nativ (UUIDs, ALT-Texte, Page-Referenzen).

Move-Helper-Plugin: ein eigenes Panel-Plugin mit Action-Button im File-Detail. Die Action verschiebt eine Datei zwischen Page und zentralem Pool, Page-Referenzen über UUIDs bleiben stabil, Datei-Hash bleibt gleich, Asset-Cache muss nicht invalidiert werden.

Block-Pflege: 28 Dateien entfernt (Sample-YAMLs für gelöschte Block-Typen, alte Helper-Snippets, Legacy-SCSS), Block-Picker-Liste damit reduziert. Icon-Audit-Nachzug: 8 Block-Definitionen referenzierten Icon-Namen, die in Kirbys Icon-Set nicht enthalten sind — gemappt auf Kirby-Standards (Block-Picker zeigte vorher für diese Blöcke kein Icon).

Lineare Navigation: vd-linear-nav als globaler Page-Footer-Block mit drei Modi (auto/manuell/aus). Im auto-Modus bestimmt der Algorithmus die Vorgänger- und Nachfolger-Page über die Page-Sortierung in der gleichen Sub-Tree-Ebene. vd-crosslinks (Block für manuelle inhaltliche Querverweise im Body) wurde nicht abgelöst — beide Blöcke koexistieren, vd-crosslinks für inhaltlich kuratierte Querverweise im Inhaltsteil, vd-linear-nav für reihenfolgen-basierte Navigation am Seitenende.

Forms-Plugin (kamperdev/forms): Field-Picker als Writer-Mark statt freier Text-Token-Substitution. Vorher: {Feldname}-Token im Mail-Body wurden bei Versand per String-Replace ersetzt — Tippfehler im Token oder umbenannte Felder führten zu nicht ersetzten Platzhaltern in der versendeten Mail. Jetzt: Mark-Element im Writer mit dem Feld als referenziertem Datentyp; bei Versand wird der Mark-Inhalt typsicher aufgelöst, umbenannte Felder schlagen mit Validierungsfehler im Panel an.

Animations-Skala: Werte-Migration über Hook in den Block-Definition-Loader — bestehende Layouts mit alten Werten werden beim ersten Page-Save auf den nächstgelegenen neuen Wert (600/900/1400/2000/2800ms) gemappt.

25 Commits in diesem Zyklus
  • ec5d311d2026-05-08delegated: Polish-Batch — Linear-Nav, ||-Mark in Zitat, CTA-Refactor, Mitarbeiter-Picker (CTA + Team-Grid), Listen-Cleanup, Site-Page weg
  • da5e04f42026-05-08feat(medien): Pool-Picker mit kollabierbaren Bereichen + Move-Anwendung
  • f2bce1af2026-05-08delegated: Files-Picker mit Pool-Bereichen (Auf dieser Seite / Bilder / Branding / Dokumente — collapsible)
  • b7766c372026-05-08feat(medien): Phase B Move-Helper-Plugin + vd-galerie Mosaic-Aufraeumen
  • a5952c4d2026-05-08delegated: Zentrale Medien-Bibliothek Phase B — Move-Helper Plugin (von Page nach zentral)
  • dd90fcb92026-05-08feat(medien): zentrale Medien-Bibliothek Phase A (Boardmittel)
  • 3ac9059e2026-05-08delegated: Zentrale Medien-Bibliothek Phase A (Boardmittel) — medien-Page-Tree, Bereiche, File-Felder umstellen
  • 9827e9d12026-05-08delegated: Zentrale Medien-Bibliothek — Architektur-Discovery (Boardmittel vs. Plugin, Risiken)
  • 8adae9512026-05-08feat(anim): Animations-Skala umstellen (600/900/1400/2000/2800ms)
  • 75ad97592026-05-08delegated: Animation-Werte umstellen (600/900/1400/2000/2800ms) + Migration alter Auswahlen
  • 611bd1ed2026-05-08feat(forms): Field-Picker Writer-Mark fuer Mail-Templates (formField)
  • 4683d8112026-05-08delegated: kamperdev/forms — Field-Picker Writer-Mark fuer Mail-Templates (statt {Feld}-Text)
  • 8258be992026-05-07fix(linear-nav): label mobile zentriert + ueber-uns vd-crosslinks raus
  • a5be1aa82026-05-07fix(linear-nav): mobile zentriert auf mittelachse
  • 08979b8c2026-05-07fix(linear-nav): mobile kompakter — weniger padding, kleinere title, enger gap
  • d63943e22026-05-07fix(linear-nav): subtile trennung — border-top + pair-divider
  • d4be1cda2026-05-07fix(linear-nav): theme aus letztem layout uebernehmen, box-optik raus
  • dd1a05b22026-05-07fix(linear-nav): Default-Mode auf auto, nicht aus
  • 34ae724e2026-05-07draft: linear-nav am seitenende — auto/manuell/aus pro page
  • c569039e2026-05-07delegated: Lineare Navigation am Seitenende (Weiter/Zurueck)
  • 43fcd3b02026-05-07draft: icon-audit nachzug — 8 panel-invalide auf kirby-standards gemappt
  • c349ce942026-05-07draft: block-pflege — entfernungen, refactors, sample-fixes, icon-audit
  • 56176b392026-05-07delegated: Block-Pflege & Aufraeumen
  • aa8c12eb2026-05-07report: release-report aktualisiert (17 Releases, 361 Commits)
  • e431ad312026-05-07report: release-report aktualisiert (17 Releases, 361 Commits)
v17
Phase abgeschlossen am 07.05.2026
Phase mit drei Schwerpunkten: Seitenaufbau Phase 1 (Hub-Seiten /loesungen, /ergebnisse, /wissen panel-seitig als Kategorieseiten angelegt — Unterseiten überwiegend als Skeleton-Stubs, je ein ausgearbeiteter Beispiel-Eintrag pro Hub), Über-uns wird Team-Seite mit dynamischem Team-Block und zentraler Mitarbeiterverwaltung, SEO-Infrastruktur (Sitemap-XML + Sitemap-HTML + Image-Sitemap + RSS-Feed + robots.txt + canonical + OpenGraph + Twitter-Cards). Zwei neue Trust-Badge-Block-Typen für Kununu Top Company 2026. 14 Imagebilder neu importiert.
v17: Seitenaufbau Phase 1 + Team-Block + Trust-Badges + SEO + Material (10 WPs, ~310 Dateien): vd-team-Block dynamisch mit zentraler Mitarbeiterverwaltung (107 Dateien unter wp-2026-05-06-010-team-block-final — Ueber-uns wird Team-Seite, Iterationen V1-V5 sammelabgenommen, randloses Mosaic mit mix-blend-mode hard-light, konfigurierbares Hover-Overlay analog Layout-Hintergrund, Varianten klassisch/komplex togglebar, Mobile Tap statt persistent). vd-kununu + vd-kununu-mini Trust-Badge-Bloecke (29 Dateien, Top Company 2026 — Architektur Option B als eigene Bloecke parallel zu vd-bewertungen, siehe D152, Card-Aesthetik an _vd-bewertungen.scss + _vd-hinweiskarte.scss angelehnt ohne Mixin-Abstraktion). SEO-Pass (30 Dateien — Sitemap XML + HTML-Card-Grid + Image-Sitemap + RSS-Feed + robots.txt + canonical + OpenGraph + Twitter-Cards + noindex-Symmetrie meta robots vs. X-Robots-Tag + Test-Bereich). 23 Wegwerf-Screenshot-Skripte aus tools/ entfernt + Nav-Team-Eintrag auf Ueber-uns korrigiert. Seitenaufbau Phase 1: Loesungen-Hub /loesungen/ (3 Dateien — Hero + Highlights + Verzeichnis + Pain-Points + Trust + CTA), Ergebnisse-Hub mit BUERO VALK Case + 4 Skeleton-Cases (9 Dateien), Wissen-Hub mit Copilot-Artikel + 5 Skeleton-Artikeln (19 Dateien), Ueber-uns Revision (9 Dateien — neue H1, Geschichte 2001/2009, Werte ueberarbeitet, Trust-Strip, GF-Block, Kunden-CTA + Karriere-Hinweis), Nav-Hub-Links (12 Dateien — MegaNav-Top-Pill 'Alle Loesungen ansehen', /faq raus, Sekundaer auf Ergebnisse + Wissen, Case-Box-Link auf BUERO VALK-Detail mit Fallback). Hygiene-Pass (11 Dateien — Encoding-Fix flaechig fuer Transliterations-Reste + Trust-Block-Reuse aus Home in Ueber-uns + Karriere). Material-Import (39 Dateien — 14 Imagebilder aus Auswahl-Pool: Awareness-Schilder, GF-Doppel-Portrait, Office-Detail, Meeting, Drohne, Aktivitaet — fixe UUIDs + ALT-Texte + Focus-Override). Hands-on Feinschliff (19 Dateien, Operator-gefuehrt, Batch-Methodik abgebrochen — Ueber-uns Hero, Nav active-state, vd-zitat-Pullquote-Variante, Kennzahlen-Headline ausgegliedert). Stand: Loesungen-Hub + Ergebnisse-Hub + Wissen-Hub panel-seitig als Kategorieseiten angelegt; Unterseiten unter Ergebnisse + Wissen ueberwiegend als Skeleton-Stubs (1 vollstaendig ausgearbeiteter Beispiel-Eintrag je Hub), Loesungs-Detailseiten panel-seitig noch nicht angelegt.
Für Redakteure

Drei neue Kategorieseiten panel-seitig angelegt: /loesungen, /ergebnisse und /wissen — jeweils Hub-Seite plus Page-Blueprints für die Detail-Templates (Lösungs-Detail, Case-Study, Wissen-Artikel). Beispiel-Inhalte je Hub vollständig ausgearbeitet: BÜRO VALK Case unter /ergebnisse, Copilot-Artikel unter /wissen. Übrige Unterseiten als Skeleton-Stubs angelegt — 4 Skeleton-Cases unter Ergebnissen, 5 Skeleton-Artikel unter Wissen. Die Detailseiten unter /loesungen sind panel-seitig noch nicht angelegt; die strukturelle Vorbereitung (Hub mit Verzeichnis, Pain-Points, Trust, CTA) steht. Befüllung der Skeleton-Stubs läuft als nächste Phase.

Über-uns ist getrennt von Team: Über-uns als eigenständige Seite enthält Geschichte (2001/2009), überarbeitete Werte, Trust-Strip mit Kennzahlen, Geschäftsführungs-Block, CTA zu Kunden plus Karriere-Hinweis. Team als eigene Seite listet die Mitarbeiter — Mitarbeiter werden zentral als eigene Page-Sammlung gepflegt (Foto, Name, Rolle, Profil-Text, optional Sozial-Profile); der vd-team-Block referenziert sie und kann pro Sektion gefiltert werden. Block-Varianten "klassisch" und "komplex" per Toggle, Mosaic-Layout mit Foto-Effekt durch farbliche Überblendung mit dem Sektion-Hintergrund.

Zwei neue Block-Typen für Trust-Anzeigen: vd-kununu (Top Company 2026 als ausführliches Trust-Badge mit Score-Stats und Zitaten plus CTA) und vd-kununu-mini (kompakte Variante). Beide auf Karriere- und Team-Seite einsetzbar.

Material-Pool: 14 Imagebilder neu aufgenommen (Awareness-Schilder, Geschäftsführungs-Doppel-Portrait, Office-Detail, Meeting, Drohne, Aktivität) — alle mit ALT-Texten und Fokus-Override gepflegt; im Image-Picker direkt verfügbar.

MegaNav: Pille "Alle Lösungen ansehen" oben am Menü ohne Aufklappen erreichbar, /faq aus dem Menü entfernt, Sekundär-Reihe verweist auf Ergebnisse + Wissen. Case-Box auf der Startseite verlinkt auf den BÜRO VALK Case mit Fallback. Nav active-state auf Hub-Verzweigungen korrigiert.

Für Besucher

Drei neue Hub-Seiten öffentlich erreichbar: /loesungen mit Übersicht der Lösungs-Bereiche, /ergebnisse mit Case-Übersicht, /wissen mit Wissens-Hub. Detailseiten unter /ergebnisse und /wissen mehrheitlich als Skeleton angelegt — der BÜRO VALK Case und der Copilot-Artikel sind als Beispiele vollständig ausgearbeitet, übrige Unterseiten zeigen Platzhalter-Inhalt. Lösungs-Detailseiten sind noch nicht angelegt.

Über-uns und Team sind getrennte Seiten: Über-uns enthält Geschichte, Werte, Geschäftsführung und CTAs; Team listet die Mitarbeiter im Mosaic-Layout — auf dem Desktop mit Mausover-Effekt, auf dem Smartphone per Tap.

Im Hauptmenü: Pille "Alle Lösungen ansehen" oben am MegaNav ohne Aufklappen erreichbar, /faq aus dem Menü entfernt, Sekundär-Reihe verweist auf Ergebnisse + Wissen. Auf der Karriere-Seite und der Team-Seite zwei Trust-Bausteine: Kununu Top Company 2026 als Score-Stats-Karte (groß) und als kompakte Mini-Variante.

HTML-Sitemap unter /sitemap als Card-Grid mit Hero, Sub-Page-Anzahlen je Bereich, plus Footer mit Verweis auf XML-Sitemap und RSS-Feed. RSS-Feed unter /feed mit den Wissen-Artikeln.

SEO & Performance

SEO-Infrastruktur eingezogen: XML-Sitemap unter /sitemap.xml mit per-Page-Toggle für noindex, Image-Sitemap unter /sitemap-image.xml, RSS-Feed unter /feed mit Wissen-Artikeln, robots.txt mit Sitemap-Verweis. Canonical-URLs, OpenGraph- und Twitter-Card-Meta-Tags zentral im Head-Snippet — werden für jede Seite aus den Page-Daten abgeleitet (Titel, Meta-Beschreibung, Header-Bild). Noindex-Symmetrie zwischen meta robots und X-Robots-Tag plus dedizierter Test-Bereich für die Validierung.

Team-Block-Architektur: vd-team referenziert eine zentrale Mitarbeiter-Page-Sammlung statt freier Block-Inhalte — Stamm-Daten an einer Stelle gepflegt, Block ist nur die Anzeige. Mosaic-Effekt nutzt mix-blend-mode: hard-light auf einem Foto-Layer über farbigem Hintergrund — kein zusätzliches Bild pro Variante nötig, die Färbung folgt dem Sektion-Theme. Hover-Overlay analog zur Layout-Hintergrund-Konfiguration parametriert (Farbe, Deckkraft, Übergangsdauer).

Trust-Badge-Architektur (D152): vd-kununu als eigener Block-Typ parallel zu vd-bewertungen statt Modus-Erweiterung des Slider-Blocks — vd-bewertungen ist ein 3-Card-Swiper mit Slider-Controls, vd-kununu ein einzelnes statisches Card-Element mit Score-Stats. Eine Modus-Erweiterung hätte die when:-Bedingungen und Layout-Pfade vermischt. Card-Ästhetik an _vd-bewertungen.scss und _vd-hinweiskarte.scss angelehnt, ohne SCSS-Mixin-Abstraktion (kein messbarer Nutzen bei zwei Use-Cases).

Material-Import: 14 Imagebilder mit fixen UUIDs in den Page-Daten registriert — Page-Referenzen bleiben bei Datei-Umbenennung stabil. ALT-Texte und Fokus-Override pro Datei gepflegt; im Image-Picker als Block-Auswahl direkt verfügbar.

Repo-Hygiene: 23 Wegwerf-Screenshot-Skripte aus tools/screenshots entfernt; Encoding-Fix für Transliterations-Reste (Umlaute fälschlich als ASCII-Ersatz wie "ae" statt "ä") flächig durchgezogen; Trust-Block aus dem Home-Layout in Über-uns + Karriere wiederverwendet statt parallel gepflegt.

Phase mit zwei Ausnahme-Vermerken: das Duplikat-Workpackage wp-2026-05-07-001-kununu-top-company-block (Doppel-Submit) wurde verworfen und durch wp-2026-05-07-001-kununu-block abgelöst (D150), dabei beide IDs beim Audit übergeben. Die Hands-on-Feinschliff-Phase wurde Operator-geführt durchgezogen, nachdem die Batch-Methodik abgebrochen wurde — die enthaltenen Items (Über-uns Hero, Nav active-state, vd-zitat-Pullquote-Variante, Kennzahlen-Headline ausgegliedert) sind als 19 Dateien gebündelt im Audit erfasst.

40 Commits in diesem Zyklus
  • 3ec854552026-05-07draft: hands-on feinschliff — ueber-uns hero, nav active-state, vd-zitat-pullquote-variante, kennzahlen-headline ausgegliedert
  • e5455e232026-05-07delegated: Hands-on Feinschliff (Operator-gefuehrt, Batch-Methodik abgebrochen)
  • a30996632026-05-07delegated: Material-Import: 14 Imagebilder aus Auswahl-Pool
  • c4a91f922026-05-07feat(material): 14 Imagebilder aus Auswahl-Pool importiert (Awareness-Schilder, GF-Doppel-Portrait, Office-Detail, Meeting, Drohne, Aktivität) — fixe UUIDs, ALT-Texte, Focus-Override
  • eef98e892026-05-07delegated: Wissen Schliff (WP-D aus feinschliff_v2)
  • e5f626f52026-05-07delegated: Ergebnisse Schliff (WP-C aus feinschliff_v2)
  • 75f8e8262026-05-07delegated: Ueber-uns Schliff (WP-B aus feinschliff_v2)
  • 4bc6fddf2026-05-07fix(content): WP-A Hygiene — Transliterations-Encoding-Fix flächig
  • f98eb7b02026-05-07delegated: Hygiene: Encoding-Fix flaechig + Trust-Block-Reuse aus Home (WP-A aus feinschliff_v2)
  • bf86aae72026-05-07delegated: Seitenaufbau Feinschliff (Folge zu WP-1/2/3/4 + Nav-Hub-Links)
  • fcec47eb2026-05-07feat(ueber-uns): WP-4 Revision — neue H1 ohne Bude, Geschichte 2001/2009, Werte überarbeitet, Trust-Strip, GF-Block, Kunden-CTA + Karriere-Hinweis dezent
  • 20cf4fc32026-05-07fix(nav): Hub-Links direkt erreichbar — MegaNav-Top-Pill 'Alle Lösungen ansehen', /faq raus, Sekundär auf Ergebnisse-Hub + Wissen, Case-Box-Link auf BÜRO VALK-Detail mit Fallback
  • 40e0d5742026-05-07feat(wissen): WP-2 Hub + Copilot-Artikel + 5 Skeleton-Artikel
  • c9e811972026-05-07delegated: Wissen-Hub + Copilot-Artikel (WP-2 aus Briefing Seitenaufbau Phase 1)
  • b113bfd82026-05-07feat(ergebnisse): WP-3 Hub + BÜRO VALK Case + 4 Skeleton-Cases
  • 12ddc8e02026-05-07delegated: Ergebnisse-Hub + BUERO VALK Case (WP-3 aus Briefing Seitenaufbau Phase 1)
  • 4943e3a62026-05-07feat(loesungen): WP-1 Hub — Hero, Highlights, Verzeichnis, Pain-Points, Trust, CTA
  • 2115b6492026-05-07delegated: Loesungen-Hub /loesungen/ (WP-1 aus Briefing Seitenaufbau Phase 1)
  • 73730c402026-05-07delegated: Ueber-uns Revision (WP-4 aus Briefing Seitenaufbau Phase 1)
  • e90cd7f72026-05-07style: HTML-Sitemap als Card-Grid mit Hero, Overline, Sub-Page-Counts und Maschinen-Lesbar-Footer
  • 8b90528f2026-05-07draft: SEO-Pass — Sitemap (XML+HTML+Image) + RSS-Feed + robots.txt + canonical/OG/Twitter + noindex-Symmetrie + Test-Bereich
  • 92700fd32026-05-07delegated: SEO-Pass: Sitemap (XML+HTML+Image), RSS-Feed, robots.txt, canonical, OG/Twitter, noindex-Symmetrie + Test-Bereich
  • 392564472026-05-07delegated: SEO-Pass: Sitemap (XML + HTML + Image), robots.txt, canonical, noindex-Hook, OpenGraph
  • 36f3fac12026-05-07delegated: Sitemap (XML + HTML) — Kirby-Route + per-Page-Toggle vereinheitlichen
  • b046b8f32026-05-07draft: tools/screenshots aufgeraeumt — 23 Wegwerf-Skripte entfernt
  • 44a0b5692026-05-07draft: Navigation — Team-Eintrag auf Ueber-uns korrigiert
  • 031cb7b72026-05-07draft: vd-kununu + vd-kununu-mini — kununu-Trust-Bloecke (Long + Mini)
  • aabaa1ab2026-05-07chore(casi): mark team-iteration WPs 005-009 as completed (superseded by 010)
  • 146babe02026-05-07chore(casi): remove duplicate kununu WP (mvc double-submit)
  • 81b1a1f02026-05-07delegated: Kununu-Karte (Top Company 2026) als Block — auf Karriere- und Team-Seite einbindbar
  • 1d1350a72026-05-07delegated: Kununu Top Company 2026 — Trust-Badge-Block (Abwandlung/Abstraktion von vd-bewertungen)
  • 299aef152026-05-06delegated: Team-Block + Mitarbeiterverwaltung + Über-Uns-Page — Sammelabnahme aller Iterationen
  • 7bf5e1872026-05-06draft: Team-Block + Mitarbeiterverwaltung + Über-Uns-Page
  • 2e9b5bfc2026-05-06delegated: Team-Block Iteration 5 — Varianten klassisch/komplex togglebar, Mobile Tap statt persistent
  • 79c1c8a42026-05-06delegated: Team-Grid Iteration 4 — Königsdruck-Mechanik (mix-blend-mode hard-light) plus konfigurierbares Hover-Overlay analog Layout-Hintergrund
  • 70c589512026-05-06delegated: Team-Grid Iteration 3 — Königsdruck-Style randloses Mosaic, Über-Uns-Page als Heimat
  • 926301972026-05-06delegated: Team-Page Iteration 2 — Über-Uns wird Team, neuer vd-team-Block (gruppiert + Duotone), Karriere-Block bleibt unangetastet
  • 97fe40372026-05-06delegated: Team-Page + zentrale Mitarbeiterverwaltung — vd-team-grid → vd-team (dynamisch)
  • 5ed114ad2026-05-06report: release-report aktualisiert (16 Releases, 321 Commits)
  • 90c472622026-05-06report: release-report aktualisiert (16 Releases, 321 Commits)
v16
Phase abgeschlossen am 06.05.2026
Phase mit Schwerpunkt Editor-Bedienkomfort und neuer interner /styleguide-Seite. Plugin vd-panel-tweaks bündelt Panel-Korrekturen an einer zentralen Stelle. Auswahl-Felder mit 2–3 Optionen erscheinen im Panel als Radio-Buttons statt als Dropdown. Block-Picker im Layout-Editor nach funktionalen Gruppen sortiert. Alle 48 Block-Typen funktionieren auf hellem und dunklem Hintergrund identisch.
v16: Editor-Komfort & Styleguide-Page (WP-2026-05-06-001 + 002 + 003 + 004, 171 Dateien): vd-panel-tweaks-Plugin (Pattern B Select-zu-Radio fuer 2-3-Optionen-Felder, Default-Pflicht-Konvention §14, Override-Felder zentral), Block-Picker nach funktionalen Gruppen sortiert, vd-seo-content -> vd-themen-editorial (Rename inkl. bundle.min.js-Rebuild), neue /styleguide-Seite mit Style-Sektion (Farben + Typo) + Bausteine-Sektion (48 Sample-YAMLs, Block-JSON-Copy, Block-Icons, Klavika fuer Code), Sticky-TOC + Scrollspy + Mobile-Drawer, Master-Theme-Toggle in TOC-Sidebar, Theme-Universalitaet (Block-SCSS auf Theme-Cascade — alle Bloecke beidseitig theme-faehig, 3 Composite-Bloecke layout-adaptiv statt self-invertierend, kontrastive Block-Strukturen self-contained, globale p-Cascade fuer data-theme=invertiert, Plugin-Parent-Resolution), Styleguide-Header-Finesse (Sprite display:none + Header-Padding + Lead-Text).
Für Redakteure

Auswahl-Felder mit zwei oder drei Optionen erscheinen im Panel als Radio-Buttons statt als Dropdown — die Optionen sind ohne Aufklappen erkennbar, Auswahl in einem Klick statt zwei. Beim Anlegen eines neuen Blocks im Layout-Editor sind die wählbaren Block-Typen nach funktionalen Gruppen sortiert: Sektion-Bausteine, Inhaltselemente, Layout-Hilfen — vorher alphabetisch unsortiert.

Block-Typ "Themen-Editorial" — Umbenennung des bisherigen Block-Typs "SEO-Content"; der Name beschreibt jetzt die Funktion (redaktioneller Themenseiten-Block) statt der ursprünglichen SEO-Motivation. Bestehende Inhalte mit dem alten Block-Namen sind migriert.

Neue Seite unter /styleguide als interne Übersicht: alle 48 Block-Typen werden mit Live-Vorschau gerendert, pro Block-Typ ein Knopf "JSON kopieren" zum Wiederverwenden in einem anderen Layout. Sticky-Inhaltsverzeichnis links mit Scrollspy, Mobile-Drawer für Smartphone-Ansicht, Theme-Umschalter (hell/invertiert) pro einzelner Block-Karte und ein Master-Toggle in der TOC-Sidebar — damit lässt sich pro Block-Typ direkt prüfen, wie er auf dunklem Hintergrund aussieht.

Default-Pflicht-Konvention im Panel: Auswahl-Felder mit Default-Wert sind Pflichtfeld; Auswahl-Felder ohne Default sind Wahlfeld, Frontend-Snippet rendert dann den Standard-Fallback. Plugin "vd-panel-tweaks" bündelt diese Panel-Korrekturen an einer zentralen Stelle (Override-Felder, Pattern-B-Migration zu Radio-Buttons, Default-Konventionen) — vorher als verstreute Patches in einzelnen Page-Blueprints und Block-Definitionen gepflegt.

Für Besucher

Im öffentlichen Frontend keine Layout-Änderungen für den Besucher — diese Phase betrifft die Editor-Bedienung im Panel und die intern genutzte /styleguide-Seite.

Konsequenz aus der Theme-Universalität: Block-Typen mit kontrastiver Wirkung (z.B. ein Hervorhebungs-Block, der heller als seine Umgebung ist) passen sich jetzt dem umgebenden Sektion-Theme an, statt einen festen Hintergrund mitzubringen. Daraus folgt: derselbe Block-Typ erscheint auf einer hellen Seite hell und auf einer Sektion mit invertiertem Theme dunkel — vorher waren drei Composite-Block-Typen auf eine Variante festgelegt.

SEO & Performance

Theme-Cascade: Block-SCSS reagiert über CSS-Custom-Properties auf den Theme-Kontext (data-theme="hell" oder data-theme="invertiert") — eine Stilregel pro Block-Typ deckt beide Themes ab, vorher zwei parallel gepflegte Varianten. Drei Composite-Block-Typen umgestellt von self-invertierend (Block setzt im eigenen Markup data-theme="invertiert") auf layout-adaptiv (Block erbt data-theme aus dem umgebenden Layout) — verhindert das doppelte Invertieren auf einer ohnehin invertierten Sektion. Globale CSS-Cascade für Absatz-Tags unter data-theme="invertiert" ergänzt die bisherige Block-spezifische Cascade.

Plugin "vd-panel-tweaks" als zentrale Stelle für Panel-Korrekturen: Override-Felder, Pattern-B-Migration (Auswahl-Felder mit 2-3 Optionen als Radio-Buttons via Kirby-Field-Override), Default-Pflicht-Konvention §14 in panel-conventions.md dokumentiert. Vorher als verstreute Patches in einzelnen Page-Blueprints und Block-Definitionen gepflegt — Änderung an der Konvention musste an mehreren Stellen nachgezogen werden.

Block-Rename "vd-seo-content" → "vd-themen-editorial" inklusive Rebuild der bundle.min.js. Bestehende Inhalte mit dem alten Block-Namen sind migriert.

Styleguide-Page nutzt 48 Sample-YAMLs als Single Source of Truth für die Demo-Inhalte aller Block-Typen — neue Block-Typen werden mit ihrem Sample-YAML automatisch in der Styleguide gerendert, ohne dass die /styleguide-Seite manuell ergänzt werden muss. Block-JSON-Copy-Knopf liefert das exportierbare JSON-Snippet eines Block-Beispiels für direkten Import in den Layout-Editor einer anderen Seite.

28 Commits in diesem Zyklus
  • de7e0a6f2026-05-06fix(styleguide): Sprite-display-none + Header-Padding + Lead-Text-Finesse
  • 72a050ef2026-05-06delegated: Styleguide-Header-Finesse — Sprite-Leerraum + Lead-Text
  • 4e962bc32026-05-06feat(styleguide): Master-Theme-Toggle in TOC-Sidebar verschoben
  • 9bd43ea82026-05-06fix(theme): kontrastive Block-Strukturen self-contained statt Theme-getrieben
  • d90444782026-05-06content(styleguide): Partner-Logos + Kontakt-Form + Bewertungs-Logo
  • f337462b2026-05-06fix(theme): 3 Composite-Bloecke layout-adaptiv statt self-invertierend
  • 14413ef52026-05-06fix(theme): Block-SCSS auf Theme-Cascade — alle Bloecke beidseitig (Item C+D)
  • 8a83be4b2026-05-06feat(styleguide): Theme-Toggle (Per-Card + Master) + Plugin-Parent-Resolution
  • f0bc17b52026-05-06content(styleguide): Demo-Bilder aus Karriere-Galerie + Hero-Loop-Video
  • 1d3a97302026-05-06delegated: Theme-Universalitaet — alle Bloecke beidseitig + Styleguide-Toggle
  • 05957f682026-05-06chore(tools): Playwright-Diagnose-Scripts fuer /styleguide
  • f97e67a52026-05-06feat(styleguide): Showcase-QOL — Block-Icons, 48 Sample-YAMLs, Block-JSON-Copy, Klavika
  • db8acfba2026-05-06fix(theme): globale p-Cascade fuer data-theme=invertiert
  • f3b1a06d2026-05-06feat(styleguide): Sticky-TOC + Scrollspy + Mobile-Drawer
  • cc9a28d22026-05-06feat(styleguide): Bausteine-Sektion + Block-JSON-Copy + 3 Pilot-Samples
  • 1ec11dca2026-05-06feat(styleguide): Page-Skelett + Style-Guide-Sektion (Farben + Typo)
  • 790775822026-05-06build(js): bundle.min.js fuer vd-themen-editorial-Rename gebaut
  • 661927e22026-05-06refactor(blocks): vd-seo-content → vd-themen-editorial
  • ad175feb2026-05-06refactor(panel): Block-Picker nach funktionalen Gruppen sortiert
  • a2a4021e2026-05-06wp anlegen: Panel-QOL-2 (Block-Picker, vd-themen-editorial, Styleguide-Page)
  • b91d7ffa2026-05-06docs(plugin): vd-panel-tweaks Header — Ablöse-Pfad bei Kirby-empty-Support
  • f1ac8e662026-05-06wp panel-qol: finale Strategie — Default-Pflicht-Konvention + globales CSS-Plugin
  • 32871b112026-05-06feat(panel): Pattern B — 2-3-Options-Selects auf radio umgestellt
  • 967e38f02026-05-06feat(panel): vd-panel-tweaks plugin + Override-Felder migriert
  • be678de72026-05-06wp panel-qol: Select-Default-Strategie finalisiert (placeholder ohne Em-Dash, Snippet-Fallback, panel-conventions §14)
  • c90866a82026-05-06wp panel-qol: Select-Strategie korrigiert (kein empty:, stattdessen placeholder/radio/toggles)
  • 0e62de7f2026-05-06wp anlegen: Panel-QOL (Sammel-WP, offener Scope, delegated)
  • c36bce5d2026-04-30report: release-report aktualisiert (15 Releases, 293 Commits)
v15
Phase abgeschlossen am 30.04.2026
Bugfix-Pass (WP-2026-04-30-004, 10 Dateien): vd-bewertungen-Block-Fixes — YAML-Parse-Fehler im Help-Text durch unquotiertes ':', invalides star-Icon → quote, wysiwyg raus (Swiper-Preview hat Controls verschluckt). logoAsset-Fallback entfernt, lase-peco.png als Kirby-Datei registriert + Home-Content migriert.
5 Commits in diesem Zyklus
  • f36887762026-04-30chore: 1 geaendert (1 Dateien)
  • 5712000d2026-04-30delegated: Various Fixes (wp-2026-04-30-004)
  • d80b06d42026-04-30delegated: Various Fixes (offener Scope, Mixed-Mode Panel + CMD)
  • 67b691cf2026-04-30report: release-report aktualisiert (14 Releases, 288 Commits)
  • 86cc00562026-04-30report: release-report aktualisiert (14 Releases, 288 Commits)
v14
Phase abgeschlossen am 30.04.2026
Frontend-Polish 3 (WP-2026-04-30-003, 22 Dateien): Hintergrund-Stack erweitert (Gradient-Layer + Top/Bottom-Fades parametriert mit Color/Width/Opacity, 15-Prozent-Plateau gegen muddy Mid-Stops, z-Index-Stack korrigiert: bg/gradient/overlay/fades/content), Pseudo-Parallax via sticky picture in absolute __bg-Container (vorher transform-trick + position:fixed), Storytelling-Section-Varianten 150/200vh (kein Flex-Center, fuer narrative Scroll-Strecken), Scroll-Animation auf zwei Ebenen — Layout-Toggle + spaltenweiser vd-animation-Block mit dt-wesel-Pattern (Block-Position als Trigger-Punkt), Button-Block auf Kirby-link-Field umgestellt (vorher page+anchor+url-fallback), Problem-Loesung-Karten mit echtem page-Field statt freier URL, Smooth-Scroll global, Display-Min mobil 44→40 px.
Für Redakteure

Hintergrund-Steuerung im Layout-Editor erweitert: zusaetzlich zu Hintergrundfarbe und -bild jetzt Gradient-Verlauf (Start-/End-Farbe, Richtung horizontal/vertikal/diagonal, Deckkraft) sowie Top- und Bottom-Fades mit Farbauswahl, Breite (klein/standard/gross) und Deckkraft. Hintergrundbild kann optional auf "klebend" gestellt werden — bewirkt einen Parallax-Effekt beim Scrollen. Section-Templates erweitert um zwei Storytelling-Stufen (150 % und 200 % der Bildschirmhoehe) fuer laengere narrative Abschnitte. Neuer Block-Typ "Animation" zum Drag-and-Drop in eine Spalte: setzt einen Animations-Trigger, dessen Position in der Spalte den Auslosezeitpunkt beim Scrollen bestimmt. Alternativ Animation auf Layout-Ebene per Toggle (gilt fuer das ganze Layout) — Auswahl von Effekt (Einblenden, Slide aus vier Richtungen) und Dauer (300/500/1000/1400 ms). Button-Block: ein einziges Link-Feld ersetzt die bisherigen drei (Seite, Anker, externer Link); akzeptiert URL, interne Seite, Datei, E-Mail, Telefon oder Anker. Problem-Loesung-Karten verlinken auf interne Seiten als Page-Referenz statt als freier Text-Link.

Für Besucher

Hintergruende mit Farbverlauf und weichen Uebergangs-Kanten oben/unten. Hintergrundbilder mit Parallax-Effekt: Bild bleibt beim Scrollen stehen, Inhalt scrollt darueber. Laengere Sektionen (1,5- und 2-fache Bildschirmhoehe) fuer narrative Abschnitte. Inhalts-Elemente (Text, Bilder, Karten) koennen beim Hereinscrollen mit Einblenden- oder Slide-Animation erscheinen. Smooth-Scroll bei Anker-Sprungzielen (z.B. aus dem Menue zu einer Sektion). Display-Headlines auf dem Smartphone in kleinerer Mindestgroesse, lange Woerter ("Softwareentwicklung") brechen seltener um.

SEO & Performance

Pseudo-Parallax mit position:sticky-Picture im absolut positionierten Container — robuster als der vorherige transform-Trick mit position:fixed (kein Stretch bei 150/200vh-Sektionen, respektiert prefers-reduced-motion). Scroll-Animationen ueber zwei IntersectionObserver (Self-Observer fuer Layout-Animationen, Trigger-Observer fuer Spalten-Animationen mit dt-wesel-Pattern); rootMargin -200 px feuert mit Verzoegerung nach Element-Eintritt, threshold 0.05, one-shot. Kirby-link-Field deckt URL/Page/File/Email/Tel/Anchor in einem Feld ab; Snippet aufloest page://&lt;uuid&gt;-Referenzen via page() oder site->index->findBy uuid, file://&lt;uuid&gt; via $kirby->file(). Reduced-Motion-Praeferenzen werden auf drei Ebenen respektiert: Smooth-Scroll-Override, Animations-Skip, Parallax-Skip mit fixed-positioniertem Bild.

4 Commits in diesem Zyklus
  • b273fc9e2026-04-30chore: 2 geaendert (2 Dateien)
  • 0edbaf9a2026-04-30delegated: Frontend-Polish 3 (wp-2026-04-30-003)
  • 0bd9f4532026-04-30report: release-report aktualisiert (13 Releases, 284 Commits)
  • 2aa1c3a32026-04-30report: release-report aktualisiert (13 Releases, 284 Commits)
v13
Phase abgeschlossen am 30.04.2026
Frontend-Polish 2 (WP-2026-04-30-002, 30 Dateien): Layout-Spacing- vs. Section-Template-Decoupling (Innenabstand-Klassen kaperten Section-Template-Verhalten — z.B. Spacing "Hero" stellte Section auf Vollbildhoehe), neue Riesig-Spacing-Stufe + Naming konsistent zum Gap-Block, Display-Heading-Leading enger, Mega-Nav-Bold, Logo-Strip-Mobile zurueck auf 2x2, Button-Wrap-Spacing beim Umbruch, Overline-Pill raus, Herausforderungen + Service-Verzeichnis als getrennte Bloecke (Service-URLs als echte Page-References statt freier Text), DRY-Video-Player als Component-Snippet zwischen vd-video und vd-case-studies (inkl. Cookie-Consent-Gate).
Für Redakteure

Neuer Block-Typ "Service-Verzeichnis" fuer Service-Listen mit Verweisen auf interne Seiten — Service-URLs werden als Page-Referenzen aus dem Kirby-Auswahlfeld gepflegt (vorher als freier Text-Link im Herausforderungen-Block; bei Slug-Aenderung blieben die Verweise dort stehen, jetzt aktualisieren sie sich automatisch). Herausforderungen-Block enthaelt nur noch Herausforderungen, die Service-Liste ist ein eigener Block-Typ daneben. Spacing-Stufen-Auswahl im Layout-Editor um eine "Riesig"-Stufe ergaenzt; Stufen-Bezeichnungen einheitlich zum Gap-Block. Spacing- und Section-Template-Auswahl entkoppelt: Innenabstand und Hoehe-Verhalten werden ueber zwei getrennte Felder gesteuert (vorher konnte ein Spacing-Wert die Section-Hoehe veraendern). Logo-Streifen auf Smartphone wieder im 2x2-Raster.

Für Besucher

Logo-Streifen auf Smartphones in 2x2-Anordnung. Display-Headings mit engerer Zeilenfuehrung. Mega-Nav: Schrift fett. Buttons mit langem Text bekommen beim Zeilenumbruch Innenabstand zwischen Icon und Text. Service-Uebersicht (Service-Verzeichnis) auf der KI-Automatisierung-Seite als eigene Sektion mit verlinkten Karten. Video-Funktion auf Case-Study-Seiten verhaelt sich identisch zum Standard-Video-Block (mit Cookie-Consent-Gate fuer externe Anbieter).

SEO & Performance

Video-Player-Logik (Provider-Erkennung fuer YouTube/Vimeo, Consent-Gate, Iframe-Inject) in einen geteilten Component-Snippet ausgelagert. vd-video und vd-case-studies nutzen denselben Code statt zwei parallel gepflegter Implementierungen — Aenderungen am Cookie-Banner-Verhalten muessen nur an einer Stelle gemacht werden. Service-Verweise im Service-Verzeichnis als Kirby-Page-Referenzen: bei Umbenennung einer Service-Seite (Slug-Aenderung) bleiben die Verweise korrekt; vorher als freier Text-Link, der bei Slug-Aenderung ins Leere ging.

2 Commits in diesem Zyklus
  • 0d5a59d82026-04-30log: 1 geaendert (1 Dateien)
  • 2aa1601d2026-04-30report: release-report aktualisiert (12 Releases, 282 Commits)
v12
Phase abgeschlossen am 30.04.2026
Frontend-Polish (WP-2026-04-30-001, 40 Dateien): Typo-Skala harmonisiert (Display kompakter, Leading minimiert), Tone-System auf Transparenz-Basis durchgaengig (Normal/Leicht-verblasst/Durchscheinend/Akzent), Writer-Marks-Plugin auf Kirby-5-API portiert (Custom-Marks waren wegen API-Drift broken), Block-Refactor Overline + textExtended (Schriftgroessen-Auswahl wirkt jetzt durch Section-Theme-Spezifitaet hindurch), Layout-Tweaks (Footer-Padding, Logo-Strip-Mobile, Button-Inline-Layout). Repo-Hygiene: _casi/lock.json + _casi/trails/ aus Git ausgeschlossen.
Für Redakteure

Custom-Hervorhebungen im Texteditor (Akzent-Unterstrich, Akzent-Hervorhebung, Glossar-Verlinkung) funktionieren nach dem Kirby-5-Update wieder — waren durch eine Plugin-API-Aenderung in 5.4 zeitweise ausgefallen. Im textExtended-Block wirkt die Schriftgroessen-Auswahl jetzt im Frontend; vorher ohne Wirkung, weil andere Style-Regeln Vorrang hatten. Text-Tonalitaet als Auswahl mit vier Stufen (Normal / Leicht verblasst / Durchscheinend / Akzent), wirkt unabhaengig vom Sektion-Hintergrund. Overline-Block strukturiert ueberarbeitet. Display-Schriftgroessen kompakter, Zeilenfuehrung bei grossen Headings enger.

Für Besucher

Display-Headings in kompakterer Groesse, mit engerer Zeilenfuehrung. Hervorhebungen im Fliesstext (Akzent-Unterstrich, Akzent-Hervorhebung) werden wieder gerendert. Text-Tonalitaeten (verblasst, durchscheinend, Akzent) wirken auf hellem und dunklem Hintergrund einheitlich. Footer-Padding angepasst, Logo-Streifen auf Smartphone justiert, Buttons mit Icon im Inline-Layout.

SEO & Performance

Writer-Marks-Plugin auf die Kirby-5-Marks-API portiert; Custom-Marks waren wegen API-Drift seit Kirby 5.4 ausgefallen. Tone-Schema auf Transparenz-Basis (rgba-Overlays) statt fester Farbtoken pro Sektion-Theme — eine Auswahl wirkt sektionsuebergreifend, ohne dass fuer jede Hintergrund-Variante eine eigene Farbe definiert werden muss. Repo-Hygiene: _casi/lock.json und _casi/trails/ (interne Build- und Logging-Dateien) aus Git-Tracking ausgeschlossen.

9 Commits in diesem Zyklus
  • 333ffa142026-04-30delegated: Frontend-Polish 3 (offener Scope, Mixed-Mode Panel + CMD)
  • 0d1abab02026-04-30delegated: Frontend-Polish 2 (wp-2026-04-30-002)
  • 25ef33d92026-04-30delegated: Frontend-Polish 2 (offener Scope, Mixed-Mode Panel + CMD)
  • 332368a92026-04-30delegated: Frontend-Polish (wp-2026-04-30-001)
  • 104d44c72026-04-30delegated: Frontend-Polish (offener Scope, Mixed-Mode Panel + CMD)
  • f1f25e6c2026-04-30delegated: Frontend-Polish: Kontakt-Anker, Stellenbeschreibungen, Block-Galerie/Styleguide + Panel-Iteration
  • 8e1e76282026-04-29chore: also exclude _casi/lock.json from git
  • a6a8b1ab2026-04-29report: release-report aktualisiert (11 Releases, 273 Commits)
  • f403ea292026-04-29report: release-report aktualisiert (11 Releases, 273 Commits)
v11
Phase abgeschlossen am 29.04.2026
Frontend-Quality-Pass (WP-007: 9 UI-Polish-Items + UAT-Folge — Cookie-Banner mobile, Footer, Video-Buttons, Telefon-/Mail-Icons, Kontrast-Anhebung, Standort-Block, Responsive-Linebreak, Pill-Split + Polish), Panel-Feinschliff (WP-008: Toggle, Umlaute, Marquee-ms, Cookie-Tab im Panel + Cookie-Icon auf Footer-Style angeglichen), Content-Tonalitaet-Pass (6 Dateien).
Für Redakteure

Logo-Streifen-Geschwindigkeit wird im Panel jetzt in Millisekunden eingegeben (5000–180000 ms), bestehende Werte werden automatisch umgerechnet. Cookie-Banner-Texte sind in den Panel-Feldern selbst pflegbar; vorher lagen einige Defaults nur im Code. Im Texteditor setzt `||` einen Zeilenumbruch, der nur ab Tablet-Breite greift — auf dem Smartphone bleibt der Text als Fließtext stehen. Telefon- und Mail-Verlinkungen werden nach dem Speichern automatisch mit Mini-Icon und einheitlicher Telefonnummer-Schreibweise angereichert; im Panel ist keine Sonderbehandlung nötig. Panel-Feinschliff: Pfeil-Richtung an Aufklapp-Toggles entspricht der anstehenden Aktion (vorher vertauscht), alle panel-sichtbaren Texte mit echten Umlauten und ß, Strukturtabelle für Hintergrund-Elemente neu gegliedert.

Für Besucher

UAT-Folge mit 16 Detail­korrekturen: Cookie-Banner auf dem Smartphone ohne leere Fläche unter dem Inhalt, Video-Steuerung als zusammengehörige Pille (ein Knopf zum Anhalten des Hintergrund-Videos, einer für Vollbild), Standort-Block mit größerer Einleitungs-Zeile abgegrenzt von der Vorteils-Liste darunter, Logo-Streifen auf dem Smartphone kompakter mit 50 Prozent größeren Logos, Galerie-Indikator-Punkte auf hellem Hintergrund kontrastreicher, Hinweiskarten-Text auf dunklem Hintergrund heller. Telefonnummern und E-Mail-Adressen in Text-Bereichen mit Mini-Icon davor; Telefonnummer-Vorwahl bleibt in einer Zeile, ohne in den nächsten Umbruch zu rutschen.

SEO & Performance

Telefon- und Mail-Aufbereitung serverseitig: Texteditor-Inhalte werden beim Ausliefern um Mini-Icon und DIN-5008-konforme Telefonnummer-Schreibweise (mit nicht-umbrechenden Zifferntrennzeichen) angereichert — keine Sonderbehandlung beim Eintippen im Panel nötig. 16 Blueprint-Dateien plus ein Plugin auf konsistente UTF-8-Umlaute umgestellt. Logo-Streifen-Geschwindigkeit nutzt jetzt Millisekunden mit automatischer Umrechnung von Legacy-Sekunden — bestehende Inhalte bleiben kompatibel.

12 Commits in diesem Zyklus
  • 6703ff082026-04-29chore: exclude _casi/trails/ from git
  • 722a404c2026-04-29trails: continued session updates
  • bcce1cdc2026-04-29trails: 2026-04-29 panel-feinschliff session
  • 2081d7452026-04-29fix(panel): Cookie-Icon im Panel-Tab auf Footer-Style angleichen
  • ee995d022026-04-29feat(panel-feinschliff): Toggle, Umlaute, Marquee-ms, Cookie-Tab
  • a1a45bac2026-04-29tonalitaet: 6 geaendert (6 Dateien)
  • 5fc837102026-04-29fix(frontend-quality): UAT-Folge — Pill-Split + Polish
  • 0c8c6ca72026-04-29feat(frontend-quality): 9 UI-Polish-Items aus WP-007
  • eb1253c32026-04-29report: release-report aktualisiert (10 Releases, 261 Commits)
  • 7ca0814e2026-04-29report-config: Klartext-Spuren v01-v10 komplett ueberarbeitet — verstaendlicher, ohne Akronyme
  • 2b7b1fcb2026-04-29delegated: Frontend-Quality Pass: Cookie-Mobile, Footer, Video-Buttons, Telefon/Mail-Icons, Kontrast, Standort, Responsive-Linebreak
  • 2718abb52026-04-29report: release-report aktualisiert (10 Releases, 261 Commits)
v10
Phase abgeschlossen am 29.04.2026
Datenschutz & Kontakt: Panel-konfigurierbares Cookie-Banner mit Tracking-Inject + Footer-Reopen, atomarer vd-video-Block (YouTube/Vimeo/Upload) mit Consent-Gate fuer externe Embeds, echte Kontakt-Seite mit detailliertem Formular (Phone-CTA-Button, aufgeraeumte Formular-Spalte, kleinerer Hero).
Für Redakteure

Cookie-Banner ist im Panel pflegbar: Texte, Buttons, Liste der Tracking-Skripte (z.B. Plausible-Statistik), die erst nach Zustimmung geladen werden. Ein Link im Footer ruft das Banner zur erneuten Auswahl auf. Neuer Video-Block-Typ für YouTube, Vimeo oder eigene Uploads. Externe Videos werden erst nach aktivem Consent eingebunden, vorgeschaltet ist ein Vorschaubild mit Hinweistext. Kontaktseite unter /kontakt live: Formular mit 6 Feldern (Name, E-Mail, Telefon, Anliegen, Nachricht, Datenschutz-Checkbox), zusätzlich Telefon-Link für Direktanruf.

Für Besucher

Beim ersten Seitenbesuch wird der Cookie-Banner mit Zustimmungs-Auswahl angezeigt. Im Footer öffnet ein Link das Banner erneut zur Anpassung. YouTube- und Vimeo-Videos werden erst nach Klick auf ‚Zustimmen' eingebettet — vorher kein Verbindungsaufbau zu YouTube oder Vimeo. Kontaktseite live unter /kontakt mit Formular und Telefon-Link.

SEO & Performance

Tracking-Skripte (Plausible u.a.) werden ausschließlich nach Zustimmung im Cookie-Banner geladen, ohne externes Consent-Plugin. Externe Video-Embeds (YouTube, Vimeo) sind nicht im initialen HTML enthalten, sondern werden erst nach aktivem Consent nachgeladen — kein Drittanbieter-Verbindungsaufbau ohne Erlaubnis. Reduziert die Anzahl der Drittanbieter-Anfragen beim Initial-Load.

9 Commits in diesem Zyklus
  • 36c4916b2026-04-29content(kontakt): Hero kleiner, aufgeraeumte Formular-Spalte, Phone-CTA-Button
  • 78d1b4892026-04-29content(kontakt): Echte Kontakt-Seite mit detailliertem Formular
  • 5fc298fe2026-04-29delegated: Echte Kontakt-Seite mit detailliertem Formular
  • a54e86ec2026-04-29delegated: Echte Kontakt-Seite mit detailliertem Formular
  • 590f22382026-04-29content(karriere): Test-Block entfernt
  • 30f7e3d92026-04-29feat(video): atomarer vd-video-Block (YouTube/Vimeo/Upload) mit Consent-Gate
  • dcb20e0b2026-04-29delegated: Video-Block (vd-video): atomarer Medienblock fuer YouTube/Vimeo/Upload mit Consent-Gate
  • 0a3110bc2026-04-29report: release-report aktualisiert (9 Releases, 252 Commits)
  • 9eee31642026-04-29feat(cookies): Panel-konfigurierbares Cookie-Banner mit Tracking-Inject + Footer-Reopen
v09
Phase abgeschlossen am 29.04.2026
Karten-Pipeline-Refactor (Style+Locations-Split als Single Source of Truth, Legacy-Format raus, smooth Canvas+Marker-Zoom-Sync via :has(), preset-Blueprint Multi-MIME + 2 MB, uploads-Prop fuer preset-Blueprint), Platzhalter-Seiten (Coming-Soon-Hero fuer leere Pages) + 404-Seite mit IT-Humor (Du-Anrede), Cookie-Hinweis (Panel-konfigurierbares Banner mit Tracking-Inject + Footer-Reopen), Layout: "Unterer Verlauf" als Toggle pro Layout (statt hardcoded auf Hero), Inline-JS-Transition + Cache-Buster auf Assets, site/accounts/ in Git aufgenommen (Phase-1-Entwicklung).
Für Redakteure

Karten-Konfiguration in zwei Dateien getrennt: Stil-Definition (Farben, Layout, Marker-Typen) und Standorte. Damit lässt sich ein Standort hinzufügen, ohne die Stil-Datei zu bearbeiten. Auf leeren Seiten erscheint automatisch ein ‚Coming Soon'-Block statt eines leeren Layouts. 404-Seite neu verfasst: kurze Mitteilung mit IT-Wortspiel, Du-Anrede. Bottom-Gradient (Verlauf am unteren Rand einer Sektion) ist jetzt pro Sektion ein- oder ausschaltbar; vorher fest auf Hero-Bereich beschränkt.

Für Besucher

Zoom- und Pan-Animationen der Karte synchronisiert: Marker-Positionen folgen der Karten-Animation ohne Versatz beim Reinzoomen. Auf leeren Seiten erscheint ein ‚Coming Soon'-Block. Bei Aufruf einer nicht existierenden URL wird eine 404-Seite mit IT-Wortspiel ausgeliefert.

SEO & Performance

Karten-Zoom-Layer synchronisiert mit der Pan-Animation — vorher zwei nicht abgestimmte Animations-Loops mit Versatz, was als Zwischen-Renderings auftrat. CSS- und JS-Dateien bekommen automatische Cache-Buster (Hash im Dateinamen): Bei Code-Änderungen wird die alte Datei nicht mehr aus dem Browser-Cache gezogen, neue Version wird zwingend nachgeladen.

29 Commits in diesem Zyklus
  • 2dcc6e752026-04-29delegated: Cookie-Hinweis: Panel-konfigurierbares Banner mit Tracking-Inject + Footer-Reopen
  • c2d4c1262026-04-29fix(map): Zoom-Interpolation mit Karten-Offset oder Drag stabilisiert
  • aca9e5262026-04-29fix(map): Marker bewegen sich smooth statt zu skalieren+snappen
  • f20bf0c62026-04-29fix(map+infra): Inline-JS-Transition + Cache-Buster auf Assets
  • 5f95a1252026-04-29fix(map): Canvas-Zoom-Sync via :has() statt JS-Klassen-Toggle
  • eb63c93c2026-04-29fix(map): Canvas folgt Leaflets Zoom-Animation smooth statt zu springen
  • 291521b72026-04-29feat(layout): "Unterer Verlauf" als Toggle pro Layout (statt hardcoded auf Hero)
  • e129a35f2026-04-29fix(map): uploads-Prop setzen damit preset-Blueprint beim Upload greift
  • f600149e2026-04-29fix(map): preset-File-Blueprint akzeptiert mehrere JSON-MIMEs + 2 MB
  • c38ad83b2026-04-29refactor(map): Legacy-Format komplett raus, Style+Locations als Single Source
  • 783db1d62026-04-29feat(map): Viewer auf Style+Locations-Split umstellen (Legacy-Fallback)
  • 9ea38e032026-04-29delegated: Karte: Viewer auf Style+Locations-Split umstellen
  • 58892e0d2026-04-29wp5: 6 geaendert (6 Dateien)
  • e284d7f62026-04-29wp4: 6 geaendert (6 Dateien)
  • f2f1483e2026-04-29delegated: Karte: Viewer auf Style+Locations-Split umstellen (Legacy-Fallback)
  • 6fd469e12026-04-29wp3-fix: 7 geaendert (7 Dateien)
  • 68a0ea112026-04-29fix(404): Du- statt Sie-Anrede
  • dc6baac72026-04-29feat(placeholder+404): Coming-Soon-Hero fuer leere Pages + 404-Seite
  • 0facba322026-04-29delegated: Platzhalter-Seiten (auto) + 404-Seite mit IT-Humor
  • 3497eef02026-04-29delegated: Platzhalter-Seiten (auto) + 404-Seite mit IT-Humor
  • 5fca61c72026-04-29chore(deploy): site/accounts/ in git aufnehmen (Phase-1-Entwicklung)
  • 4874e4652026-04-29wp3: 7 geaendert (7 Dateien)
  • e569b47d2026-04-29wp2: 7 geaendert (7 Dateien)
  • e15c62cf2026-04-29fix(fokusthema): Inner-Flicker beim X-Dismiss aus collapsed + X +50%
  • cabef8a42026-04-29fix(fokusthema): Click-to-expand statt Hover-Peek + Pfeil +50% + Umlaute
  • 0db035832026-04-29wp1: 7 geaendert (7 Dateien)
  • e1b186272026-04-29feat(fokusthema): zweistufiges Verbergen + Scroll-Trigger
  • 583afce42026-04-29delegated: Fokusthema-Fly-In: Zweistufiges Verbergen + Scroll-Trigger
  • 3758b1212026-04-29report: release-report aktualisiert (8 Releases, 223 Commits)
v08
Phase abgeschlossen am 29.04.2026
v08 (Mega-Release): kamperdev/forms-Plugin Phase 1+2 — v0.1.0 (Builder + Inbox + Block + Testseite, 78 Dateien) und v0.2.0 (HTML-Mail-Templates Operator+Bestaetigung, zentraler SMTP-Pfad, 27 Dateien). Theme-System-Refactor (data-theme + CSS-Custom-Properties + Composite-Override, Block-SCSS auf Custom-Properties migriert, Content-Migration variante-Felder entfernt, 7 Phasen, 39 Dateien). Mobile-Fidelity-Iteration Home+KI+Karriere (Hero-Kontrast, Slider-Bug, Logos, CTA, mehrere Sub-WPs). Legal-Content 2026 (Impressum + Datenschutz neu, Borlabs raus, AGB-Platzhalter, Logo-Varianten). Editor-QOL (Forms-Builder als grosses neues Editor-Feature, diverse Block-Fixes camelCase-Snippets). Misc: composer.lock unter Versionskontrolle, Kirby 5.4.0 in architecture nachgezogen.
Für Redakteure

Form-Builder im Panel: Formulare werden aus Feld-Bausteinen (Text, E-Mail, Auswahl, Pflichtfeld-Markierung) und Bestätigungstext zusammengesetzt. Eingehende Nachrichten erscheinen als Page-Typ im Panel-Inbox. Bestätigungs- und Benachrichtigungs-Mails laufen über projekt-eigene Mail-Templates. Theme-System: Hintergrund-Variante und Farbschema werden unabhängig pro Sektion gesetzt — die Kombination ‚dunkler Hintergrund mit Akzent-Trenner' entsteht aus zwei separaten Theme-Bausteinen statt aus festen Kombinationen. Impressum und Datenschutz auf 2026er-Stand neu verfasst.

Für Besucher

Formulare unter /karriere und /kontakt sind funktional. Eingehende Anfragen erzeugen eine Bestätigungs-Mail an den Absender und eine Benachrichtigung an die Redaktion. Mehrere Korrekturen am Mobile-Layout: Hero-Kontrast, Slider, Logo-Streifen, CTA-Buttons. Impressum und Datenschutzerklärung sind auf 2026er-Stand.

SEO & Performance

Theme-System rendert nur die CSS-Variablen, die in der jeweiligen Sektion benötigt werden — die früher generierten kombinatorischen Variantenklassen entfallen. E-Mail-Versand zentralisiert über eine Mailer-Konfiguration statt verstreuter Hooks. Build-Reproduzierbarkeit: composer.lock unter Versionskontrolle, Kirby-Version in architecture.md dokumentiert.

27 Commits in diesem Zyklus
  • c47b35fd2026-04-29chore: trail-logs (in-flight vor v08)
  • 13d96c6f2026-04-29chore: trail-logs + forms-mail-templates doc vor release v08
  • dca700142026-04-29content(legal): Datenschutz Borlabs raus, AGB-Platzhalter, Logo-Varianten
  • 2ecc1d782026-04-28content(legal): Impressum + Datenschutz neu angelegt fuer 2026
  • 81d99cdd2026-04-28chore(deps): composer.lock unter Versionskontrolle nehmen
  • 351dda102026-04-28fix(blocks): camelCase-Snippets fuer extended-Bloecke wiederherstellen
  • f2c9a3452026-04-28fix(home-mobile): Hero-Partner-Logos fuellen Mobile-Zelle aus
  • 85d604fd2026-04-28fix(home-mobile): Phase 1 — Hero-Kontrast + Slider-Bug + Logos + CTA
  • 556928342026-04-28delegated: Mobile-Fidelity-Iteration (Home + KI + Karriere)
  • a35c4d1d2026-04-28fix(wp): theme-system verify[6] auf grep-only umstellen (test nicht in allowlist)
  • b4da85de2026-04-28fix(theme): groessere Ueberschriften pure-weiss, muted-Text hoeher gehoben
  • 17f5e8932026-04-28feat(theme): Phase 7 — Cleanup + Doku
  • e541acc22026-04-28feat(theme): Phase 5 — variante-Felder entfernt + Content-Migration
  • 7d54a9532026-04-28feat(theme): Phase 4 — Composite-Blocks lokal invertiert
  • fa6b9fc42026-04-28feat(theme): Phase 3 — Block-SCSS auf Custom-Properties migriert
  • 3480205e2026-04-28feat(theme): Phase 2 — Layout-Snippet schreibt data-theme="invertiert"
  • eac542692026-04-28feat(theme): Phase 1 — CSS-Custom-Properties + Kontrast-Lift in Tokens
  • 706c10a62026-04-28delegated: Theme-System Refactor (data-theme + CSS-Custom-Properties + Composite-Override)
  • 21be291c2026-04-28fix(blocks): camelCase-Doublets aus Index entfernen
  • b3a4a86b2026-04-28content(home): logo-strip rang.png — weiss-eingefaerbte Variante
  • 9a85d22b2026-04-28fix(forms): Test-Section auf mailTest umbenennen (verify-Constraint)
  • 40c8ab892026-04-28draft: kamperdev/forms v0.2.0 — HTML-Mail-Templates + zentraler SMTP-Pfad
  • 058249ea2026-04-27docs: kirby 5.4.0 in architecture.md nachgezogen
  • a18de70d2026-04-26draft: kamperdev/forms v0.1.0 + Module-Bereich + Layout-riesig
  • 609709742026-04-25fix: 4 hinzugefuegt (45 Dateien)
  • 0b1cb71c2026-04-25delegated: kamperdev/forms — Plugin v0.1.0 (Builder, Inbox, Block, Testseite)
  • 1d6e3bd82026-04-24report: release-report aktualisiert (7 Releases, 196 Commits)
v07
Phase abgeschlossen am 24.04.2026
v07: Image-Pipeline Follow-ups (srcset-Verdichtung, sizes am Layout-Span, eager-LCP-Heuristik, Site/Page-Quality-Slider), Galerie Editorial-Mosaic + Format-Presets + Loop-Setting, PhotoSwipe smoother Zoom mit Kirby-native srcset-Presets, Slideshow-Bugfixes (leerer Bereich, Filmstreifen-Sync, Ratio), Focus-Point/Annotation/Lightbox-Caption flaechendeckend
Für Redakteure

Bildqualität an zwei Ebenen einstellbar: globaler Standardwert für die ganze Website und Override pro Seite. Neuer Galerie-Stil ‚Editorial Mosaic' (asymmetrische Bildanordnung) ergänzt die bestehenden Raster-Layouts. Pro Galerie wählbar: Format-Voreinstellung (Querformat, Hochformat, Quadrat) und Endlos-Schleife. Bild-Eigenschaften (Fokuspunkt, Caption, Description) sind in allen Block-Typen mit Bildern einheitlich verfügbar.

Für Besucher

Bilder werden in einer auf Endgerät und Bildschirm-Größe abgestimmten Auflösung ausgeliefert, gerade auf Smartphones bei kleineren Dateigrößen. Lightbox-Animation überarbeitet: stufenlose Zoom-Animation statt Hard-Cut. Galerien sind alternativ im Mosaic-Layout (asymmetrisch) statt im Raster-Layout darstellbar.

SEO & Performance

Responsive Bilder mit srcset/sizes: pro Bildanzeige wird die zur Bildschirm-Auflösung passende Variante ausgeliefert, kein Über-Sampling auf Mobilgeräten. Erstes Bild im Above-the-fold-Bereich wird per fetchpriority=high priorisiert, alle weiteren Bilder mit lazy-loading. Reduziert das übertragene Datenvolumen pro Seitenaufruf, besonders auf Mobilgeräten.

25 Commits in diesem Zyklus
  • 9d37b6d52026-04-24chore(content): karriere.txt re-serialisierte Panel-Saves
  • 12affbb82026-04-24feat(galerie): Loop-Setting + Blueprint-UX-Redesign
  • 805031b02026-04-24fix(galerie): Slideshow leerer Bereich + Filmstreifen-Sync
  • 682a1eee2026-04-24delegated: vd-galerie Slideshow-Bugs: leerer Bereich, Filmstreifen-Sync, Ratio-Sichtbarkeit
  • e6b1c8db2026-04-24docs(galerie): PhotoSwipe-Spec-Verweis im Snippet, schliesst WP-002
  • 362f26d52026-04-24chore(content): Karriere — Mosaic-Test-Galerie mit varianten Formaten
  • 9caa30012026-04-24feat(galerie): Editorial-Mosaic-Mode mit Format-Presets pro Bild
  • 086e99472026-04-24chore(content): Focus-Point fuer office-gallery-1, karriere-Layout re-serialisiert
  • 9e807a6a2026-04-24feat(files+picture): Annotation flaechendeckend, Lightbox-Caption, Focus-Point respektiert
  • 80d3a4272026-04-24feat(galerie): Blueprint kontextuell, Stagger-Reveal, Editorial-Animationen, PhotoSwipe-Settings
  • fcd1f9cc2026-04-24docs(arch): Site-wide-Settings + Page-Override-Pattern dokumentiert
  • 0bb6fe912026-04-24feat(image-pipeline): srcset-Verdichtung, isFirstLayout-Hint, Hero-eager, Upload-Cap
  • d51876452026-04-24feat(image-quality): Site/Page-Slider, Quality-Matrix, Cache-Sweep
  • a5cb3b342026-04-24fix(reset): img/video height: auto, damit CSS aspect-ratio greift
  • 7e818def2026-04-23chore(wp): delegated WP-005 "Image-Pipeline Follow-ups"
  • 339d02d02026-04-23feat(image-pipeline): Layout-BG-Images via picture-Snippet (Iter 6/6 — WP-004 finale)
  • d69de5882026-04-23feat(image-pipeline): Audit-Rest — imageextended, vd-logos, vd-standort, vd-ausbildung, vd-team-moment, vd-use-cases, vd-seo-content (Iter 5/6)
  • 0a17c43c2026-04-23feat(image-pipeline): Mittlere Offenders — cta, team-grid, logo-strip, bewertungen (Iter 4/6)
  • 2af3e73d2026-04-23feat(image-pipeline): Byte-Elefanten — dringlichkeit, team-teaser, case-studies (Iter 3/6)
  • f5c4e0ff2026-04-23feat(galerie): span-aware sizes + components/picture nutzen (Iter 2/6 WP-004)
  • 783e28292026-04-23feat(image-pipeline): Infrastructure fuer WP-004 — Presets, picture-Snippet, Span-Propagation
  • 058fb3262026-04-23feat(inspect): DOM-Inspektions-Tool (Playwright) fuer browser-resolved Fragen
  • 5e8a879c2026-04-23chore(wp): neue Delegated-WPs fuer Frontend-Inspection + sitewide Bildgroessen
  • 65a6809c2026-04-23feat(galerie): PhotoSwipe smooth zoom + Kirby-srcset-Presets mit picture/AVIF/WebP
  • 6e8b99fb2026-04-23report: release-report aktualisiert (6 Releases, 171 Commits)
v06
Phase abgeschlossen am 23.04.2026
Writer-Marks: Akzent-Unterstrich + Akzent-Emphasis, Glossar mit zentraler Term-Verwaltung
Für Redakteure

Drei neue Inline-Hervorhebungen im Texteditor: animierter Akzent-Unterstrich, Akzent-Hervorhebung und Glossar-Verknüpfung. Glossar-Einträge werden auf einer eigenen Seite gepflegt und können von überall im Site-Text per Mausklick verlinkt werden — ein neuer Eintrag ist sofort auf allen Seiten verfügbar.

Für Besucher

Hervorgehobene Wörter im Text spielen eine einmalige Akzent-Animation ab, wenn sie in den Viewport scrollen. Bei einem Glossar-verknüpften Begriff erscheint die Erklärung beim Mouseover als Tooltip, ohne dass die Seite gewechselt werden muss.

SEO & Performance

Glossar-Daten werden pro Seite gefiltert ausgeliefert: Pro Seitenaufruf werden nur die Begriffe geladen, die im Seiteninhalt tatsächlich verlinkt sind — auf Seiten ohne Glossar-Verknüpfungen wird das Glossar gar nicht ausgeliefert. Reduziert die übertragene Datenmenge bei vielen Unterseiten.

2 Commits in diesem Zyklus
  • 11729be72026-04-23feat(writer-marks): Custom-Marks accent-underline/emphasis + Glossar mit zentraler Term-Verwaltung
  • ea8ba0c22026-04-23report: release-report aktualisiert (5 Releases, 169 Commits)
v05
Phase abgeschlossen am 23.04.2026
UI-Polish Batch 1 (Fokusthema-Link, Header-CTA, Rezensionen-Slider Mobile, Branding, Favicon, Burger-Cursor), Video-Backdrop Play-Button + Fullscreen-Player + Loop-Toggle, Logo-Strip-Block (Hero-Snippets ersetzt, Team-Moment-Partner raus)
Für Redakteure

Logo, Favicon und Markenfarben sind an zentraler Stelle (Site-Settings im Panel) pflegbar. Video-Hintergründe haben einen Audio-Toggle und einen Vollbild-Player. Neuer Block-Typ ‚Logo-Streifen' für Partner-Logo-Reihen, ersetzt frühere fest verdrahtete Einzellösungen.

Für Besucher

Header überarbeitet, mit prominent platziertem CTA. Bewertungen-Slider scrollt auf dem Smartphone ohne Ruckeln. Video-Hintergründe lassen sich per Knopfdruck mit Ton in den Vollbild-Player schalten. Mehrere Detail-Korrekturen: Cursor-Hand am MegaNav, Hover-Verhalten überarbeitet, Fokusthema verlinkt.

SEO & Performance

Markenfarben und Schrift-Einstellungen sind als CSS-Custom-Properties an einer Stelle definiert — Änderung wirkt im gesamten Frontend ohne Code-Anpassungen an mehreren Stellen. Reduziert die Anzahl der Stellen, an denen Marken-Anpassungen vorgenommen werden müssen.

8 Commits in diesem Zyklus
  • 937c6a1f2026-04-23feat(logo-strip): neuer Block vd-logo-strip, Hero-Snippets ersetzt, Team-Moment-Partner raus
  • 04fc0b3a2026-04-23delegated: Hero: Logo-Strip-Block statt Service-Snippets + Partner-Anzeige aus Team-Moment raus
  • 3f8d523e2026-04-23feat(video-backdrop): Play-Button + Fullscreen-Player + Loop-Toggle
  • 34748d222026-04-23chore(reports): report-config angelegt, deploy.json.report.enabled aktiviert, _reports/** aus CASI-Kontext ausgeschlossen
  • 6fc2c1682026-04-23report: release-report aktualisiert (4 Releases, 164 Commits)
  • 9b0f08f92026-04-23delegated: Video-Hintergrund: Play-Button + Fullscreen-Player fuer Full-Video
  • a03c23602026-04-23feat(ui): UI-Polish Batch 1 (Fokusthema-Link, Header-CTA, Branding, Favicon, Burger-Cursor)
  • c1fa0cda2026-04-23delegated: UI-Polish Batch 1: Fokusthema-Link, Header-CTA soft, Rezensionen-Slider Mobile, Branding global, Favicon
v04
Phase abgeschlossen am 23.04.2026
Zyklus vom 22. auf 23. April mit hoher Commit-Dichte. Schwerpunkt Fidelity-Korrekturen plus Regional-Karte: implementiert auf Page-Blueprint-Ebene als Hintergrund-System, das mehrere Sektionen einer Seite überspannt — statt als Einzelblock.
WP-004 vd-regional Map-Pipeline v5, Fokusthema-Badge, Rezensionen-Slider + Kundenlogos, Team-Moment Fidelity, Writer-Marks/Glossar, Mobile-Menue-Fix
Für Redakteure

Niederrhein-Karte als Page-Blueprint-Hintergrund umgesetzt — keine Einzelblock-Lösung mehr, sondern als seitenweiter Hintergrund über mehrere aufeinanderfolgende Sektionen. Steuerung im Page-Blueprint. Außerdem neu: Block-Typ Rezensionen-Slider, Kundenlogos-Block und Fokusthema-Badge mit zentraler Begriffspflege.

Für Besucher

Niederrhein-Seite mit durchgehender Karte als Hintergrund über vier Sektionen (Standort, Bewertungen, Kundenlogos, Team-Moment). Im Menü auf dem Smartphone wurde das Öffnen/Schließen-Verhalten korrigiert.

SEO & Performance

Karten-Rendering nutzt Leaflet als Open-Source-Bibliothek. Karten-Kacheln werden vom eigenen Server ausgeliefert; externe Karten-Anbieter sind nur als Fallback konfiguriert. Effekt: weniger Drittanbieter-Abhängigkeit und unabhängige Verfügbarkeit, falls ein externer Tile-Server ausfällt.

20 Commits in diesem Zyklus
  • 432db4c32026-04-23chore(backdrop): Smoke-Test-Script, v4/v5-Clickdummy-Referenzen, .claude ignorieren
  • 0f037e832026-04-23feat(backdrop): Tile-Cache + Default-Preset + Prefetch-Script
  • 73bafa6a2026-04-23feat(backdrop): Map-Render-Pipeline v5 (map-backdrop.js + SCSS + Leaflet)
  • 8007790f2026-04-23feat(backdrop): Hintergruende-Abstraktion (Blueprints + Templating)
  • 7b4ce6892026-04-22delegated: Writer-Marks: Akzent-Unterstrich, Akzent-Emphasis, Glossar mit zentraler Term-Verwaltung
  • fb8aa9b02026-04-22feat(fokusthema): seitenweites Fokusthema-Fly-In aus Clickdummy
  • 9ca961492026-04-22feat(wp-004): Finalisierte Design-Entscheidungen + Blueprint für Zoom-Stufe und Mobile-Visibility
  • a10969412026-04-22delegated: Seitenweites Fokusthema-Fly-In (KiBadge) aus Clickdummy — zentral Panel-steuerbar
  • d7313d6c2026-04-22fidelity(reviews+logos+galerie): Slider-Polish + wiederverwendbare Dot-Indicator-Komponente
  • 62c92a142026-04-22feat(wp-004): Panel-Preset-Upload + Editor-HTML-Einbettung ergänzt, _reference/map/ als Quellort
  • 29cf53f72026-04-22delegated: Home: Rezensionen-Slider + Kunden-Logos — Fidelity + Dot-Indicator (wiederverwendbar) + Hover-Infos
  • b7049b3a2026-04-22fidelity(team-moment): Was wir Dir bringen — Fidelity + Counter + Rising-Bars + atomisiert
  • 28847cf32026-04-22delegated: vd-regional Map-Animation: Ghost→Live-Toggle mit lokalem Tile-Cache
  • cfbfc2e52026-04-22delegated: Home-Block 'Was wir Dir bringen': Fidelity + Partnerlogos + Counter-Animation + Rising-Bars
  • 61c621d52026-04-22fidelity(mobile-menu): Clickdummy-Abgleich — Reihenfolge, Roboto, Case-Study-Card, Telefon
  • 7d598b382026-04-22delegated: Mobile-Menü Fidelity-Fix (iterativ, Clickdummy-Abgleich)
  • 848c3f182026-04-22feat: CLAUDE.md fuer Claude Code generiert
  • 1ccbbbbd2026-04-22feat: CLAUDE.md fuer Claude Code generiert
  • 9592bf962026-04-22draft: wp-2026-04-22-001 Mobile Navigation + vd-burger Animation
  • 727ff7a32026-04-22chore: gitignore builds/ komplett — Releases manifestieren sich via Git-Tags, nicht mehr via Repo-Ordner (Release-Workflow Schritt 8)
v03
Phase abgeschlossen am 22.04.2026
Erster Zyklus nach Workflow-Migration. Karriere- und KI-Seite vollständig, Fidelity-Toolchain mit Playwright-Screenshots, Panel-WYSIWYG, Galerie-System mit Swiper/PhotoSwipe, Phase-3-JS, Release-Policy etabliert.
erster echter zyklus nach workflow-migration
Für Redakteure

Live-Vorschau im Editor (WYSIWYG): Texte werden beim Tippen ungefähr im Endlayout dargestellt, statt in roher Auszeichnungssprache. Karriere-Seite und KI-Seite sind ab v03 vollständig pflegbar. Neu im Workflow: Release-Stände (z.B. /v03/) sind ab Setzen unveränderlich; Änderungen laufen ausschließlich auf der Staging-Version.

Für Besucher

Karriere-Seite und KI-Seite live, beide nach Designentwurf umgesetzt. Bildergalerien mit Touch-Wisch auf dem Smartphone, Lightbox-Vergrößerung beim Antippen.

SEO & Performance

JavaScript wird über esbuild gebündelt — kleinere Dateigrößen, weniger HTTP-Requests pro Seitenaufruf. Außerdem: automatischer Screenshot-Vergleich (Playwright) zwischen Designentwurf und gerenderter Seite, um Abweichungen vor Auslieferung zu erkennen.

77 Commits in diesem Zyklus
  • 58fae0322026-04-22feat: post_deploy-Hook für composer install im Staging (deterministisch, keine Version-Updates)
  • e80b4d782026-04-22feat: Kirby Match-Logic Config (Panel/URL/Debug nach URL-Pfad, Release-Workflow Schritt 5)
  • af9e84ee2026-04-22delegated: Mobile Navigation + vd-burger Markenzeichen-Animation
  • f12fc6e82026-04-22chore: _casi/deploy.json angelegt (kirby-public, Schritt 2 Release-Workflow)
  • d305e17d2026-04-22casi: decision D75 (Staging-Sync assets+site)
  • 25019a472026-04-22staging: vollstaendiger sync von public/ (assets + site) — phase-3-js, vd-seo-content, reveal, scroll-to-top, mobile-carousel
  • a2928a6d2026-04-22casi: decision D74 (Lichtung-Sync + WP-Cleanup)
  • b7b9bd8f2026-04-22wp: entferne 7 erledigte WPs (wp-2026-04-16-001 bis -007, alle bereits in master integriert)
  • 107ca5002026-04-22staging: sync ki-automatisierung.txt mit lichtung-content (public/content)
  • c7c1abc92026-04-16draft: wp-2026-04-16-007 Iteration-2 Polish (vd-seo-content + Hero-Pill + Crosslinks-Flex + FAQ-Plus)
  • de825b772026-04-16wp: anlege wp-2026-04-16-007-ki-iteration2-polish
  • 3d091f112026-04-16draft: wp-2026-04-16-005 Phase 3 (Frontend-JS-Interaktivitaet)
  • 10dcb1b22026-04-16staging: refresh from master (recovery nach externer Stoerung) — KI-Seite-Fidelity + Phase3-JS + KI-Bereich-Fixes
  • bb18f95a2026-04-16draft: wp-2026-04-16-006 KI-Bereich-Fixes (Haltung, Vorteile, Process-Block)
  • 76e961f52026-04-16wp: anlege wp-2026-04-16-006-ki-bereich-fixes
  • 7091b3d82026-04-16wp: anlege wp-2026-04-16-005-phase3-js
  • a9b055e02026-04-16draft: wp-2026-04-16-004 Fidelity KI-Seite (Schema-Erweiterungen + SCSS-Polish)
  • b3258a402026-04-16staging: refresh from master (re-run)
  • 09ebeb6a2026-04-16wp: anlege wp-2026-04-16-004-ki-fidelity-block-fuer-block
  • 9f6fed532026-04-16draft: wp-2026-04-16-003 livereload-Snippet entfernen
  • c0315b522026-04-16wp: anlege wp-2026-04-16-003-livereload-entfernen
  • a34755cf2026-04-16draft: wp-2026-04-16-002 vd-quiz-Block + Sammler-Blueprint loesungen
  • e7e1fcec2026-04-16staging: refresh from master — Karriere / KI-Seite / Panel-WYSIWYG / Fidelity-Toolchain (erster Rollforward unter neuer Policy)
  • 4564290b2026-04-16chore: release-policy groundwork — gitignore builds/vXX-excludes + CLAUDE.md builds/-rule
  • daa57aec2026-04-16wp: anlege wp-2026-04-16-002-quiz-block (vd-quiz mit Site-Plugin)
  • 82322c202026-04-16draft: wp-2026-04-16-001 KI-Seite Iteration 1 (Aufbau + Snippets + Nav-Fix)
  • f24776dd2026-04-15delegated: KI & Automatisierung: Seite nach Clickdummy aufbauen (Iteration 1)
  • 098774d82026-04-16draft: wp-015 spalten-fidelity (home + karriere, alle pakete)
  • f3a776762026-04-15fix: 3 geaendert (3 Dateien)
  • c89a11a22026-04-15draft: wp-013 layout-column-gap + wp-014 nerds-macher-fidelity
  • 14ebd44e2026-04-15delegated: 3-Spalten-Sections: Clickdummy-Fidelity-Check (alle 3-Spalter)
  • 3f0ebee12026-04-15delegated: Nerds-Macher-Menschen-Section: Clickdummy-Fidelity (Typo + 'Hier ist noch Platz')
  • 7f261fc62026-04-15delegated: Layout-Spalten-Gap: mittlere Abstandsstufe auf Layout-Ebene
  • 7194e5072026-04-15draft: section-padding tokens auf vh-basis umstellen
  • e10dd39a2026-04-15delegated: Gap-Block relative Abstaende auf vh-Einheiten umstellen + Content-Migration bei Bedarf
  • 7314fcdf2026-04-15feat(panel): wysiwyg+columns fuer alle komposit-bloecke, labels informativ, button felder max 3 pro zeile
  • c0fedfab2026-04-15delegated: Panel-WYSIWYG: wysiwyg:true + structure columns: fuer Komposit-Bloecke (kein Plugin)
  • 05d898782026-04-15delegated: Panel-Fidelity: label-Strings fixen, WYSIWYG-Inline-Editing wo moeglich, Pfad zu Custom-Previews
  • 2af5920c2026-04-15fix(panel+galerie): neue bloecke in layouts/default.yml fieldsets registriert (vd-galerie, vd-liste-check, vd-benefits-karten, vd-hinweiskarte); vd-buero raus; photoswipe fade-transition statt zoom
  • c0fd59682026-04-15fix(galerie): svg-pfeile, navigation-option (thumbs/dots/none), pagination-count oben rechts, blueprint sauberer (select statt toggles)
  • 951218e02026-04-15fix(galerie): layout-kollaps beheben (minmax 0 1fr im grid, width 100% auf main, padding-bottom aspect-hack), blueprint robust (toggles statt number), loop disabled
  • dca153612026-04-15feat(galerie): vd-galerie (grid+slideshow+lightbox) mit swiper+photoswipe via esbuild-bundle; vd-buero abgeloest; js-build-toolchain in tools/js-build
  • 9ec8c9662026-04-15feat(karriere/benefits): atomarer re-entwurf mit 3 neuen bloecken (vd-liste-check, vd-benefits-karten, vd-hinweiskarte) + karriere-o-mat
  • f7c2c7b02026-04-15delegated: Allgemeine Galerie-Komponente (Büro etc.): Grid+Slideshow, Crops, PhotoSwipe — dt-wesel-Muster
  • 2b7e31052026-04-15delegated: Karriere/Benefits: atomarer Re-Entwurf 'Arbeiten, wie es zu dir passt.' + Karriere-O-Mat
  • bbbcd0b72026-04-15feat(karriere): seite aufgebaut, 7 neue block-snippets+scss, zitat-block ueberarbeitet, nav-url-resolver
  • 8705f5f62026-04-15delegated: Karriere-Seite: Blocks implementieren und Content anlegen (Struktur, kein Pixel-Fidelity)
  • cc8a527c2026-04-15fidelity(home/methode): unterzeile breite, accent saffron, dann-machen kleiner
  • 3dfa8f902026-04-15delegated: Home-Fidelity: 'So arbeiten wir' — Unterzeilen-Breite, Accent-Farbe, Heading-Skala
  • f171863b2026-04-15feat: fidelity toolchain (playwright + livereload + skill)
  • b7e6d9a42026-04-15delegated: Fidelity-Toolchain: Playwright-Screenshots, Clickdummy-Setup, Live-Reload, Skill 'clickdummy-fidelity'
  • 3b90b4e32026-04-15wp: mark wp-003 + wp-004 als completed
  • 33e7e4182026-04-15cleanup: entferne Root-Level kirby/vendor/media/site (Leftover wp-002)
  • 578dee332026-04-15delegated: Cleanup: Root-Level kirby/, vendor/, media/, site/ entfernen (Leftover aus wp-002-restructure)
  • 444c38622026-04-15delegated: Fix: vendor/autoload.php fehlt nach Rename gestell-local -> lichtung
  • b85b9cfe2026-04-15docs: lokaler Pfad gestell-local \u2192 lichtung/projekte
  • ae72febd2026-04-15fix: entferne kirby/views/ (test)
  • 5143d9ae2026-04-15fix: .gitignore defensiv erweitern (root-level kirby/vendor/media/site blockieren)
  • 21926bc12026-04-15fix: cleanup stray kirby/vendor/site/media at repo root
  • e12c224b2026-04-15restructure: Kirby-Webroot nach public/ verschoben
  • bb0e70d22026-04-15delegated: Ordnerstruktur: Kirby-Projekt nach /public/ separieren (Neuanlauf)
  • 87697d272026-04-15delegated: Ordnerstruktur: Kirby-Projekt nach /public/ separieren
  • b58149e82026-04-15draft: home.txt content update
  • 2979e1902026-04-15docs: SCSS-Workflow Referenz auf XAMPP-URL aktualisiert
  • 3a82172b2026-04-15docs: Lokale Entwicklung auf XAMPP umgestellt
  • 0b7951322026-04-15chore: XAMPP-Migration — .htaccess erstellt, router.php entfernt
  • 2d6aaedd2026-04-10fix: 25 hinzugefuegt, 1 geaendert (26 Dateien)
  • 8590d0372026-04-10fix: 1 geaendert, 28 geloescht (29 Dateien)
  • 1458c7912026-04-10fix: 31 hinzugefuegt, 3 geaendert, 2 geloescht (36 Dateien)
  • 0f6c0e272026-04-10fix: 1 geaendert, 26 geloescht (27 Dateien)
  • 772ad4e02026-04-10deploy: 5 hinzugefuegt, 26 geaendert, 118 geloescht (149 Dateien)
  • 0f23a4ab2026-04-10deploy: 118 hinzugefuegt, 4 geaendert (122 Dateien)
  • 3d31cc282026-04-10draft: Home Fidelity Runde 2 — Button-Icons, Hero-Overlay, Schritte-Grid, CaseStudies, Herausforderungen, CTA-Blueprint, Service-Snippets, Router
  • c399d2622026-04-09draft: Service-Snippets Hero-flush + Footer-Logo linksbündig
  • 239db54d2026-04-09draft: vdFile/vdFiles Helpers + Snippet-Migration + Content-Bilder-Fix
  • a9dfe68f2026-04-09fix: staging URL-Config
  • 3dd5ba372026-04-09fix: Kirby URL-Config pro Version (v02 + staging)
v02
Phase abgeschlossen am 09.04.2026
Zwischen v01 und v02 lag die Home-Fidelity-Phase mit Screenshot-basierter Sektions-Methodik. Viele Iterationsschritte sind durch automatische audit_and_commit-Einträge erfasst und in D48 inhaltlich konsolidiert.
Home-Seite vollständig nach Designentwurf umgesetzt. Heading-System, MegaNav, Footer, Komposit-Blöcke (Schritte, Case-Studies, Herausforderungen, CTA), vdFile-Helper, Mobile-Layout-Korrekturen.
Home mit Layout+Block-System — MegaNav, Footer, Hero, 21 atomare/komposit Blöcke, Mobile-Responsive, Heading-System, vdFile-Helpers
Für Redakteure

21 Block-Typen im Layout-Editor verfügbar: einfache Bausteine (Überschrift, Text, Bild, Button, Abstand) und Komposit-Sektionen (Schritte, Case-Studies, Herausforderungen, Call-to-Action). Die Komposit-Sektionen sind nicht starr — eine Schritte-Sektion lässt sich mit 4, 5 oder 6 Einzelschritten füllen, statt aus festen Varianten gewählt werden zu müssen.

Für Besucher

Startseite vollständig umgesetzt: MegaNav mit Vorschau-Karte, Hero-Bereich, Footer mit Social-Media-Icons. Layout responsiv (Smartphone und Desktop). Erste Seite, deren Inhalt vollständig dem Designentwurf entspricht.

SEO & Performance

Heading-System getrennt: semantische Heading-Tags (h1, h2 — für Suchmaschinen) und visuelle Display-Klassen (XL-Schrift ohne Heading-Bedeutung). Damit bleibt die Suchmaschinen-Hierarchie konsistent, auch wenn das Design große Schrift an Stellen vorsieht, die keine Überschrift sind. Außerdem: Layout-Sprünge beim Initial-Load (CLS) sind beseitigt.

27 Commits in diesem Zyklus
  • 5d6617812026-04-09release: v02 — Home aufgebaut, Layout+Block-System, Navigation, Footer, Komposit-Bloecke
  • 427da0ab2026-04-09chore: wp-001 durch wp-002 ersetzt (Home Fidelity fokussiert)
  • eb94ea192026-04-09delegated: Home Fidelity: Pixel-genaues CSS + fehlende Capabilities, Screenshot-verifiziert
  • b20004ce2026-04-09delegated: Karriere + KI-Seite aufbauen, Home-Polish, Fidelity-Runde
  • da116ad92026-04-09chore: 2 geaendert (2 Dateien)
  • 34e224ba2026-04-09draft: Mobile-Responsive + URL-Feld-Fixes alle Blueprints
  • 4edfb5702026-04-09draft: Hero Buttons inline, Service-Snippets, MegaNav komplett, Button type:text Fix
  • 9cc2cb502026-04-09draft: Button-Fix, MegaNav, Footer mit Social-Icons, Heading p-inherit
  • 775e9b662026-04-09draft: Korrekte Reihenfolge, echte H1, Team-Foto atomar, kein Vertrauen
  • bc21bc9b2026-04-09draft: Heading-System fix (display-level, p-inherit, korrekte Token-Zuordnung)
  • 449ee17a2026-04-09draft: Top-10 Fidelity-Fixes (Hero, Gradient, Buttons, Logos, Service-Dir, CTA, Headings)
  • deb2e2fa2026-04-09draft: CSS-Fixes + Schritte Lead + Home 11 Sektionen komplett + Blueprints bereinigt
  • 94396cf12026-04-09draft: Home komplett 11 Sektionen + Komposite bereinigt (overline/heading raus)
  • bf6af5a02026-04-09draft: Home-Content mit Bildern + Snippet-Fixes fuer File-UUIDs
  • 679656732026-04-09draft: Home-Content komplett mit echtem Clickdummy-Content (7 Layouts)
  • dda97c342026-04-09draft: Home komplett - 7 Komposite + SCSS (wp-2026-04-09-013)
  • 4352c6e02026-04-09fix: Environment-spezifische URL-Config für Staging-Server
  • 3b6d9b9c2026-04-09docs: Kirby-Invarianten in architecture.md (Config, Medien, Environments)
  • 2f6a93862026-04-09delegated: Home komplett: 7 fehlende Komposite + SCSS + Content + Fidelity
  • d5bd53742026-04-09delegated: Home komplett: Fehlende Komposite + Content + Fidelity-Abgleich
  • c78b9d032026-04-09draft: Assets komplett + Bilder-Meta + Config-Fix + Blueprint-Fixes
  • 17ec37722026-04-09draft: Assets + Branding + Navigation + 6 Komposit-Bloecke Wave 1 (wp-2026-04-09-012)
  • ff5eb43f2026-04-09delegated: Assets + Branding + Navigation + Komposit-Blöcke Wave 1
  • 75eec2c82026-04-09fix: Kirby URL-Config für Sub-Path Routing
  • b5967be32026-04-09gestell: WP-010 completed
  • dfa401972026-04-09fix: WP-010 Verify-Check content/loesungen → content/2_loesungen
  • 54b3ddeb2026-04-09draft: Seiten-Stubs + Karriere/KI auf Layout-System (wp-2026-04-09-010)
v01
Phase abgeschlossen am 09.04.2026
Vor Projektstart am 9. April liefen Vorarbeiten ausserhalb des Gestell-Workflows: Merge der drei Figma-Make-Clickdummys (Home, Karriere, KI) zu einem laufenden Monorepo, Ableitung der Panel-Konventionen aus dt-wesel.de, Block-Inventar. Diese Phase ist im Decision-Log nicht abgebildet.
Kirby 5.3.3 installiert. Sub-Path-Routing via Caddy, Panel-Account vordefiniert, erste Block-Typen end-to-end, Seiten-Stubs, Layout-und-Block-System in Grundzügen.
Kirby 5.3.3 live — Erster Meilenstein mit Panel-Account, Caddy-Routing (php_fastcgi + handle_path) und URL-Config für Sub-Path-Deployment
Für Redakteure

Kirby-Panel installiert, Login funktioniert. Seitentypen und Felder noch in Grundstruktur — Inhalte zu pflegen ist hier noch nicht sinnvoll, weil die Feldstruktur in den nächsten Phasen weiter wächst.

Für Besucher

Demo-Seite unter dem Sub-Pfad /validdata/ erreichbar. Inhaltlich noch leer — die Seite wird vom Server ausgeliefert, das Pfad-Routing funktioniert.

SEO & Performance

Sub-Path-Routing eingerichtet (Caddy → Kirby). Die Website läuft unter /validdata/ statt unter eigener Domain — bedingt zwei abgestimmte Konfigurationen (Caddy-Reverse-Proxy plus Kirby-URL-Settings). Beides ab v01 stabil; Voraussetzung für alle später definierten URLs.

37 Commits in diesem Zyklus
  • 590aae162026-04-09feat: Panel-Account vordefiniert, v01 Build mit Account
  • 70f591992026-04-09delegated: Seiten-Stubs + Karriere/KI auf Layout-System umstellen
  • d290fc7c2026-04-09draft: Panel-Plugins (Icons + Collapse/Expand) + Layout-Settings inline fix
  • 5341df9f2026-04-09draft: 7 Gaps geschlossen - dt-wesel Konventionen (wp-2026-04-09-009)
  • fd2cc9772026-04-09delegated: Stoßrichtung 0: Atomare Blöcke + Layout-System an dt-wesel-Konventionen angleichen
  • 2952a7102026-04-09fix: exclude patterns für nested node_modules und große Binär-Verzeichnisse
  • 3cd5992d2026-04-09draft: Architektur-Korrektur: Layout+Block-System statt monolithische Bloecke (wp-2026-04-09-008)
  • 446ad7142026-04-09feat: CLAUDE.md fuer Claude Code generiert
  • 009bd75b2026-04-09delegated: Architektur-Korrektur: Layout+Block-System statt monolithische Blöcke
  • 6a9ce4be2026-04-09fix: WP-007 Verify-Check auf composer.json statt vendor/getkirby/cms
  • 98d62e0d2026-04-09draft: kirby/ aus Git entfernen, per composer installieren
  • c0d050892026-04-09draft: Kirby-Setup + 4 Beispiel-Bloecke end-to-end (wp-2026-04-09-007)
  • 8ce316902026-04-09draft: Design-Tokens, Komponenteninventar und Kirby-Blueprints (wp-2026-04-09-006)
  • 2d6c8eaf2026-04-09delegated: Kirby-Setup + 3-4 Beispiel-Blöcke end-to-end
  • 050d0ad22026-04-09fix: React Router basename auf /validdata/extra/clickdummy korrigiert
  • 83665ca32026-04-09fix: Vite base auf /validdata/extra/clickdummy/ korrigiert
  • e6294c582026-04-09delegated: Design-Tokens + Blueprints aus Clickdummys ableiten
  • a50f9d7a2026-04-09draft: Shared Components harmonisieren (wp-2026-04-09-005)
  • 3a9c2a302026-04-09feat: preview_links in context.json für validdata
  • bbb7d9002026-04-09feat: CLAUDE.md fuer Claude Code generiert
  • 8d9197172026-04-09delegated: Clickdummy: Shared Components harmonisieren
  • ac859a472026-04-09docs: CLAUDE.md Build-Regel fuer _reference/ angepasst
  • 711482bf2026-04-09feat: CLAUDE.md fuer Claude Code generiert
  • aa52babc2026-04-09chore: Erledigte Workpackages entfernt (wp-002 superseded, wp-003 abgeschlossen)
  • dcdf0ebd2026-04-09chore: Altes HINWEIS.md entfernt, ersetzt durch ROUTING.md
  • 0c12866c2026-04-09docs: Caddy-Hinweis aktualisiert (zentral in gestell/caddy/)
  • 75cc57012026-04-09chore: Decisions und Session-Logs synchronisiert
  • 912655ae2026-04-09fix: Navigation-Fix aus lokalem Clickdummy-Merge (cherry-pick)
  • 55b8913b2026-04-09fix: Vite outDir auf _extras/ korrigiert (D8)
  • 9f280a512026-04-09draft: package-lock.json aus Tracking entfernen
  • 390f4cee2026-04-09draft: Clickdummys zu Gesamt-Clickdummy gemergt (wp-2026-04-09-003)
  • 95062d202026-04-09chore: .gitignore für _extras/ und Caddy-Hinweis
  • 305a0c982026-04-09delegated: Clickdummys zu Gesamt-Clickdummy mergen (korrigiert)
  • d0e56cac2026-04-09feat: CLAUDE.md fuer Claude Code generiert
  • 9e434a952026-04-09delegated: Clickdummys zu Gesamt-Clickdummy mergen
  • 14777c4d2026-04-09docs: Kirby 4 → 5 (5.3.3) in architecture.md
  • c2c38e5f2026-04-09init: Projekt validdata angelegt
Unter der Haube

Tech-Stack.

CMS
Kirby 5.4.0
Frontend CSS
SCSS · BEM · vd-Prefix
Frontend JS
esbuild · Swiper · PhotoSwipe · Leaflet v5
Design-Quelle
3 Figma-Make-Clickdummys (React/Vite)
Server
Apache + PHP-FPM auf der Vorstellung (validdata.vorstellung.kamper.dev)
Orchestrierung
Gestell MCP · Forgejo · Auto-Push
Automatisierung
Playwright · post_deploy-Hook
Wie es weitergeht

Ausblick.

Stand v10: CMS-Datenmodell vollständig, Panel-Pflege für 4 ausgestaltete Seiten möglich. Cookie-Banner und Video-Einbindung sind im Panel konfigurierbar; das Kontaktformular ist live unter /kontakt.

Offene Themen für eigene Phasen: englischsprachige Variante, weitere Standorte (Strukturen vorhanden, Inhalte nicht), Detailseiten zu den Lösungs-Schwerpunkten. Inhaltliche Befüllung des CMS durch die Redaktion läuft parallel.

Im weiteren Verlauf werden kleinere Iterationen erwartet — neue Block-Typen oder Layouts auf konkreten Anlass, plus Wartungs-Updates für Kirby und Abhängigkeiten.

Begriffsleiste

Glossar.

Die im Report verwendeten Begriffe in einem Satz.

Release-Punkt
Akt im Gestell-Workflow, der den aktuellen staging-Stand als versionierten Webroot unter /vNN/ einfriert und auf master einen Tag setzt. Ab dann ist /vNN/ unveränderlich.
Phase
Arbeit zwischen zwei aufeinanderfolgenden Release-Punkten. Die Klartext-Spuren pro Karte beschreiben jeweils die Phase, die mit dem Punkt abgeschlossen wurde.
Vorstellung
Der laufende Stand unter validdata.vorstellung.kamper.dev, eigener Server fuer die Vorstellungen aller Kundenprojekte; wird per Gestell-Deploy aus dem Arbeitsstand aufgefrischt.
Decision
Strukturierter Eintrag im Projekt-Decision-Log mit Titel, Entscheidung, Begründung und Kontext. Persistiert über Session-Grenzen.
Commit
Einzelne Code-Änderung im Git-Verlauf. Mehrere Commits formen eine Phase, mehrere Phasen formen die Projekthistorie.
Block
Wiederverwendbares Inhaltselement im Kirby-Editor (Hero, Karten-Grid, Galerie etc.). Atomare Blöcke werden im Layout-Editor zu Sektionen komponiert.
Page-Blueprint
Strukturdefinition einer Seite im Kirby-Panel: welche Felder, welche Layouts erlaubt sind, optional welcher Hintergrund.