
Sign-in
Sign in and sign up on one plate: Google and GitHub keys with their marks stamped in monochrome, an email route underneath, a two-way selector that re-prints the plate, and errors that say how to fix them.
Kit parts
A signature pad as a real wax tablet: a walnut frame around a bed of wax, and a steel stylus that lifts out of its tray, follows the pointer and cuts a groove where you sign. A raking lamp lights the far wall of each cut and shades the near one, so the line reads as carved. Clear sweeps a flat steel edge across and smooths the wax; Undo takes back the last stroke. A plate under the tablet, and a polite status region, say whether it holds a signature.
The tablet is one box: a walnut frame drawn from layered gradients (straight grain, a little figure, fibre from the shared noise token) with a tray cut into its bottom rail, and the wax set into it as a recessed bed. The wax colour is the lamp amber folded into the finish’s own face, so aluminium gets pale beeswax and graphite a dark wax. The groove is five copies of one SVG path, each pushed a pixel toward or away from a lamp at the top left: the shaded near wall, the lit far wall, the dark cut between, and a faint glint and shade on the wax pushed up beside it. The stylus is one clipped steel rod with a point and a flat end; held, it is rotated and foreshortened with its tip on the pointer, and its shadow pivots on the tip, so it meets the pen when it cuts and parts from it when it lifts. Clear runs a steel edge across the wax and clips the groove away behind it. A transparent native button over the wax takes the pointer and the keyboard. Tokens only, no colour written in the part.
| Name | Kind | Description |
|---|---|---|
| label | attribute | Names the stylus for a screen reader (e.g. "Sign here"); it stays fixed, since aria-valuetext carries the changing state. |
| stage-width / stage-height | attribute | The size of the wax: how far the stylus can travel. |
| value | attribute | |
| step | attribute | How far one arrow-key press moves the stylus; Shift multiplies it by 3. |
| disabled | attribute | The stylus and both keys stop taking pointer or keyboard input; the stylus stays in its tray. |
| value | property | |
| clear() / undo() | method | clear() smooths the wax (a flat edge sweeps across, at once under reduced motion); undo() takes back the last stroke. Both fire input and change. |
| strokes / empty | property | strokes: the groove as an array of point arrays. empty: true once every stroke holds no points. |
| input / change | event | input fires as the groove is cut; change fires once a stroke ends (pointer lifted, or Space lifts the stylus), and on Undo and Clear. |
| Space, arrow keys | key | Space lowers or lifts the stylus; arrow keys move it, and while it is down they cut a straight groove (Shift for a bigger step). |
| waxTabletHTML(options) | function |
Drag across the wax to sign; the stylus follows. By keyboard: Tab to the tablet, Space lowers the stylus, arrow keys cut, Space lifts it.

Sign in and sign up on one plate: Google and GitHub keys with their marks stamped in monochrome, an email route underneath, a two-way selector that re-prints the plate, and errors that say how to fix them.

A text input that turns what you type into printed tags. Enter or a comma sets one down in the well; each tag is a key that takes itself away, and every change is spoken.

An in-tray for files. A machined lip stands round a ribbed floor; the floor rises a little when a file is dragged over it, and a lamp on the lip lights. What goes in lands in the tray as a sheet of paper and is listed as printed rows, a refusal says why, and the key inside the tray is a real file input.