Files
blackroad-operating-system/public/index.html
2025-11-20 17:45:20 -06:00

384 lines
9.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BlackRoad OS Online</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
:root {
color-scheme: dark;
--bg: #05060a;
--panel: #0c0f17;
--accent: #6ee7ff;
--accent-2: #a855f7;
--text: #e5e7eb;
--muted: #9ca3af;
--border: rgba(255,255,255,0.08);
--glow: 0 0 25px rgba(110,231,255,0.35);
}
* { box-sizing: border-box; }
body {
margin: 0;
min-height: 100vh;
font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
background: radial-gradient(circle at 10% 20%, rgba(168,85,247,0.12), transparent 25%),
radial-gradient(circle at 90% 10%, rgba(110,231,255,0.18), transparent 30%),
radial-gradient(circle at 50% 80%, rgba(37,99,235,0.12), transparent 28%),
var(--bg);
color: var(--text);
display: flex;
align-items: center;
justify-content: center;
padding: 40px 16px;
}
.shell {
width: min(1100px, 100%);
background: linear-gradient(135deg, rgba(12,15,23,0.9), rgba(12,15,23,0.75));
border: 1px solid var(--border);
border-radius: 20px;
box-shadow: var(--glow), inset 0 0 0 1px rgba(255,255,255,0.02);
padding: 32px;
backdrop-filter: blur(8px);
}
header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 20px;
margin-bottom: 28px;
border-bottom: 1px solid var(--border);
padding-bottom: 20px;
}
.logo {
display: flex;
align-items: center;
gap: 12px;
font-weight: 700;
letter-spacing: -0.5px;
}
.logo-mark {
height: 44px;
width: 44px;
border-radius: 12px;
background: linear-gradient(135deg, var(--accent), var(--accent-2));
display: grid;
place-items: center;
color: #0b1221;
font-weight: 800;
box-shadow: 0 12px 30px rgba(110,231,255,0.35);
}
nav {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
nav a {
color: var(--muted);
text-decoration: none;
padding: 10px 14px;
border-radius: 10px;
border: 1px solid transparent;
transition: all 0.2s ease;
font-weight: 500;
font-size: 14px;
}
nav a:hover {
color: var(--text);
border-color: var(--border);
background: rgba(255,255,255,0.03);
}
.hero {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
align-items: center;
}
.callout {
background: rgba(255,255,255,0.02);
border: 1px solid var(--border);
border-radius: 16px;
padding: 20px;
display: flex;
align-items: center;
gap: 12px;
font-size: 15px;
color: var(--muted);
}
.badge {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
border-radius: 999px;
background: rgba(110,231,255,0.12);
color: var(--accent);
font-weight: 600;
border: 1px solid rgba(110,231,255,0.35);
box-shadow: 0 8px 20px rgba(110,231,255,0.25);
width: fit-content;
margin-bottom: 10px;
font-size: 14px;
}
h1 {
margin: 0 0 12px;
font-size: clamp(30px, 4vw, 40px);
letter-spacing: -0.03em;
}
p.lead {
margin: 0 0 16px;
color: var(--muted);
line-height: 1.6;
font-size: 16px;
}
.actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 18px;
}
.btn {
padding: 12px 16px;
border-radius: 12px;
font-weight: 700;
border: 1px solid transparent;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 10px;
transition: all 0.2s ease;
font-size: 15px;
}
.btn-primary {
background: linear-gradient(135deg, var(--accent), var(--accent-2));
color: #0b1221;
box-shadow: 0 12px 40px rgba(110,231,255,0.25);
}
.btn-secondary {
border: 1px solid var(--border);
color: var(--text);
background: rgba(255,255,255,0.03);
}
.btn:hover {
transform: translateY(-1px);
box-shadow: 0 12px 28px rgba(110,231,255,0.18);
}
.panel {
background: rgba(255,255,255,0.03);
border: 1px solid var(--border);
border-radius: 18px;
padding: 20px;
box-shadow: inset 0 0 0 1px rgba(255,255,255,0.02);
}
.panel h3 { margin: 0 0 12px; }
.list {
display: grid;
gap: 10px;
}
.list-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px;
border-radius: 12px;
background: rgba(255,255,255,0.02);
border: 1px solid var(--border);
color: var(--muted);
font-size: 14px;
}
.status {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 10px;
border-radius: 999px;
background: rgba(74,222,128,0.12);
color: #4ade80;
font-weight: 700;
border: 1px solid rgba(74,222,128,0.4);
font-size: 13px;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 16px;
margin-top: 16px;
}
.tile {
background: rgba(12, 15, 23, 0.75);
border: 1px solid var(--border);
border-radius: 14px;
padding: 14px;
display: grid;
gap: 8px;
}
.tile strong { color: var(--text); }
.tile span { color: var(--muted); font-size: 14px; }
footer {
margin-top: 30px;
text-align: center;
color: var(--muted);
font-size: 13px;
<meta charset="UTF-8" />
<title>BlackRoad OS</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
body {
margin: 0;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
background: #050510;
color: #f5f5f5;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
}
.desktop {
border-radius: 16px;
padding: 24px 32px;
border: 1px solid #333;
box-shadow: 0 0 40px rgba(0,0,0,0.6);
background: radial-gradient(circle at top left, #3f89ff55, #050510 55%);
text-align: center;
max-width: 640px;
width: 100%;
}
h1 {
margin-bottom: 8px;
font-size: 1.8rem;
}
p {
margin: 4px 0;
opacity: 0.85;
}
.tag {
margin-top: 16px;
font-size: 0.85rem;
opacity: 0.7;
}
</style>
</head>
<body>
<div class="shell">
<header>
<div class="logo">
<div class="logo-mark">B</div>
<div>
<div>BlackRoad OS Online</div>
<small style="color: var(--muted); font-weight: 500;">Live workspace preview</small>
</div>
</div>
<nav>
<a href="#status">Status</a>
<a href="#stack">Stack</a>
<a href="#links">Links</a>
</nav>
</header>
<div class="hero">
<div>
<div class="badge">Live from GitHub</div>
<h1>BlackRoad desktop is coming online.</h1>
<p class="lead">
This deployment proves the pipeline works. The UI you see here is served directly from the
<strong>BlackRoad-Operating-System</strong> repository via Railway.
</p>
<div class="actions">
<a class="btn btn-primary" href="#links">Go to app.blackroad.systems</a>
<a class="btn btn-secondary" href="#status">View deployment status</a>
</div>
</div>
<div class="panel" id="status">
<h3>Environment</h3>
<div class="list">
<div class="list-item">
<span>app.blackroad.systems</span>
<span class="status">Serving</span>
</div>
<div class="list-item">
<span>Source</span>
<span>GitHub → Railway → Express</span>
</div>
<div class="list-item">
<span>Health endpoint</span>
<span>/health → 200 OK</span>
</div>
</div>
</div>
</div>
<div class="grid" id="stack">
<div class="tile">
<strong>Express static host</strong>
<span>Simple Node server that serves this HTML and a JSON health check on /health.</span>
</div>
<div class="tile">
<strong>Railway deploy</strong>
<span>Build: <code>npm install</code>. Start: <code>npm start</code>. Port: <code>8080</code>.</span>
</div>
<div class="tile">
<strong>Next steps</strong>
<span>Swap in the real BlackRoad desktop UI and connect to the FastAPI backend at os.blackroad.systems.</span>
</div>
</div>
<div class="panel" id="links" style="margin-top: 16px;">
<h3>Quick links</h3>
<div class="list">
<div class="list-item">
<span>Primary URL</span>
<span>https://app.blackroad.systems</span>
</div>
<div class="list-item">
<span>Railway preview</span>
<span>*.up.railway.app</span>
</div>
<div class="list-item">
<span>Repository</span>
<span>BlackRoad-Operating-System</span>
</div>
</div>
</div>
<footer>
This placeholder keeps the domain alive while the full BlackRoad experience is wired up.
</footer>
<div class="desktop">
<h1>BlackRoad OS</h1>
<p>Primary app endpoint is online.</p>
<p>Youre looking at the app behind <strong>app.blackroad.systems</strong>.</p>
<p class="tag">We can wire in agents, API, console, and more after this.</p>
</div>
</body>
</html>