Teaches coding agents how to build TUIs with TamboUI correctly: API-level selection, render-thread discipline, display-width safety, CSS-aware element authoring, and JFR conventions.
87
90%
Does it follow best practices?
Impact
84%
1.44xAverage score across 5 eval scenarios
Passed
No known issues
Toolkit offers several factories for "show some text" — text, richText, richTextArea, markupText, and the cell-content path inside list. Each computes its preferred size differently, so choosing the wrong one produces clipped output, ellipsis truncation, or a column layout that shrinks every line to height 1. Why: in a column(...) or panel(...), parent layout calls preferredSize(width) on each child to allocate rows — and only some text elements actually wrap to compute their real height.
text("...") — fastest, no wrap, no width mathrichText(...) — height is always 1, content past the width clipsrichTextArea(...) — preferredSize computes the wrapped height, so column layouts give it the rows it needsmarkupText(...) — height behaves like richText, do not use for long contentlist(...) — pre-wrap long strings into multiple short items (see [[build-log-style-list]])RichTextElement.preferredSize(width) returns text.height() = 1 regardless of .wrapWord() — the modifier sets a flag the size calculation never readscolumn(...) each richText(...) child gets exactly one row; long content truncates with ellipsis even when the column has empty rows belowrichTextArea(...) (which computes wrapped height), or pre-wrap the string yourself and feed multiple text linestext(...) returns a TextElement whose .constraint() is a zero-arg getter — there is no setter overload, so you cannot give a bare line a fixed height in a column layoutArgument type mismatch: actual type is 'Constraint!', but 'Element!' was expected. Too many arguments for 'fun constraint(): Constraint!'..constraint(...): row(text("...")) or column(text("...")) — containers are where sizing constraints liverichText clipped with … inside a panel — switch to richTextArea or pre-wraptext("...").constraint(length(3)) compile error — wrap in row(...) or column(...)list cell falling back to ellipsis — pre-wrap into multiple list items (see [[build-log-style-list]])evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
rules
skills