Shared concepts

Rich text

TipTap HTML used by RichTextBlock, button labels, overlays, and object-bound rich text. Storage shape, toolbar features, and authoring rules are documented here.

Storage Rich text props are TipTap HTML **strings**, not slots and not a separate `html` key. Example: `content: "<p>Hello <strong>world</strong></p>"`. Empty content is typically an empty string or a minimal empty paragraph from the editor.

Authoring & MCP guidance - Keep first-viewport copy short; put long articles in object fields and bind them with ObjectBoundRichText. - Always write the HTML into the documented prop (`content`, `text`, or `overlay`) — do not invent an `html` prop. - Locale overlays localize these HTML strings like other localizable props; the modal Name field is not rich text and is not localized. - Prefer semantic HTML TipTap already emits (`<p>`, `<h2>`, `<ul>`, `<a href="…">`, tables) over hand-authored markup that the schema does not round-trip. - When documenting or generating JSON, treat the value as a string of HTML, never as a nested slot array.

Examples

// Short paragraph
{
  "content": "<p>Browse categories and start a conversation.</p>"
}
// Heading + list
{
  "content": "<h2>What you get</h2><ul><li>Fast setup</li><li>Multi-locale publishing</li></ul>"
}