Install
openclaw skills install @monikazapisek/ui-text-overflowChecks whether text overflows its container in a user interface: cards, list rows and other components. Compares line counts across siblings, gives a character budget per text role, finds truncated text with no way to read the rest, and tests longer copy, translation and larger text.
openclaw skills install @monikazapisek/ui-text-overflowCheck how text sits in the container it was given: whether sibling components carry comparable amounts of text, whether anything is cut off without a way to read it, and whether the layout holds when the text gets longer or larger. The output is a measurement and a budget that a writer or designer can act on.
line-length-optimizer), and not for rewriting text to fit.This skill is an audit, not an interview. Work in this order: read what the file or the input already says, report, then ask.
Questions this skill may need:
Readers see uneven line counts, not character counts. For each text role across the sibling set:
A difference in line count is a finding to report, not an error by itself. No typographic source prescribes equal text lengths across cards; what the sources do require is that the content stays available (Rule 3) and the container adapts to it (Rule 4). Say this when reporting, so an uneven grid isn't presented as a rule violation.
Turn the measurement into something a writer can use:
characters per line = characters in the text / lines it takes (averaged over the siblings)
budget = characters per line × target number of lines
Platform requirement (Material Design 3, "Text truncation"): information stays available to the reader even when text is truncated or wrapped.
Platform requirement (Material Design 3): use flexible containers that change size to fit their content.
Check the layout under the conditions real use produces. Report the first condition at which content is lost or overlaps.
| Condition | What to apply | Source |
|---|---|---|
| Longer copy | The longest string the component already holds elsewhere in the file, placed in every sibling | — |
| Translation | Real strings in the target languages. English is often shorter than other European languages; German compounds run long | Google Fonts Knowledge, "Language support in fonts" |
| User text spacing | Line height 1.5 × font size, paragraph spacing 2 ×, letter spacing 0.12 ×, word spacing 0.16 × — content and function must survive | WCAG 2.2, SC 1.4.12 |
| Larger text | The platform's larger text setting; the hierarchy between text roles must remain visible | Apple Human Interface Guidelines, "Typography" |
The WCAG values are a robustness test, not recommended settings. Don't write them into the design.
When running with Figma access, work on the selected components instead of asking for pasted text.
characters, width, height, lineHeight, fontSize, textAutoResize, textTruncation, maxLines.textAutoResize: "HEIGHT", estimate lines as height / line-height in px, rounded. Resolve a percentage or AUTO line-height to px first; say when the value is an estimate.textTruncation: "ENDING" (optionally with maxLines) or textAutoResize: "TRUNCATE" means text can be cut. "NONE" with content taller than the box means text is clipped with no ellipsis — report that as the more serious case.textAutoResize: "NONE" or "TRUNCATE" on the text, or a parent Auto Layout frame with a fixed height on the text's axis.textAutoResize: "HEIGHT" so the box follows the text, or set textTruncation and maxLines where truncation is agreed and the full text is reachable. Never edit characters to make a text fit.TextNode.textAutoResize, TextNode.textTruncation, TextNode.maxLines.line-length-optimizer (reading width), vertical-spacing (space between the blocks), microtypography (line endings inside the text).