Commit ·
6438d91
1
Parent(s): 2c1dd82
Feature: Simplify lobby home screen to a minimal clean layout
Browse files- frontend/static/index.html +36 -101
frontend/static/index.html
CHANGED
|
@@ -57,38 +57,29 @@ body {
|
|
| 57 |
position: fixed; inset: 0; z-index: 200;
|
| 58 |
display: flex; align-items: center; justify-content: center;
|
| 59 |
gap: 0;
|
| 60 |
-
background:
|
| 61 |
transition: opacity 0.8s cubic-bezier(0.4,0,0.2,1), transform 0.8s cubic-bezier(0.4,0,0.2,1);
|
| 62 |
}
|
| 63 |
#lobby.hidden { opacity: 0; transform: scale(0.96); pointer-events: none; }
|
| 64 |
-
#lobbyParticles {
|
| 65 |
|
| 66 |
.lobby-inner {
|
| 67 |
position: relative; z-index: 1;
|
| 68 |
-
display: flex; flex-direction: column; align-items: center; gap: 2.
|
| 69 |
}
|
| 70 |
.lobby-brand {
|
| 71 |
text-align: center;
|
| 72 |
}
|
| 73 |
.lobby-title {
|
| 74 |
-
font-family: '
|
| 75 |
-
font-size: clamp(
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
background-clip: text;
|
| 80 |
-
filter: drop-shadow(0 0 40px rgba(180,74,255,0.25));
|
| 81 |
-
animation: titleBreath 5s ease-in-out infinite alternate;
|
| 82 |
-
}
|
| 83 |
-
@keyframes titleBreath {
|
| 84 |
-
from { filter: drop-shadow(0 0 30px rgba(180,74,255,0.2)); }
|
| 85 |
-
to { filter: drop-shadow(0 0 60px rgba(255,70,85,0.35)); }
|
| 86 |
}
|
| 87 |
.lobby-title em {
|
| 88 |
-
font-style:
|
| 89 |
-
|
| 90 |
-
-webkit-background-clip: text; -webkit-text-fill-color: transparent;
|
| 91 |
-
background-clip: text;
|
| 92 |
}
|
| 93 |
.lobby-eyebrow {
|
| 94 |
margin-top: 10px;
|
|
@@ -100,11 +91,9 @@ body {
|
|
| 100 |
|
| 101 |
.lobby-panel {
|
| 102 |
width: 380px;
|
| 103 |
-
background:
|
| 104 |
-
|
| 105 |
-
border:
|
| 106 |
-
border-radius: 20px; padding: 2rem 1.75rem;
|
| 107 |
-
box-shadow: 0 32px 80px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.04);
|
| 108 |
}
|
| 109 |
.lobby-section-label {
|
| 110 |
font-family: 'JetBrains Mono', monospace;
|
|
@@ -131,18 +120,17 @@ body {
|
|
| 131 |
}
|
| 132 |
.lobby-row input[type=range]::-webkit-slider-runnable-track {
|
| 133 |
height: 2px;
|
| 134 |
-
background:
|
| 135 |
border-radius: 1px;
|
| 136 |
}
|
| 137 |
.lobby-row input[type=range]::-webkit-slider-thumb {
|
| 138 |
-
-webkit-appearance: none; width:
|
| 139 |
-
border-radius: 50%; background:
|
| 140 |
-
cursor: pointer; margin-top: -
|
| 141 |
-
|
| 142 |
-
transition: box-shadow 0.2s, transform 0.2s;
|
| 143 |
}
|
| 144 |
.lobby-row input[type=range]:hover::-webkit-slider-thumb {
|
| 145 |
-
|
| 146 |
}
|
| 147 |
.range-val {
|
| 148 |
font-family: 'JetBrains Mono', monospace;
|
|
@@ -171,8 +159,7 @@ body {
|
|
| 171 |
transition: border-color 0.2s, box-shadow 0.2s;
|
| 172 |
}
|
| 173 |
#systemPromptInput:focus {
|
| 174 |
-
border-color: var(--
|
| 175 |
-
box-shadow: 0 0 10px var(--active-tab-glow, var(--accent-glow));
|
| 176 |
}
|
| 177 |
|
| 178 |
.lobby-prompt-tabs {
|
|
@@ -201,10 +188,9 @@ body {
|
|
| 201 |
color: var(--text);
|
| 202 |
}
|
| 203 |
.lobby-tab.active {
|
| 204 |
-
background: var(--
|
| 205 |
-
border-color: var(--
|
| 206 |
-
color: var(--
|
| 207 |
-
box-shadow: 0 0 8px var(--tab-glow, var(--accent-glow));
|
| 208 |
}
|
| 209 |
|
| 210 |
.lobby-agent-edit-row {
|
|
@@ -221,15 +207,13 @@ body {
|
|
| 221 |
transition: border-color 0.2s, box-shadow 0.2s;
|
| 222 |
}
|
| 223 |
.lobby-agent-edit-row:focus-within {
|
| 224 |
-
border-color: var(--
|
| 225 |
-
box-shadow: 0 0 10px var(--active-tab-glow, var(--accent-glow));
|
| 226 |
}
|
| 227 |
.lobby-agent-color-dot {
|
| 228 |
width: 10px;
|
| 229 |
height: 10px;
|
| 230 |
border-radius: 50%;
|
| 231 |
background: var(--accent);
|
| 232 |
-
box-shadow: 0 0 8px var(--accent-glow);
|
| 233 |
flex-shrink: 0;
|
| 234 |
transition: all 0.2s ease;
|
| 235 |
}
|
|
@@ -250,31 +234,21 @@ body {
|
|
| 250 |
|
| 251 |
.lobby-deploy {
|
| 252 |
width: 100%; margin-top: 24px;
|
| 253 |
-
padding:
|
| 254 |
-
background:
|
| 255 |
-
color:
|
| 256 |
font-family: 'Space Grotesk', sans-serif;
|
| 257 |
-
font-size:
|
| 258 |
-
text-transform: uppercase; letter-spacing: 0.
|
| 259 |
-
cursor: pointer;
|
| 260 |
-
transition: all 0.
|
| 261 |
-
box-shadow: 0 4px 24px rgba(180,74,255,0.4);
|
| 262 |
}
|
| 263 |
.lobby-deploy:hover {
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
.lobby-deploy:disabled { opacity: 0.4; cursor: not-allowed; transform: none; box-shadow: none; }
|
| 268 |
-
.lobby-deploy::after {
|
| 269 |
-
content: ''; position: absolute; inset: 0;
|
| 270 |
-
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12), transparent);
|
| 271 |
-
transform: translateX(-100%);
|
| 272 |
-
animation: deployShine 3s ease-in-out infinite;
|
| 273 |
-
}
|
| 274 |
-
@keyframes deployShine {
|
| 275 |
-
0% { transform: translateX(-100%); }
|
| 276 |
-
35%, 100% { transform: translateX(100%); }
|
| 277 |
}
|
|
|
|
| 278 |
|
| 279 |
.ctrl-btn.warming {
|
| 280 |
border-color: var(--accent);
|
|
@@ -1293,46 +1267,7 @@ const AGENT_COLORS = {
|
|
| 1293 |
|
| 1294 |
/* ═══════════ LOBBY PARTICLES ═══════════ */
|
| 1295 |
(function initLobbyParticles() {
|
| 1296 |
-
|
| 1297 |
-
const ctx = canvas.getContext('2d');
|
| 1298 |
-
let particles = [];
|
| 1299 |
-
const COUNT = 90;
|
| 1300 |
-
function resize() { canvas.width = window.innerWidth; canvas.height = window.innerHeight; }
|
| 1301 |
-
resize();
|
| 1302 |
-
window.addEventListener('resize', resize);
|
| 1303 |
-
const COLORS = ['#b44aff','#ff4655','#4a9eff','#00e5cc'];
|
| 1304 |
-
for (let i = 0; i < COUNT; i++) {
|
| 1305 |
-
particles.push({
|
| 1306 |
-
x: Math.random() * canvas.width,
|
| 1307 |
-
y: Math.random() * canvas.height,
|
| 1308 |
-
vx: (Math.random()-0.5)*0.3,
|
| 1309 |
-
vy: -Math.random()*0.5 - 0.1,
|
| 1310 |
-
size: Math.random()*2+0.5,
|
| 1311 |
-
alpha: Math.random()*0.35+0.05,
|
| 1312 |
-
color: COLORS[Math.floor(Math.random()*COLORS.length)],
|
| 1313 |
-
});
|
| 1314 |
-
}
|
| 1315 |
-
function animate() {
|
| 1316 |
-
if (document.getElementById('lobby').classList.contains('hidden')) return;
|
| 1317 |
-
requestAnimationFrame(animate);
|
| 1318 |
-
ctx.clearRect(0,0,canvas.width,canvas.height);
|
| 1319 |
-
particles.forEach(p => {
|
| 1320 |
-
p.x += p.vx; p.y += p.vy;
|
| 1321 |
-
if (p.y < -10) { p.y = canvas.height+10; p.x = Math.random()*canvas.width; }
|
| 1322 |
-
if (p.x < -10 || p.x > canvas.width+10) p.x = Math.random()*canvas.width;
|
| 1323 |
-
ctx.beginPath();
|
| 1324 |
-
ctx.arc(p.x, p.y, p.size, 0, Math.PI*2);
|
| 1325 |
-
ctx.fillStyle = p.color;
|
| 1326 |
-
ctx.globalAlpha = p.alpha;
|
| 1327 |
-
ctx.fill();
|
| 1328 |
-
const g = ctx.createRadialGradient(p.x,p.y,0,p.x,p.y,p.size*4);
|
| 1329 |
-
g.addColorStop(0, p.color); g.addColorStop(1,'transparent');
|
| 1330 |
-
ctx.beginPath(); ctx.arc(p.x,p.y,p.size*4,0,Math.PI*2);
|
| 1331 |
-
ctx.fillStyle = g; ctx.globalAlpha = p.alpha*0.25; ctx.fill();
|
| 1332 |
-
});
|
| 1333 |
-
ctx.globalAlpha = 1;
|
| 1334 |
-
}
|
| 1335 |
-
animate();
|
| 1336 |
})();
|
| 1337 |
|
| 1338 |
const BOT_NAMES = ["Vex", "Nyx", "Kael", "Zara", "Cypher", "Helix", "Apex", "Blaze"];
|
|
|
|
| 57 |
position: fixed; inset: 0; z-index: 200;
|
| 58 |
display: flex; align-items: center; justify-content: center;
|
| 59 |
gap: 0;
|
| 60 |
+
background: var(--bg);
|
| 61 |
transition: opacity 0.8s cubic-bezier(0.4,0,0.2,1), transform 0.8s cubic-bezier(0.4,0,0.2,1);
|
| 62 |
}
|
| 63 |
#lobby.hidden { opacity: 0; transform: scale(0.96); pointer-events: none; }
|
| 64 |
+
#lobbyParticles { display: none; }
|
| 65 |
|
| 66 |
.lobby-inner {
|
| 67 |
position: relative; z-index: 1;
|
| 68 |
+
display: flex; flex-direction: column; align-items: center; gap: 2.0rem;
|
| 69 |
}
|
| 70 |
.lobby-brand {
|
| 71 |
text-align: center;
|
| 72 |
}
|
| 73 |
.lobby-title {
|
| 74 |
+
font-family: 'Space Grotesk', sans-serif;
|
| 75 |
+
font-size: clamp(36px, 6vw, 56px);
|
| 76 |
+
font-weight: 500;
|
| 77 |
+
letter-spacing: -1px; line-height: 1.0;
|
| 78 |
+
color: var(--text);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
}
|
| 80 |
.lobby-title em {
|
| 81 |
+
font-style: normal;
|
| 82 |
+
color: var(--text-dim);
|
|
|
|
|
|
|
| 83 |
}
|
| 84 |
.lobby-eyebrow {
|
| 85 |
margin-top: 10px;
|
|
|
|
| 91 |
|
| 92 |
.lobby-panel {
|
| 93 |
width: 380px;
|
| 94 |
+
background: var(--surface);
|
| 95 |
+
border: 1px solid var(--border);
|
| 96 |
+
border-radius: 12px; padding: 2rem 1.75rem;
|
|
|
|
|
|
|
| 97 |
}
|
| 98 |
.lobby-section-label {
|
| 99 |
font-family: 'JetBrains Mono', monospace;
|
|
|
|
| 120 |
}
|
| 121 |
.lobby-row input[type=range]::-webkit-slider-runnable-track {
|
| 122 |
height: 2px;
|
| 123 |
+
background: var(--border2);
|
| 124 |
border-radius: 1px;
|
| 125 |
}
|
| 126 |
.lobby-row input[type=range]::-webkit-slider-thumb {
|
| 127 |
+
-webkit-appearance: none; width: 12px; height: 12px;
|
| 128 |
+
border-radius: 50%; background: var(--text); border: none;
|
| 129 |
+
cursor: pointer; margin-top: -5px;
|
| 130 |
+
transition: transform 0.2s;
|
|
|
|
| 131 |
}
|
| 132 |
.lobby-row input[type=range]:hover::-webkit-slider-thumb {
|
| 133 |
+
transform: scale(1.15);
|
| 134 |
}
|
| 135 |
.range-val {
|
| 136 |
font-family: 'JetBrains Mono', monospace;
|
|
|
|
| 159 |
transition: border-color 0.2s, box-shadow 0.2s;
|
| 160 |
}
|
| 161 |
#systemPromptInput:focus {
|
| 162 |
+
border-color: var(--text-muted);
|
|
|
|
| 163 |
}
|
| 164 |
|
| 165 |
.lobby-prompt-tabs {
|
|
|
|
| 188 |
color: var(--text);
|
| 189 |
}
|
| 190 |
.lobby-tab.active {
|
| 191 |
+
background: var(--surface2);
|
| 192 |
+
border-color: var(--text);
|
| 193 |
+
color: var(--text);
|
|
|
|
| 194 |
}
|
| 195 |
|
| 196 |
.lobby-agent-edit-row {
|
|
|
|
| 207 |
transition: border-color 0.2s, box-shadow 0.2s;
|
| 208 |
}
|
| 209 |
.lobby-agent-edit-row:focus-within {
|
| 210 |
+
border-color: var(--text-muted);
|
|
|
|
| 211 |
}
|
| 212 |
.lobby-agent-color-dot {
|
| 213 |
width: 10px;
|
| 214 |
height: 10px;
|
| 215 |
border-radius: 50%;
|
| 216 |
background: var(--accent);
|
|
|
|
| 217 |
flex-shrink: 0;
|
| 218 |
transition: all 0.2s ease;
|
| 219 |
}
|
|
|
|
| 234 |
|
| 235 |
.lobby-deploy {
|
| 236 |
width: 100%; margin-top: 24px;
|
| 237 |
+
padding: 14px; border: 1px solid var(--border); border-radius: 8px;
|
| 238 |
+
background: var(--surface2);
|
| 239 |
+
color: var(--text);
|
| 240 |
font-family: 'Space Grotesk', sans-serif;
|
| 241 |
+
font-size: 12px; font-weight: 600;
|
| 242 |
+
text-transform: uppercase; letter-spacing: 0.15em;
|
| 243 |
+
cursor: pointer;
|
| 244 |
+
transition: all 0.2s ease;
|
|
|
|
| 245 |
}
|
| 246 |
.lobby-deploy:hover {
|
| 247 |
+
background: var(--text);
|
| 248 |
+
color: var(--bg);
|
| 249 |
+
border-color: var(--text);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 250 |
}
|
| 251 |
+
.lobby-deploy:disabled { opacity: 0.4; cursor: not-allowed; }
|
| 252 |
|
| 253 |
.ctrl-btn.warming {
|
| 254 |
border-color: var(--accent);
|
|
|
|
| 1267 |
|
| 1268 |
/* ═══════════ LOBBY PARTICLES ═══════════ */
|
| 1269 |
(function initLobbyParticles() {
|
| 1270 |
+
// Disabled for minimal, clean design
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1271 |
})();
|
| 1272 |
|
| 1273 |
const BOT_NAMES = ["Vex", "Nyx", "Kael", "Zara", "Cypher", "Helix", "Apex", "Blaze"];
|