Text

TacitText is how every Tacit surface draws words: Tacit Sans, sized and inked by role, never dimmed by opacity.

Part of a window with the title Low Tide in large type, the line Mara Velde, 2026, three song names with the first slightly heavier, and a small line, 3 songs, 11 minutes.

Use TacitText for every word in an app, and size, ink, weight and cut to say what the words are. Do not set a font, a colour or an opacity yourself: the part keeps text the same across apps, and the type page explains why. The size, weight and cut tables are on this page; Type gives the reasons.

Properties

Four properties say what a piece of text is. Each has a default, so a plain TacitText { text: "Name" } is a row name.

Four lines, numbered. A song title in section size, strong and main ink; an artist in body size and secondary ink; a time in the numbers cut; a source in meta size and meta ink. Each line is followed by the properties that made it.
Four pieces of text and the properties of each.
  1. Titlesize: "section", weight: "strong", ink: "main".
  2. Secondary linesize: "body", ink: "sec".
  3. Factsize: "row", ink: "sec", cut: "numbers".
  4. Beside a namesize: "meta", ink: "meta".

Sizes

The word Undertow at each of the eight sizes, from display at 56 pixels to meta at 13, each with its name and its size.
The eight sizes. Display, alarm and headline use the Display cut; fileText uses the code face.
sizePixelsUsed for
display56A stage subject: the song playing
alarm40Big lines such as lyrics
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 (the default)
fileText14File text, in Tacit Code
meta13Rail counts, the jump index

Inks

Nine boxes, each with a phrase in one ink and the ink's name: main, sec, meta, faint, quiet, past, accent, risk, and onAccent on an accent fill.
The nine inks on the window's ground.
inkUsed for
mainNames, titles, the line in focus (the default)
secFacts: size, time, length, details
metaA name beside a name, ordinals, rail counts
faintUnavailable
quietContext lines: lyrics still to come
pastLyrics already sung
accentThe current place and the primary action's ring; not for running text
riskA destructive action, always last and with the warning symbol
onAccentText on an accent fill
overlayMeta, overlayRiskThe meta and risk inks for text on a menu's overlay, solved on its lit line

The nine inks above are the colours of text on the page; the two overlay inks are for a menu. Small text uses no ink below meta. faint, quiet and past are for what is unavailable or already gone, and for large lines.

Weights and cuts

Three weights of the word Undertow: regular 450, medium 500 and strong 600; and four cuts: running text in the main cut, a page title in the Display cut, figures in the numbers cut, and a file name in Tacit Code.
The three weights and the four cuts.
weightAxisUsed for
regular450Ordinary text
medium500A current row, a rich row's title
strong600Headings and titles
cutFaceUsed for
mainTacit SansEverything by default
displayTacit Sans DisplayOne-line titles at 30 pixels and above
numbersTacit Sans, tabular figuresFigures in rows and columns
codeTacit CodeFile text and code

States

Text has none, is not a stop for Tab and does not answer the pointer. The pointer, the keyboard and selection change the part that holds the text, never the text itself. A name that is not one of the lists above falls back to the default for that property.

Accessibility

Writing

Put figures in the numbers cut where they line up in a column: sizes, times, counts. What the words say is on Writing.

Do and don't

Four sizes, 11.6 MB, 111 kB, 1.1 GB and 81 kB, right-aligned in a column with digits of equal width.
DoUse the numbers cut for a column of figures. The digits line up.
The same four sizes right-aligned in the main cut, where the digit 1 is narrower than the others.
Don'tLeave figures in the main cut. Digits of different widths make the column ragged.

Code

import Tacit.Kit

Column {
    TacitText { text: song.title; size: "section"; weight: "strong" }
    TacitText { text: song.artist; size: "body"; ink: "sec" }
    TacitText { text: song.length; ink: "sec"; cut: "numbers" }
}
PropertyWhat it does
sizeOne of the eight sizes; row by default
inkOne of the inks; main by default
weightregular, medium or strong
cutmain, display, numbers or code

Everything else of Qt's Text works as it does in Qt: text, elide, wrapMode and the rest.

Experimental, in Tacit.Kit 0.1.