Thinking
<koala-thinking> is the spinner plus a word from ThinkingWords
This is the indicator for anywhere Joey is working. A bare spinner says only that something is
happening, and next to a control the reader has just pressed the likeliest reading is the
wrong one: their click being processed, rather than the assistant thinking. The word says who
is busy. They live in the design system, not the call site, because they are product copy in
Joey's voice that appears on half a dozen surfaces.
One word by default, held until the work finishes. It rotated everywhere once and the interval was tuned four times without landing: most of these waits are two to four seconds, so any pace slow enough not to feel hurried never fired anyway, and a label that changes while nothing has changed is decoration pretending to be information. Variety comes from the word being drawn afresh each time the indicator appears.
roomy draws on the longer, more characterful words as well, for somewhere with
a full line to spend. Leave it off inside a button, where a long word makes the thing it
sits in change width while the reader watches it.
cycle-seconds is the exception, and it is for a wait measured in MINUTES —
reading thirty uploaded documents, not answering one question. A single word held that long
reads as a frozen screen rather than as patience. Nothing below about four seconds: the reader
is watching the thing they are waiting for, and a word that changes faster than they can
finish reading it is a fidget. Leave it off everywhere else.
API
bool — Draw on the longer, more characterful words as well.int — Draw a fresh word every this many seconds, for a wait long enough that one held word reads as stuck.IconSize — Size of the glyph and the text.bool — Just the breathing sparkles, with no word — for a layout that already says what is happening somewhere else…string? — An Alpine expression that OVERRIDES the picked word while it returns something truthy — for a wait long eno…bool — The words WITHOUT the sparkles, for a surface where the glyph is already on screen — the upload row carries…string?