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.
76
95%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Toolkit elements that have sub-components (cursor, placeholder, scrollbar thumb, list item, etc.) must let users style them three ways: by explicit Element-API call, by CSS rule, or by the element's built-in default. The order is explicit > CSS > default, and the helper that enforces it is StyledElement.resolveEffectiveStyle(). Why: any element that bakes in Style.EMPTY as a default kills the CSS path entirely — the cascade has nothing to override because the explicit value is already set.
private Style cursorStyle; — leave them null by defaultnull means "use CSS or fall back to the default"; Style.EMPTY means "explicitly empty, do not let CSS override" — they are not the samenull (to clear an explicit value) or a real Styleprivate static final Style DEFAULT_X_STYLE = ... per child role (e.g., DEFAULT_CURSOR_STYLE, DEFAULT_PLACEHOLDER_STYLE)Style.EMPTY.reversed(), Style.EMPTY.dim()) so they compose cleanlyStyle effective = resolveEffectiveStyle(context, "cursor", cursorStyle, DEFAULT_CURSOR_STYLE);resolveEffectiveStyle(context, "item", PseudoClassState.ofSelected(), highlightStyle, DEFAULT_HIGHLIGHT_STYLE);ListElement-item matches "item")<h2>CSS Child Selectors</h2> block to the element's class JavaDoc listing every selector and its defaultAGENTS.md ("Available CSS Child Selectors") so other authors can discover itrules
skills