mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 08:07:49 +00:00
Project windows are created in setup with the saved theme's frame colour, and the splash covers the first render while the launch project opens, so a window no longer flashes white or the Welcome screen. Single-instance is now release-only so a dev build can run beside an installed release.
66 lines
2.6 KiB
HTML
66 lines
2.6 KiB
HTML
<!doctype html>
|
|
<html lang="en" data-theme="light">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>OpenIDEA</title>
|
|
<script src="/boot.js"></script>
|
|
<style>
|
|
/* Start-up splash over the page until the window's launch project is open (platform/splash.ts).
|
|
Tokens aren't loaded yet, so the colours mirror --bg-frame / --fg-muted / --accent. */
|
|
html, body, .splash { background: #e9eaee; }
|
|
:root[data-theme="dark"] :is(body, .splash) { background: #26282c; }
|
|
:root:is([data-theme="dark-hc"], [data-theme="dark"][data-contrast="high"]) :is(body, .splash) { background: #1a1b1e; }
|
|
.splash {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 2147483647;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 14px;
|
|
padding-bottom: 38px;
|
|
box-sizing: border-box;
|
|
font: 500 15px/1.2 "Inter Variable", Inter, system-ui, -apple-system, sans-serif;
|
|
color: #6c707e;
|
|
-webkit-user-select: none;
|
|
user-select: none;
|
|
cursor: default;
|
|
animation: splash-in 240ms ease-out 120ms both;
|
|
transition: opacity 160ms ease-out;
|
|
}
|
|
.splash.splash-out { opacity: 0; pointer-events: none; }
|
|
:root[data-theme^="dark"] .splash { color: #8c8f95; }
|
|
.splash svg { width: 56px; height: 56px; }
|
|
.splash-bar { width: 120px; height: 2px; border-radius: 1px; overflow: hidden; background: rgb(127 127 127 / 0.18); }
|
|
.splash-bar::after {
|
|
content: "";
|
|
display: block;
|
|
width: 40%;
|
|
height: 100%;
|
|
background: #3871e1;
|
|
animation: splash-bar 1.1s ease-in-out infinite;
|
|
}
|
|
@keyframes splash-in { from { opacity: 0; } }
|
|
@keyframes splash-bar { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.splash, .splash-bar::after { animation: none; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<div id="splash" class="splash" data-tauri-drag-region>
|
|
<svg viewBox="0 0 64 64" aria-hidden="true">
|
|
<rect width="64" height="64" rx="15" fill="#0E0E10" />
|
|
<circle cx="26" cy="32" r="11" fill="none" stroke="#FFFFFF" stroke-width="8" />
|
|
<rect x="43" y="18" width="8" height="28" rx="1.5" fill="#FF4F1A" />
|
|
</svg>
|
|
<span>OpenIDEA</span>
|
|
<div class="splash-bar" role="progressbar" aria-label="Loading"></div>
|
|
</div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|