From c3e87d947bfefa258334b7e4cdacc1c31d48b93e Mon Sep 17 00:00:00 2001 From: nicodes Date: Wed, 7 Oct 2026 08:29:57 +0200 Subject: [PATCH] Rebuild Termcade as an arcade cabinet --- src/layouts/Full.astro | 2 +- src/pages/index.astro | 1318 +++++++++++++++++++++++++++++----------- src/styles/global.css | 118 +++- 3 files changed, 1056 insertions(+), 382 deletions(-) diff --git a/src/layouts/Full.astro b/src/layouts/Full.astro index cf77667..fce4058 100644 --- a/src/layouts/Full.astro +++ b/src/layouts/Full.astro @@ -85,7 +85,7 @@ const structuredData = [ - + diff --git a/src/pages/index.astro b/src/pages/index.astro index b73bd71..85a24bd 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -22,8 +22,7 @@ const indexScreen = frame(indexFrame); const repo = 'https://github.com/aviorstudio/termcade'; const releases = 'https://github.com/aviorstudio/termcade/releases'; const docs = 'https://github.com/aviorstudio/termcade/blob/main/docs'; -const icon = (name: keyof typeof octicons, size = 16) => - octicons[name].toSVG({ width: size, height: size }); +const icon = (name: keyof typeof octicons, size = 16) => octicons[name].toSVG({ width: size, height: size }); // Every game in the starter pack. They are packages embedded in the binary, // not game code compiled into the host, and run through the same wasm boundary @@ -44,8 +43,7 @@ const games = [ { name: 'BRICKOUGH', from: 'Bundled', - blurb: - 'Breakout-style brick breaker: steer the ball with paddle english, clear the wall, survive the speed-up.', + blurb: 'Breakout-style brick breaker: steer the ball with paddle english, clear the wall, survive the speed-up.', }, ]; @@ -94,8 +92,14 @@ const commands = [ // What a game author is committing to. All of it is in sdk/game.go and // sdk/input.go, which between them are also the whole dependency list. const contract = [ - { term: 'Ticks', def: 'Update() runs exactly 60 times a second, stepped off the measured clock rather than drifting' }, - { term: 'Input', def: 'four directions, two action buttons and start — with real releases where the terminal sends them' }, + { + term: 'Ticks', + def: 'Update() runs exactly 60 times a second, stepped off the measured clock rather than drifting', + }, + { + term: 'Input', + def: 'four directions, two action buttons and start — with real releases where the terminal sends them', + }, { term: 'Drawing', def: 'a canvas in square logical units; the game never sees the pixel grid it lands on' }, { term: 'HUD', def: 'labelled fields and a hint. The shell owns every pixel of the styling' }, { term: 'Dependencies', def: 'the sdk module, which depends on nothing outside the standard library' }, @@ -104,420 +108,1020 @@ const contract = [ --- -
-