From 86bf245c19d3d26b9a308cfef68ab99576f11036 Mon Sep 17 00:00:00 2001 From: vumast3r Date: Sat, 12 Sep 2026 10:24:38 -0600 Subject: [PATCH] style: redesign exam web UI with a dark developer theme The UI was light everywhere except the embedded terminal, which felt disjointed. Switch to a cohesive dark palette with layered surfaces, tinted state colors for pass/fail/warn/flag, and polish on buttons, cards, overlays, and the question nav (hover/active states, shadows, custom scrollbars). Co-Authored-By: Claude Sonnet 5 --- web/index.html | 150 ++++++++++++++++++++++++++++--------------------- 1 file changed, 86 insertions(+), 64 deletions(-) diff --git a/web/index.html b/web/index.html index d9f0a2a..8263338 100644 --- a/web/index.html +++ b/web/index.html @@ -6,109 +6,131 @@ Exam simulator @@ -409,7 +431,7 @@ const cls = r.pass ? 't-pass' : (r.earned ? 't-partial' : 't-fail'); return `
Q${q.id} ${esc(q.title)}${r.earned}/${r.total}` + r.checks.map(c => `
${c.pass ? '✓' : '✗'} ${esc(c.name)} (${c.pts})
`).join('') + - (q.solution ? `
Reference solution
${esc(q.solution)}
` : '') + '
'; }).join(''); + (q.solution ? `
Reference solution
${esc(q.solution)}
` : '') + ''; }).join(''); const missed = S.questions.filter(q => s.results[q.id] && !s.results[q.id].pass).map(q => q.id); $('#btnDrillMissed').disabled = !missed.length; $('#btnDrillMissed').onclick = () => { $('#results').classList.add('hidden'); start('drill', missed); }; $('#results').classList.remove('hidden'); $('#lobby').classList.add('hidden');