Seit dem 9. April 2026 entsteht das neue validdata.de im Gestell-Workflow. Die folgenden Zahlen zeigen den im Gestell dokumentierten 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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".
Über den Weiter/Zurück-Karten am Seitenende steht die Ansprache „Das könnte euch auch interessieren" in Plural-Anrede.
Keine neuen Panel-Felder oder -Schalter. Die Cookie-Einstellungen (Modus, Cookiebot-Kennung) im Tab Cookie-Hinweis bleiben unveraendert.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 der Website ändert sich nichts an der Darstellung. Die Korrektur betrifft die Bearbeitung im Panel und die Vorschau betroffener Seiten.
Keine Änderungen an SEO, strukturierten Daten oder Ladezeiten in diesem Release.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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.
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).
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.
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.
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.
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).
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.
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.
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.
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.
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-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.
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.
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.
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.
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.
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.
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://<uuid>-Referenzen via page() oder site->index->findBy uuid, file://<uuid> via $kirby->file(). Reduced-Motion-Praeferenzen werden auf drei Ebenen respektiert: Smooth-Scroll-Override, Animations-Skip, Parallax-Skip mit fixed-positioniertem Bild.
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.
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).
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.
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.
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.
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.
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.
UAT-Folge mit 16 Detailkorrekturen: 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Karriere-Seite und KI-Seite live, beide nach Designentwurf umgesetzt. Bildergalerien mit Touch-Wisch auf dem Smartphone, Lightbox-Vergrößerung beim Antippen.
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.
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.
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.
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.
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.
Demo-Seite unter dem Sub-Pfad /validdata/ erreichbar. Inhaltlich noch leer — die Seite wird vom Server ausgeliefert, das Pfad-Routing funktioniert.
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.
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.
Die im Report verwendeten Begriffe in einem Satz.