WaterBaby Serres — Schwimmschule für Babys & Kinder
Überblick
WaterBaby Serres unterrichtet Babys ab vier Monaten und Kinder bis zehn Jahre in einem beheizten Hallenbad im Elpida Resort. Die Website sollte zuerst griechische Eltern ansprechen und erst danach englischsprachige Besucher, ohne zu zwei Websites zu werden. Deshalb steht jeder sichtbare Text zweimal in derselben Datei, und der Umschalter blendet nur eine der beiden aus: eine URL pro Seite, kein Neuladen, kein Fetch, kein zweiter Seitensatz zum Pflegen — und das Griechische liest sich auch ohne JavaScript vollständig. Sechs Seiten tragen das Ganze — Start, Über uns, die beiden Programme, Galerie und Kontakt — mit den vier Kinderstufen vom Anfänger bis zum Fortgeschrittenen, der Ausrüstung und den Unterlagen, die Eltern brauchen, und einem FAQ. GSAP und ScrollTrigger liegen lokal statt auf einem CDN, und jede Animation ist additiv: nichts wird per CSS vorab versteckt, ein fehlgeschlagenes Skript hinterlässt also eine vollständige Seite statt einer leeren. Die Ankunftsanimation der Startseite lässt einmal pro Sitzung eine Welle durch das Viewport ablaufen und räumt sich über CSS-Keyframes selbst ab — sie kann niemanden hinter einem Overlay zurücklassen, selbst wenn das JavaScript stirbt. Strukturierte Daten decken Kurse, FAQ, Galerie und Breadcrumbs ab; eine llms.txt nennt die geprüften Fakten für KI-Assistenten und ist durch die Tests an die Seiten gebunden, damit beide nicht auseinanderlaufen. Einundzwanzig Node-Tests halten alles zusammen — Seitenstruktur, griechische Texte, die Weiterleitungs-Stubs, die Sicherheitseigenschaften des Loaders und den WCAG-Kontrast auf jeder orangefarbenen Fläche.
Herausforderungen
Eine zweisprachige Website bedeutet normalerweise alles doppelt — zwei Seitensätze, zwei URLs, zwei Gelegenheiten, das eine zu aktualisieren und das andere zu vergessen. Hier pflegt eine einzelne Trainerin die Seite, eine zweite Kopie jeder Seite wäre also Last statt Funktion. Griechisch musste zudem der echte Standard sein, lesbar bevor irgendein Skript läuft, denn das Publikum sind Eltern vor Ort. Und genau die Extras, die sich eine Schwimmschule wünscht — Ankunftsanimation, Scroll-Reveals, ein Lightbox — hinterlassen eine leere Seite, wenn ein Skript auf einem Handy mit schwachem Signal scheitert.
Lösungen
Beide Sprachen liegen inline in jeder Datei, und der Umschalter kippt nur ein hidden-Attribut: eine Seite zum Bearbeiten, eine URL zum Teilen, nichts zu synchronisieren; die Vorliebe steht im localStorage, und der Wechsel feuert ein Custom Event, auf das die Galerie hört. Nicht-Text-Strings — aria-labels, Platzhalter, Meta-Beschreibungen, sogar der Dokumenttitel — übersetzen über gepaarte Data-Attribute in derselben Funktion, damit eine übersetzte Seite keine unübersetzten Ecken hat. Bewegung ist per Regel additiv, und ein Test erzwingt es: CSS darf ein animiertes Element nie vorab verstecken, ein nicht geladenes GSAP kostet also nur die Animation. Das Ankunfts-Overlay wird hidden ausgeliefert und nur durch eine Klasse sichtbar, die JavaScript setzt, während sein Abgang ein CSS-Keyframe mit fill-mode forwards ist — ob das Skript aus, blockiert oder abgestürzt ist, das Overlay räumt sich ab. Bibliotheken liegen lokal, damit ein CDN-Ausfall die Bewegung nicht mitnimmt, und jeder der einundzwanzig Tests wurde geprüft, indem gezielt kaputt gemacht wurde, was er schützt.
Galerie

Startseite — Als Erstes sehen Eltern das Becken selbst

Philosophie — Die drei Zahlen, die Eltern beruhigen

Zwei Programme — Von vier Monaten bis zehn Jahren

Qualifikationen — Vier Nachweise, die Eltern prüfen können

Ausrüstung und Unterlagen — Die Fragen vor jeder ersten Stunde

Die Galerie — Fotos nach dem Moment bemessen, nicht nach dem Raster

Die Lightbox — Ein natives Dialog-Element, Tastatur zuerst

Kontakt — Wochenendzeiten und der Weg zum Becken

Startseite auf dem Tablet — Zwei klare nächste Schritte unter der Überschrift

Baby Swimming — Ein Programm, für das die Eltern mit ins Wasser gehen

Kinderschwimmen — Kleine Gruppen im Tempo jedes Kindes

Die Geschichte — Wer das Babyschwimmen nach Serres brachte, und wann

Galerie — Jedes Foto öffnet sich groß, per Tippen oder Pfeiltaste

Auf dem Smartphone — Buttons in voller Breite, in Daumenreichweite

Mobiles Menü — Beide Sprachen und die Telefonnummer gleich dabei

Programme auf dem Smartphone — Zuerst die Altersspanne

Stundenplan — Wochenendstunden, die zum Familienleben passen

Galerie auf dem Smartphone — Ein Foto nach dem anderen, in voller Breite

Lightbox auf dem Smartphone — Jedes Foto behält seine Bildunterschrift

Kontakt — Drei Wege zu einer Schule ohne Empfang