From c062776a5b9953f67b2a06b9d0bb32596798b915 Mon Sep 17 00:00:00 2001 From: nexxo Date: Sun, 2 Aug 2026 00:04:03 +0200 Subject: [PATCH] Die Anfrageseite lief unter der Kopfleiste durch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Kopfleiste des Layouts ist fixed und schwebt: 56 px hoch, 16 px vom Rand, also rund 72 px hoch. Die Seite begann mit pt-14 — 56 px — und schob ihre Ueberschrift damit zwangslaeufig darunter. Sie haelt jetzt denselben Abstand wie die Startseite, und dieser Abstand ist der Grund fuer die Zahl, nicht Geschmack. Dabei zwei weitere Dinge behoben, die beim Nachsehen auffielen: die Seite brachte ein zweites
mit, obwohl das Layout bereits eines stellt (pro Dokument darf es nur eines geben), und ein `sm:col-span-2` am x-ui.input haette nichts getan — das Bauteil reicht mitgegebene Klassen an das INPUT weiter, nicht an seinen Rahmen, und der Rahmen ist das Rasterkind. Und die Seite steht jetzt in der Formensprache der Startseite statt daneben: derselbe warme Schimmer hinter der Ueberschrift, Haarlinien-Karten, lbl-Etiketten, gestaffelte Einblendungen, die echten Bauteile fuer Feld und Knopf statt handgeschriebener Klassen. Neu daneben: was nach dem Absenden passiert. Das ist die Frage, die jeder hat, der ein Formular vor sich sieht, und die ein Formular allein nicht beantwortet — bei Enterprise steht dort, dass Speicher, Nutzerzahl und Sicherung die Maschine ergeben, sonst die Antwort am selben Werktag. Versprochen wird nichts, was nicht schon vorher dastand. Am Bildschirm nachgesehen, nicht nur im Test: Ueberschrift frei unter der Kopfleiste, zwei Spalten ab lg, Formular und Spalte in einer Flucht. Co-Authored-By: Claude Opus 5 --- resources/views/contact.blade.php | 252 +++++++++++++++++++----------- 1 file changed, 159 insertions(+), 93 deletions(-) diff --git a/resources/views/contact.blade.php b/resources/views/contact.blade.php index 13fcb08..d1ec3b1 100644 --- a/resources/views/contact.blade.php +++ b/resources/views/contact.blade.php @@ -5,110 +5,176 @@ schon entschieden zu fragen — also steht hier ein Formular und keine zweite Verkaufsseite. Vorher zeigte der Knopf auf `mailto:`, was auf den meisten Geräten sichtbar gar nichts tut. Siehe App\Http\Controllers\ContactController. + + Zum Aufbau, nach dem Umbau vom 1. August 2026: + + Die Kopfleiste des Layouts ist `fixed` und schwebt (56 px hoch, 16 px vom + Rand). Diese Seite begann mit `pt-14` — 56 px — und lief damit zwangsläufig + darunter. Der Einstieg hält jetzt denselben Abstand wie die Startseite + (`pt-32`, ab `lg` mehr), und dieser Abstand ist der Grund für die Zahl, nicht + Geschmack. + + Das zweite `
` ist weg: das Layout stellt bereits eines, und pro + Dokument darf es nur eines geben. + + Und die Seite steht jetzt in der Formensprache der Startseite statt daneben: + ein Schimmer hinter der Überschrift, Haarlinien-Karten, `lbl`-Etiketten, + gestaffelte Einblendungen. Rechts neben dem Formular steht, was danach + passiert — die Frage, die jeder hat, der ein Formular vor sich sieht, und die + ein Formular allein nicht beantwortet. --}} -
+
+ {{-- Derselbe warme Schimmer wie über der Startseiten-Überschrift, aus dem + Token gezeichnet statt aus einem literalen rgba(), das niemand + nachzöge. Etwas schwächer und höher: hier steht ein Formular, kein + Aufmacher. --}} + -
-

Anfrage

-

- @if ($topic === 'enterprise') - Eine eigene Maschine. - @else - Sprechen Sie uns an. - @endif -

-

- @if ($topic === 'enterprise') - Sagen Sie uns, wie viel Speicher Sie brauchen und wie viele Menschen damit - arbeiten. Wir rechnen Ihnen einen Server durch, auf dem nur Ihre Cloud läuft - — und melden uns am selben Werktag. - @else - Schreiben Sie uns, was Sie vorhaben. Wir antworten am selben Werktag, - auf Deutsch, ohne Warteschleife. - @endif -

