diff --git a/scripts/seed-tagespflege-moldovan.php b/scripts/seed-tagespflege-moldovan.php index 5539e7c..3de2e7c 100644 --- a/scripts/seed-tagespflege-moldovan.php +++ b/scripts/seed-tagespflege-moldovan.php @@ -396,7 +396,6 @@ $fuss = [ ['id' => 'fuss-rechtliches', 'type' => 'legal', 'props' => ['label' => 'Rechtliches'], 'style' => ['desktop' => ['fontSize' => '12px', 'justifyContent' => 'flex-end', 'gap' => '4px'], 'mobile' => ['justifyContent' => 'flex-start']], 'css' => "& a:hover{text-decoration:underline}"], - $text('fuss-hinweis-text', 'Gestaltungsentwurf · Beispieltexte & illustratives KI-Bild', ['desktop' => ['fontSize' => '12px', 'textAlign' => 'right', 'margin' => ['top' => '6px', 'bottom' => '0px']], 'mobile' => ['fontSize' => '11px', 'textAlign' => 'left']]), ]), ], '20px', ['justifyContent' => 'space-between', 'alignItems' => 'flex-start', 'borderWidth' => $nurOben('1px'), 'borderStyle' => 'solid', 'borderColor' => '#e7ebe4', 'padding' => ['top' => '18px', 'bottom' => '18px'], 'color' => '#78817b'], ['flexDirection' => 'column', 'gap' => '7px']), ], [ @@ -415,33 +414,59 @@ echo "Kopf- und Fußbereich angelegt\n"; * Stellen, die nur die Tagespflege selbst beantworten kann, stehen als „NOCH ZU PRÜFEN“ im Text, * statt erfunden zu werden – eine falsche Registerangabe ist schlimmer als eine fehlende. */ -$rechtsseite = static function (string $praefix, string $label, string $titel, string $vorspann, array $absaetze) use ($abschnitt, $kleinzeile, $heading, $text, $serif, $fliess, $emGruen): array { - $kinder = [ - $kleinzeile($praefix.'-label', $label), - $heading($praefix.'-h1', $titel, 1, [ - 'desktop' => [...$serif, 'fontSize' => '53px', 'margin' => ['bottom' => '25px']], - 'tablet' => ['fontSize' => '42px'], - 'mobile' => ['fontSize' => '38px'], - ], $emGruen), - $text($praefix.'-vorspann', $vorspann, [ - 'desktop' => ['fontSize' => '20px', 'lineHeight' => 1.7, 'color' => '@tinte', 'margin' => ['bottom' => '34px']], - 'mobile' => ['fontSize' => '18px'], - ]), - ]; +$rechtsseite = static function (string $praefix, string $label, string $titel, string $vorspann, array $absaetze) use ($section, $abschnitt, $row, $column, $kleinzeile, $heading, $text, $serif, $emGruen, $nurOben, $nurUnten): array { + // Oben ein ruhiges Band in der Farbe des Angebotsbereichs: Kleinzeile, Titel, Vorspann. + // Die Sektion bleibt voll breit; die Breite begrenzt erst der Inhalt darin. So steht der + // Text auf derselben Kante wie Marke und Menü im Kopf, statt am Fensterrand zu kleben. + $kopf = $section($praefix.'-kopf', [ + [...$kleinzeile($praefix.'-label', $label), 'layout' => ['effects' => ['entrance' => 'fade', 'delay' => 'none']]], + [...$heading($praefix.'-h1', $titel, 1, [ + 'desktop' => [...$serif, 'fontSize' => '59px', 'margin' => ['bottom' => '22px']], + 'tablet' => ['fontSize' => '46px'], + 'mobile' => ['fontSize' => '40px', 'margin' => ['bottom' => '16px']], + ], $emGruen), 'layout' => ['effects' => ['entrance' => 'rise', 'delay' => 'short']]], + [...$text($praefix.'-vorspann', $vorspann, [ + 'desktop' => ['maxWidth' => '640px', 'fontSize' => '19px', 'lineHeight' => 1.7, 'color' => '@gedaempft', 'margin' => ['bottom' => '0px']], + 'mobile' => ['fontSize' => '17px'], + ]), 'layout' => ['effects' => ['entrance' => 'rise', 'delay' => 'medium']]], + ], [ + 'desktop' => ['backgroundColor' => '@blass', 'borderWidth' => $nurUnten('1px'), 'borderStyle' => 'solid', 'borderColor' => '@linie', 'padding' => ['top' => '84px', 'bottom' => '72px']], + 'tablet' => ['padding' => ['top' => '64px', 'bottom' => '56px']], + 'mobile' => ['padding' => ['top' => '48px', 'bottom' => '40px']], + ]); + + // Darunter jeder Punkt als eigene Zeile: Zwischentitel links, Text rechts, getrennt durch + // eine feine Linie. Auf dem Telefon untereinander. + $punkte = []; foreach ($absaetze as $i => [$zwischentitel, $inhalt]) { - if ('' !== $zwischentitel) { - $kinder[] = $heading($praefix.'-h2-'.$i, $zwischentitel, 2, [ - 'desktop' => ['fontFamily' => 'body', 'fontSize' => '19px', 'fontWeight' => '700', 'letterSpacing' => '-0.02em', 'lineHeight' => 1.35, 'margin' => ['top' => '34px', 'bottom' => '12px']], - ]); - } - $kinder[] = $text($praefix.'-p-'.$i, $inhalt, $fliess); + $punkte[] = $row($praefix.'-punkt-'.$i, [ + $column($praefix.'-punkt-'.$i.'-titel', '' === $zwischentitel ? [] : [ + $heading($praefix.'-h2-'.$i, $zwischentitel, 2, [ + 'desktop' => ['fontFamily' => 'body', 'fontSize' => '17px', 'fontWeight' => '700', 'letterSpacing' => '-0.01em', 'lineHeight' => 1.5, 'color' => '@tinte', 'margin' => ['bottom' => '0px']], + ]), + ], [ + 'desktop' => ['flexBasis' => '280px', 'flexShrink' => 0], + 'tablet' => ['flexBasis' => '220px'], + 'mobile' => ['flexBasis' => 'auto'], + ]), + $column($praefix.'-punkt-'.$i.'-text', [ + $text($praefix.'-p-'.$i, $inhalt, [ + 'desktop' => ['fontSize' => '16px', 'lineHeight' => 1.75, 'color' => '@gedaempft', 'margin' => ['bottom' => '0px']], + ], "& a{color:#2e7595;text-decoration:underline;text-underline-offset:3px}\n& a:hover{color:#245e79}"), + ], ['desktop' => ['flexGrow' => 1, 'flexBasis' => '0', 'minWidth' => '0']]), + ], [], [ + 'desktop' => ['display' => 'flex', 'alignItems' => 'flex-start', 'gap' => '48px', 'margin' => ['top' => '0px'], + 'borderWidth' => $nurOben('1px'), 'borderStyle' => 'solid', 'borderColor' => '@linie', 'padding' => ['top' => '28px', 'bottom' => '28px']], + 'tablet' => ['gap' => '32px'], + 'mobile' => ['flexDirection' => 'column', 'gap' => '8px', 'padding' => ['top' => '22px', 'bottom' => '22px']], + ]); } - $kinder[0]['layout'] = ['effects' => ['entrance' => 'fade', 'delay' => 'none']]; - $kinder[1]['layout'] = ['effects' => ['entrance' => 'rise', 'delay' => 'short']]; - $kinder[2]['layout'] = ['effects' => ['entrance' => 'rise', 'delay' => 'medium']]; + $inhalt = $abschnitt($praefix, [ + $column($praefix.'-inhalt', $punkte, ['desktop' => ['maxWidth' => '960px']]), + ], ['desktop' => ['padding' => ['top' => '56px', 'bottom' => '100px']], 'mobile' => ['padding' => ['top' => '28px', 'bottom' => '61px']]]); - return $abschnitt($praefix, $kinder, ['desktop' => ['maxWidth' => '820px', 'padding' => ['top' => '80px', 'bottom' => '100px']], 'mobile' => ['padding' => ['top' => '52px', 'bottom' => '61px']]]); + return [$kopf, $inhalt]; }; // --------------------------------------------------------------------------------------------- @@ -798,7 +823,7 @@ $anlegen('impressum', [ 'schemaVersion' => $SCHEMA, 'title' => 'Impressum', 'description' => 'Anbieterangaben der Tagespflege Jacqueline Moldovan in Baden-Baden.', 'blocks' => [ - $rechtsseite('impressum', 'Rechtliche Angaben', 'Impressum', 'Angaben gemäß § 5 DDG und § 18 Abs. 2 MStV.', [ + ...$rechtsseite('impressum', 'Rechtliche Angaben', 'Impressum', 'Angaben gemäß § 5 DDG und § 18 Abs. 2 MStV.', [ ['Anbieterin', "Tagespflege Jacqueline Moldovan
Fremersbergstraße 75
76530 Baden-Baden

Vertreten durch Jacqueline Moldovan."], ['Kontakt', "Telefon: $telefon
E-Mail: $mail"], ['Rechtsform und Register', 'NOCH ZU PRÜFEN: Rechtsform, Registergericht und Registernummer ergänzen, sofern eine Eintragung besteht.'], @@ -816,7 +841,7 @@ $anlegen('datenschutz', [ 'schemaVersion' => $SCHEMA, 'title' => 'Datenschutz', 'description' => 'Wie die Tagespflege Jacqueline Moldovan Daten beim Besuch der Website und bei einer Kontaktaufnahme verarbeitet.', 'blocks' => [ - $rechtsseite('datenschutz', 'Ihre Daten', 'Datenschutzhinweise', 'Hier erfahren Sie, welche Daten beim Besuch dieser Website und bei Ihrer Kontaktaufnahme verarbeitet werden – und welche Rechte Sie haben.', [ + ...$rechtsseite('datenschutz', 'Ihre Daten', 'Datenschutzhinweise', 'Hier erfahren Sie, welche Daten beim Besuch dieser Website und bei Ihrer Kontaktaufnahme verarbeitet werden – und welche Rechte Sie haben.', [ ['1. Verantwortliche', "Tagespflege Jacqueline Moldovan, Fremersbergstraße 75, 76530 Baden-Baden. Telefon $telefon, E-Mail $mail.

NOCH ZU PRÜFEN: Ob eine Datenschutzbeauftragte oder ein Datenschutzbeauftragter zu benennen ist, hängt von der Zahl der ständig mit der Verarbeitung beschäftigten Personen ab; gegebenenfalls hier die Kontaktdaten ergänzen."], ['2. Besuch dieser Website', 'Beim Aufruf verarbeitet der Hostingdienst technisch erforderliche Verbindungsdaten: IP-Adresse, Zeitpunkt, angeforderte Adresse, Browserangaben und HTTP-Status. Das dient der sicheren Bereitstellung und der Fehlersuche. Rechtsgrundlage ist unser berechtigtes Interesse an einem störungsfreien Betrieb, Art. 6 Abs. 1 lit. f DSGVO.

NOCH ZU PRÜFEN: Hostinganbieter benennen, Auftragsverarbeitungsvertrag abschließen, Verarbeitungsländer und die konkrete Speicherdauer der Serverprotokolle eintragen.'], ['3. Cookies, Schriften, externe Dienste', 'Diese Website setzt keine Analyse- oder Werbecookies. Bilder, Schriften und Gestaltung kommen vom eigenen Server; es werden keine Karten, Videos oder Schriften von Dritten nachgeladen. Deshalb gibt es auch keinen Einwilligungsdialog.'],