Button
.big-btn + data-corners="button". The one button style used on every screen. Corner sprites sit on top of the border.
Everything the game is drawn with: eight colors, two typefaces, a handful of
components and two sprite sheets. Every value on this page comes from
tokens/tokens.json — change it there, run npm run tokens,
and the game and this page update together.
The canvas reads these same CSS variables when it draws stars, platforms and shards, so palette tokens must stay 6-digit hex. Click a swatch to copy its variable.
Collect every shard to open the portal. Each shard refills the run meter.
.big-btn + data-corners="button". The one button style used on every screen. Corner sprites sit on top of the border.
kbd, .shard-icon and the three-column .controls grid.
.hud with .pills. The run meter (.boost) turns cyan while .active. Drag the slider to see it.
.frame + data-corners="frame" holds the game. .game-overlay covers it for the start, pause and success screens. Frame tokens: --frame-*.
assets/images/spritesheet.png — 6 × 4 frames of 250 × 350 at 1x, exported at 2x.
Animations are defined in assets/js/sprites.js; the previews below play from that same table.
assets/images/VoidRunner-ContainerEdges.png — two 80 × 80 frames at 1x, exported at 2x.
Each is drawn as a top-left corner and flipped for the other three (assets/js/corners.js).
frame · col 0button · col 1Generated from tokens/tokens.json. References like {color.cyan} become var(--cyan).
| Variable | CSS value | Resolves to | Use |
|---|