- 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>
39 lines
1.6 KiB
HTML
39 lines
1.6 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<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>
|
||
<div id="account-slot"></div>
|
||
</header>
|
||
<main id="app-root"></main>
|
||
<footer id="app-footer">
|
||
<p>Inoffizielles Hobbyprojekt. Keine Verbindung zu Apple, Visa, Mastercard, UnionPay, American Express, JCB oder Discover. Alle Marken gehören ihren Inhabern.</p>
|
||
</footer>
|
||
<script type="module" src="/src/main.ts"></script>
|
||
</body>
|
||
</html>
|