Agents & MCP
Text
JSON
{"type":"text","content":"Ship faster","grow":"fixed-width","w":{"mode":"fill"},"style":{"font":"Inter","size":32,"weight":700,"lineHeight":1.2,"letterSpacing":-0.5}}
Growth
grow | Width | Height | Use for |
|---|---|---|---|
auto (default) | from content | from content | labels, buttons, one-liners. Omit w/h |
fixed-width | w | from content | paragraphs, anything that wraps |
fixed | w | h | fixed boxes. Overflow is cut only by an ancestor's clip |
auto (default)Width from content
Height from content
Use for labels, buttons, one-liners. Omit
w/hfixed-widthWidth
wHeight from content
Use for paragraphs, anything that wraps
fixedWidth
wHeight
hUse for fixed boxes. Overflow is cut only by an ancestor's
clipStyle
font (family), size px, weight 1–1000, italic, lineHeight (a multiplier like 1.4,
or {"px":24}), letterSpacing px, align (left center right justify), valign
(top middle bottom), decoration (["underline"], ["strike"]), case
(upper lower title, applied at render time, so content keeps what was typed), href.
The text color is fill. With no fill, text uses the variable text/default if the document
defines one, else black. So you rarely need to set it, and you should not set fill: [].
Content
contentis literal."$49"is just text. To bind a string variable use{"$ref":"copy/cta"}.- Line breaks:
\ninside the string. - Mixed styles in one node (feature
text/runs, declared for you when an op writes spans):"content":[{"text":"Save "},. A span's{"text":"40%", "style":{"weight":700}, "fill":"#E5484D"}] styleapplies on top of the node'sstyle(font, size, weight, italic, lineHeight, letterSpacing, decoration, case, features); itsfillis a color or a color binding for that span only; itshreflinks that span.alignandvalignstay on the node. Merge neighbouring spans that look the same, and write a plain string when every span would be equal. - Typography tokens (feature
tokens/composite):"style":{"typography":{"$ref":"heading/. Inline fields override the token.l"}}
Fonts
kimo_assets {action:"check_font", family} tells you whether a family is available. If it isn't,
the text renders in a fallback face and measures differently. Use common families (Inter,
Roboto, system stacks) unless the document already uses others.