-
+
- @if ($sent) - {{-- Der Bestätigungszustand ersetzt das Formular, statt darüber zu - stehen: ein Formular, das nach dem Absenden weiter dasteht, lädt - zum zweiten Absenden ein. --}} -
-

Ihre Anfrage ist da.

-

- Wir haben sie bekommen und melden uns am selben Werktag. Eine Kopie geht - nicht automatisch an Sie — falls Sie etwas nachreichen möchten, antworten - Sie einfach auf unsere Rückmeldung. +

+

Anfrage

+

+ @if ($topic === 'enterprise') + Eine eigene Maschine. + @else + Sprechen Sie uns an. + @endif +

+

+ @if ($topic === 'enterprise') + Sagen Sie uns, wie viel Speicher Sie brauchen und wie viele Menschen damit + arbeiten. Wir rechnen Ihnen einen Server durch, auf dem nur Ihre Cloud läuft + — und melden uns am selben Werktag. + @else + Schreiben Sie uns, was Sie vorhaben. Wir antworten am selben Werktag, + auf Deutsch, ohne Warteschleife. + @endif

- - Zurück zur Übersicht - -
- @else -
- @csrf - + - {{-- Der Honigtopf. Aus dem Lesefluss genommen statt display:none — - ein Feld, das gar nicht existiert, füllt auch kein Roboter aus, - und genau das Ausfüllen ist hier das Erkennungszeichen. - aria-hidden und tabindex=-1, damit ein Screenreader und die - Tabulatortaste es überspringen. --}} - - -
- @foreach ([ - ['company', 'Firma', 'text', false, 'organization'], - ['name', 'Ihr Name', 'text', true, 'name'], - ['email', 'E-Mail', 'email', true, 'email'], - ['phone', 'Telefon (optional)', 'tel', false, 'tel'], - ] as [$field, $label, $type, $required, $autocomplete]) -
- - - @error($field) -

{{ $message }}

- @enderror -
- @endforeach - -
- - - @error('message') -

{{ $message }}

- @enderror + @if ($sent) + {{-- Der Bestätigungszustand ersetzt das Formular, statt darüber zu + stehen: ein Formular, das nach dem Absenden weiter dasteht, lädt + zum zweiten Absenden ein. --}} +
+ + + +

Ihre Anfrage ist da.

+

+ Wir haben sie bekommen und melden uns am selben Werktag. Eine Kopie geht + nicht automatisch an Sie — falls Sie etwas nachreichen möchten, antworten + Sie einfach auf unsere Rückmeldung. +

+
+ Zurück zur Übersicht + Preise ansehen
+ @else + {{-- Asymmetrisch: das Formular trägt die Seite, die Spalte daneben + beantwortet die Frage, die ein Formular offen lässt — was + passiert, nachdem ich auf Senden gedrückt habe. Auf dem Telefon + steht sie darunter, weil dort zuerst das Feld zählt. --}} +
+ + + @csrf + + + {{-- Der Honigtopf. Aus dem Lesefluss genommen statt display:none — + ein Feld, das gar nicht existiert, füllt auch kein Roboter aus, + und genau das Ausfüllen ist hier das Erkennungszeichen. + aria-hidden und tabindex=-1, damit ein Screenreader und die + Tabulatortaste es überspringen. --}} + + +
+ {{-- Die Spaltenbreite gehört an ein eigenes Element, nicht + an das Bauteil: x-ui.input reicht mitgegebene Klassen + an das INPUT weiter, nicht an seinen Rahmen — ein + `sm:col-span-2` am Bauteil landete also am Feld und + täte im Raster nichts. --}} +
+
+ +
+ + +
+ +
+
+ + {{-- Kein eigenes Textfeld-Bauteil im Haus; die Klassen sind + deshalb aus x-ui.input übernommen, damit die beiden + Felder nicht nebeneinander unterschiedlich aussehen. --}} +
+ + + @error('message') +

{{ $message }}

+ @enderror +
+ +
+

+ Wir benutzen Ihre Angaben nur, um Ihre Anfrage zu beantworten. + Näheres in der Datenschutzerklärung. +

+ Anfrage senden +
+
+ + + -
-

- Wir benutzen Ihre Angaben nur, um Ihre Anfrage zu beantworten. - Näheres in der Datenschutzerklärung. -

-
- - @endif + @endif -
+ +