Files
TasGrid/index.html
T

113 lines
2.5 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>tasgrid</title>
<script>
(function () {
const storedTheme = localStorage.getItem("tasgrid-theme");
const systemTheme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
const theme = (storedTheme === "system" || !storedTheme) ? systemTheme : storedTheme;
document.documentElement.classList.add(theme);
})();
</script>
<style>
:root {
--bg-light: #ffffff;
--bg-dark: #020617;
--primary: #0f172a;
--primary-dark: #f8fafc;
}
html.dark {
--bg: var(--bg-dark);
--text: var(--primary-dark);
}
html.light {
--bg: var(--bg-light);
--text: var(--primary);
}
body {
margin: 0;
padding: 0;
background-color: var(--bg);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
#splash {
position: fixed;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
z-index: 9999;
background-color: var(--bg);
}
.logo-text {
font-size: 2.5rem;
font-weight: 800;
letter-spacing: -0.05em;
margin-bottom: 1rem;
opacity: 0;
transform: translateY(10px);
animation: slideUpFade 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.loader-bar {
width: 140px;
height: 2px;
background: rgba(128, 128, 128, 0.2);
border-radius: 99px;
overflow: hidden;
position: relative;
}
.loader-progress {
position: absolute;
height: 100%;
width: 30%;
background: var(--text);
border-radius: 99px;
animation: progressMove 1.5s infinite ease-in-out;
}
@keyframes slideUpFade {
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes progressMove {
0% {
left: -30%;
}
100% {
left: 100%;
}
}
</style>
</head>
<body>
<div id="root">
<div id="splash">
<div class="logo-text">Tasgrid</div>
<div class="loader-bar">
<div class="loader-progress"></div>
</div>
</div>
</div>
<script type="module" src="/src/index.tsx"></script>
</body>
</html>