feat(shell): Routen, Kopfzeile, Hell/Dunkel, Spenden-Banner
- Router: Routen home, gestalten, cards, community/<id>, reset; Umleitung /?karte=<id> nach /gestalten?karte=<id>; Titel je Route (titleFor); Hash-Ziele (/#community) scrollen den Anker ins Bild, nur-Hash-Wechsel bauen die Seite nicht neu auf. - Kopfzeile: Navigation, Suche (Enter -> /?q=...#community), Spenden-Knopf, Hell/Dunkel-Schalter, Menue unter 900 px, Konto als Avatar-Kreis mit Menue. - Theme: data-theme auf <html> (Skript im <head> gegen Aufblitzen), helle Tokens, danger-/warn-/ok-text-Tokens statt fester Farben. - Spenden-Banner (schliessbar); ohne DONATE_URL bleiben Banner und Knopf weg. - User.labels und isAdmin; Platzhalter fuer Startseite und Detailseite. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1a64e12bc5
commit
25ff496548
30 files changed
+1783
-189
No files matched your search
+15
-4
@@ -3,19 +3,30 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>AirCard-IOS – Kartenmotiv gestalten</title>
|
||||
<title>AirCard-IOS – Kartendesigns für Apple Wallet</title>
|
||||
<meta name="theme-color" content="#0F1828" />
|
||||
<meta name="apple-mobile-web-app-title" content="AirCard-IOS" />
|
||||
<link rel="icon" href="/favicon.svg?v=2" type="image/svg+xml" />
|
||||
<link rel="icon" href="/favicon-32.png?v=2" sizes="32x32" type="image/png" />
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png?v=2" />
|
||||
<script>
|
||||
// Hell/Dunkel vor dem ersten Paint setzen (kein Aufblitzen); dieselbe Regel wie initialTheme() in src/shell/theme.ts.
|
||||
try {
|
||||
var theme = null;
|
||||
try {
|
||||
theme = localStorage.getItem('aircard.theme');
|
||||
} catch (e) {}
|
||||
if (theme !== 'light' && theme !== 'dark') {
|
||||
theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||||
}
|
||||
document.documentElement.setAttribute('data-theme', theme);
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="donate-banner"></div>
|
||||
<header id="app-header">
|
||||
<a class="brand" href="/" data-link><img src="/favicon.svg?v=2" alt="" width="28" height="28" /><span>AirCard-IOS</span></a>
|
||||
<nav class="app-nav" aria-label="Hauptnavigation">
|
||||
<a href="/karten" data-link>Meine Karten</a>
|
||||
</nav>
|
||||
<div id="account-slot"></div>
|
||||
</header>
|
||||
<main id="app-root"></main>
|
||||
|
||||
Reference in new issue
Block a user