CardArt
The faces of Ada's deck, as 1931 circus handbills: cream paper, woodcut display type, two inks — bone black and velvet — and a worn double border. Pure builders; nothing here reads the run or touches a screen.
CardArt
The faces of Ada's deck, as 1931 circus handbills: cream paper, woodcut display type, two inks — bone black and velvet — and a worn double border. Pure builders; nothing here reads the run or touches a screen.
local CardArt = require("game.ui.CardArt")
CardArt.face("pie", { width = 196, height = 286, left = 51, top = 1111,
rotate = -4, lift = 0, zoom = 1, focused = false,
playable = true, id = "gp-card-1", onClick = "table.card:1" })
CardArt.pile(7, "DECK", 80, "gp-deck", "table.pile:deck", false)
CardArt.glyph("mallet") -- the woodcut alone, as an inline SVG string
CardArt.back() -- the back of a card: velvet stripes and a gold star
Everything inside a face scales from the width it is handed, so the same card
reads on a phone held tall and on a television. A curse card inverts: ink
paper, violet type, the grin in red.
CardArt.pile takes an onClick and an open flag as well as an id: with
them a pile becomes a target a player can ask to look inside, and it lights
while its list is up.
Where the red is
The second ink is velvet, not the saturated grin red — a handbill was printed in whatever red the shop had in the drawer, and holding the saturated one back is what lets it mean something when it does appear. In the whole deck it appears exactly once: the Grin's mouth. Everything else — the pie tin, the umbrella, the seltzer bottle, the barrel hoops, the match head, the curtsey's skirt — is velvet.
A wrapping line needs a box with a width
A label given both props.wrap and a style.width lays out one glyph per
line, and a wrapping label inside a box that hugs its content gets no measure
at all. The title and the rules text therefore sit inside boxes carrying an
explicit pixel width (textW — the card inside its own padding). Read
topics/ui/styling before adding another wrapping line.
Consumed by game.ui.hud, which composes the fan, by game.ui.Table through
it, and by game.ui.screens for the reward faces.
Scoped to this part · feeds back into the world's score.