uichemy_set_text_style
Style ONE element — its alignment, size, colour, hover colour or semantic tag — keyed by the text_* slot its copy lives in (uichemy_get_page lists those, including badge labels). This is the Text panel, not the global scale: use uichemy_set_type_scale to move every heading at once. COLOUR takes a ROLE (primary, accent, extra1, extra2, titleLight, descriptionLight), which follows palette changes and the surface the text sits on; a RAMP SHADE { role, step } (0 is the lightest of the picker's ten); or a #hex. A shade or a hex is stored as that hex and does not follow a later palette change. hoverColorRole takes the same. A BUTTON label takes no per-element colour — in the editor either — because its ink belongs to the button's role; use uichemy_set_button_design labelColor. SIZE IS A SLOT ON THE GLOBAL SCALE — heading-lg, body-md — painted as a variable, so a resized element still ramps across breakpoints instead of pinning to one pixel value.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Semantic level. Stored for export; not painted on the canvas. | |
| align | No | ||
| sizeKey | No | heading-xs|sm|md|lg|xl|2xl|3xl|4xl|5xl, or body-sm|md|lg|xl. | |
| textKey | Yes | A `text_*` slot id, from uichemy_get_page. | |
| colorRole | No | A role ("primary", "titleLight" …), { role, step } for a ramp shade, or "#RRGGBB". uichemy_get_colors lists the roles. | |
| projectId | Yes | ||
| hoverColorRole | No | The colour on hover. Same forms as colorRole. |