Type

One typeface, Tacit Sans, with a Display cut for large titles, and Tacit Code for code. Eight sizes, three weights, and colour from four inks, never from opacity.

The scale

The eight sizes, each with a sample line: display 56, alarm 40, headline 30, section 22, body 17, row 15, fileText 14 and meta 13.
The scale, with the cut of each.
RoleSizeUsed for
display56A stage subject: the song playing
alarm40Big lines such as lyrics; a stage subject at half width
headline30The page title, the path
section22An album on an artist page, the line under a stage subject
body17Section headings, rich row titles, the one sentence of an empty or failed page
row15Row names and facts, actions, rail labels
fileText14File text, in Tacit Code
meta13Rail counts, the jump index

Weights

Tacit Sans is a variable font on its weight axis. Ordinary text is 450, not 400. Medium (500) is for a row that is current or a rich row's title. Strong (600) is for headings and titles. The text page lists the weights with the cuts.

Cuts

Display is for one-line titles at 30 and above. Tacit Sans Display is drawn for large sizes and tight spacing: the page title, the stage subject. Running lines, lists and anything that wraps use the main cut. Figures in rows use the numbers cut: Tacit Sans with tabular digits, so a column lines up. File text and code use Tacit Code, a separate face. The four cuts are main, display, numbers and code.

Inks, not opacity

Text gets its level from an ink. Dimming a word with opacity lets the wallpaper into the letters, and the contrast then changes with the wallpaper. The four text inks keep an APCA contrast of 92, 85, 75 and 60 on every palette, and the hairline 16. Small text uses nothing below the meta ink, at 75. Colour lists them.

A title in the main ink, a fact in the secondary ink and a source in the meta ink.
DoThree inks for three levels.
The same lines with the second and third faded by opacity.
Don'tFade text with opacity. On a bright wallpaper it falls below the floor.

Rendering

Text is drawn natively without hinting. The kit's TacitText does this and sets the cut, size, weight and ink from names, so an app writes size: "body"; ink: "sec" and not a pixel size or a colour.

Experimental, in Tacit.Kit 0.1.