The framework mixes several visual vocabularies: admin, student, and scoreboard pages all look subtly different. The recent shared _navbar.html fixed the top bar, but the rest is still inconsistent.
Pain points
- CSS stacks: Bootstrap 4 + Bootstrap-Material-Design on admin/student pages, a scoped retro-terminal stylesheet under
.sb-wrap on the default scoreboard.
- Typography: Roboto (material), Google Fonts Major Mono / IBM Plex Mono (scoreboard), and third-party vendor fonts (ace-builds, diff2html).
- Colors: no shared tokens.
global.css hardcodes #8dae25 and #17365c, the scoreboard uses its own --sb-* vars, forms use raw Bootstrap defaults.
- Components: buttons, cards, tables, alerts, modals, and error pages render differently across admin vs. student vs. scoreboard.
Proposed direction
- Commit to one design (e.g. extend the retro-terminal aesthetic site-wide, or retrofit the scoreboard into a single light theme).
- Extract shared CSS variables for colors, spacing, radii, typography, motion.
- Vendor one typography pair, load it once.
- Drop Bootstrap-Material-Design, keep a single lean component layer.
- Reskin admin pages, student forms, error pages, scoreboard default view against the shared tokens.
Related: 7300ee0 unified the top navbar via _navbar.html.
The framework mixes several visual vocabularies: admin, student, and scoreboard pages all look subtly different. The recent shared
_navbar.htmlfixed the top bar, but the rest is still inconsistent.Pain points
.sb-wrapon the default scoreboard.global.csshardcodes#8dae25and#17365c, the scoreboard uses its own--sb-*vars, forms use raw Bootstrap defaults.Proposed direction
Related: 7300ee0 unified the top navbar via
_navbar.html.