Kundenbereich: App-Ansicht fuers Handy (Tab-Leiste, Konto-Sheet, installierbar)
Auf dem Handy (unter 880 px und Handys quer) sieht der Kundenbereich aus wie eine App; der Desktop bleibt pixelgleich. - Kopfzeile als App-Leiste: Logo, beim Scrollen der Seitentitel, Avatar - Navigation als Tab-Leiste unten mit Symbolen und Zaehlern; neuer Tab "Wartung" mit der Abo-Karte, Stundenkonto/Bestellung und Uebernahmegutschrift als Unterseiten mit Zurueck (auch Android-Geste) - Konto als Bottom-Sheet (Ansprechpartner, Vertraege kuendigen/widerrufen, Rechtliches, Abmelden), am Desktop als Popover unter dem Avatar - Rechnungen als Karten, Fortschritt als Zeitleiste, Chat fuellt den Bildschirm; bei offener Tastatur verschwindet die Tab-Leiste (kommt auch nach der Android-Zurueck-Geste wieder) - Installierbar: Manifest, App-Icons (WEBklar-Logo), Favicon, Hinweis "Zum Home-Bildschirm"; Service Worker nur fuer die Offline-Seite, Kundendaten werden nicht zwischengespeichert - Installierte App: Kuendigen/Widerrufen mit Link zurueck in den Kundenbereich (nur dort sichtbar, Texte unveraendert); Login-Links zu Bedingungen/Datenschutz/Impressum oeffnen wie im Dashboard ein neues Fenster - Login mit App-Icon und Abstaenden fuer Statusleiste/Home-Balken - Hinweise "in der Seitenleiste" haben auf dem Handy eine eigene Fassung Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
06e9a0fe8d
commit
20bf5afe28
17 files changed
+999
-36
No files matched your search
@@ -0,0 +1,46 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
||||
<meta name="theme-color" content="#000000">
|
||||
<title>Offline – WEBklar Kundenbereich</title>
|
||||
<!-- Wird vom Service Worker (sw.js) ohne Internet angezeigt: alles inline, keine weiteren Dateien -->
|
||||
<style>
|
||||
html, body { height: 100%; margin: 0; }
|
||||
body {
|
||||
display: grid; place-items: center; padding: 24px; box-sizing: border-box;
|
||||
background: radial-gradient(ellipse at 50% 0%, rgba(157, 61, 254, 0.22), transparent 60%), #000;
|
||||
color: #fff; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||
text-align: center; line-height: 1.5;
|
||||
}
|
||||
main { max-width: 340px; }
|
||||
svg { width: 72px; height: 72px; border-radius: 18px; }
|
||||
h1 { margin: 22px 0 8px; font-size: 22px; }
|
||||
p { margin: 0 0 26px; color: rgba(255, 255, 255, 0.6); font-size: 15px; }
|
||||
button {
|
||||
padding: 13px 26px; border: none; border-radius: 999px; background: #9d3dfe; color: #fff;
|
||||
font: inherit; font-weight: 700; font-size: 15px; cursor: pointer;
|
||||
}
|
||||
button:active { transform: scale(0.97); }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<svg viewBox="0 0 512 512" aria-hidden="true">
|
||||
<rect width="512" height="512" fill="#fff"/>
|
||||
<g transform="translate(256 256) scale(0.9) translate(-256 -256)">
|
||||
<ellipse cx="256" cy="256" rx="210" ry="150" fill="#111" transform="rotate(-28 256 256)"/>
|
||||
<circle cx="356" cy="172" r="18" fill="#fff"/>
|
||||
<path transform="translate(256 256) rotate(-28)" d="M 0,-170 C 22,-105 60,-72 120,-56 C 60,-40 22,-8 0,64 C -22,-8 -60,-40 -120,-56 C -60,-72 -22,-105 0,-170 Z" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
<h1>Keine Internetverbindung</h1>
|
||||
<p>Der Kundenbereich braucht eine Verbindung. Sobald du wieder online bist, geht es hier weiter.</p>
|
||||
<button type="button" onclick="location.reload()">Erneut versuchen</button>
|
||||
</main>
|
||||
<script>
|
||||
window.addEventListener('online', () => location.reload())
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user