Files
dotcom-arcade/frontend/index.html
T

58 lines
2.2 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="icon" type="image/png" sizes="32x32" href="/images/logo.png" />
<link rel="apple-touch-icon" href="/images/logo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta
http-equiv="Content-Security-Policy"
content="
default-src 'self';
script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval';
style-src 'self' 'unsafe-inline';
img-src 'self' data: blob: http://localhost:* http://127.0.0.1:*;
font-src 'self' data:;
connect-src 'self' http://localhost:* http://127.0.0.1:* ws://localhost:* ws://127.0.0.1:*;
frame-src 'self' http://localhost:* http://127.0.0.1:*;
object-src 'none';
base-uri 'self';
form-action 'self';
"
/>
<title>Dotcom Arcade</title>
<!-- Blocking script to prevent FOUC (Flash of Unstyled Content) -->
<!-- Applies theme before first paint by reading from localStorage -->
<script>
(function () {
try {
var stored = localStorage.getItem('flashpoint-theme-settings');
if (stored) {
var settings = JSON.parse(stored);
var mode = settings.state && settings.state.mode;
if (mode === 'dark') {
document.documentElement.classList.add('dark');
} else if (mode === 'light') {
document.documentElement.classList.add('light');
} else if (mode === 'system') {
var prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
document.documentElement.classList.add(prefersDark ? 'dark' : 'light');
}
} else {
// Default to dark mode if no preference set
document.documentElement.classList.add('dark');
}
} catch (e) {
// Fallback to dark mode on error
document.documentElement.classList.add('dark');
}
})();
</script>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>