- publish.ts und editor-page.ts: Kommentare zum Aufräumen bzw. zur Adresse /gestalten?karte= stimmen wieder. - index.html: Inline-Skript für Hell/Dunkel in einer sofort aufgerufenen Funktion (keine globale Variable theme); Test führt es aus und vergleicht mit initialTheme(). - CARD_W/CARD_H nur noch aus card/geometry.ts (Startseite, Detailseite, Raster), Vorschauhöhe des Rasters daraus abgeleitet; reportsLabel nur aus pages/format.ts. Ein Test sorgt dafür, dass es dabei bleibt. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
42 lines
1.8 KiB
HTML
42 lines
1.8 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.
|
||
// In einer sofort aufgerufenen Funktion, damit keine globale Variable `theme` entsteht.
|
||
(function () {
|
||
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>
|