theme
The look of every screen in First Light: Betocsin, in one place: the palette, the type scale, the metrics, the drawn devices, and the two pieces every card is assembled from.
theme
The look of every screen in First Light: Betocsin, in one place: the palette, the type scale, the metrics, the drawn devices, and the two pieces every card is assembled from.
local T = require("game.screens.theme")
local m = T.metrics()
local tree = T.card(m, { id = "flb_title", children = { ... } })
What it holds
T.color | The tinctures, by their heraldic names — azure, argent, or_, gules — plus the night grounds and the dawn ramp's indigo / rose / ember. |
T.font | Three families: display (EB Garamond), body (PT Serif), numeral (Cousine). |
T.metrics() | Everything a layout needs, off the LIVE ui.screenSize(): the type scale, the card column width, the row width, the padding rhythm. |
T.device(lit) | The town's device — the bell over a lozengy tower — as inline SVG. lit is how much dawn is on the bronze. |
T.lozenge(fill) | The small diamond used as a bullet, a tick and a focus pip. |
T.trimDiagram() / T.swingDiagram() / T.dawnDiagram() | The three drawn rules of the how-to card. |
T.band(m, id) | The lozengy rule that divides a card. |
T.card(m, opts) | A card shell: the scrim, the centred column, the frame, the entrance move. |
T.row(m, opts) | One selectable line of a card, with its lit state and its pointer target. |
T.para(m, id, text, style) | A wrapping paragraph. |
T.legend(m, text, id) | The small line under a card's rows naming what each device family presses. |
Two rules it exists to keep
Nothing is a pixel chosen for one screen. The type scale reads off
min(width, height 0.75), so a tall frame scales type by its width and a wide
one by its height; the card is a single centred column at
min(0.86 · width, 0.6 · height). The same card reads on a 3:4 phone held
upright and on a 16:9 television.
A wrapping label carries its width on the box around it. T.para is that
box. A label given both wrap and a width collapses to one glyph per line.
Scoped to this part · feeds back into the world's score.