Centinadocs

Context

A context is a lightweight, freeform-labeled group. Elements that share one are thereby related — there's no arrow, no direction, no hierarchy: the shared membership is the relationship. Contexts span pages and cost nothing to make; the label is the whole setup.

The driving use: you plan a site as a wiremap, then build a high-fidelity mock of one of its cards on another page. Put both in a context ("Pricing page") and they stay findable from each other forever — through renames, moves, restyles, copies — because nothing about either element stores the other; they just share a label.

Adding elements to a context

  • Right-click → Add to context… — a small chip composer at your cursor. Every context is a chip you tap: accent ✓ chips are the contexts this element is already in (tap to leave — hover shows the ✕), solid chips join with one tap, and dashed + chips are labels that don't exist yet, proposed from what the canvas already knows — the enclosing wiremap card's title as "‹Title› page", the element's own name. Relevant chips lead: contexts that nearby elements belong to, then your recent ones. The field below filters the chips live or mints free text on Enter, growing a dashed chip for whatever you've typed. Tapped chips flip in place and the composer stays open, so filing a batch is tap, tap, tap. Works on multi-selections.
  • The inspector's Context section (right panel, near the top): press + for the same suggestions, or type a fresh label. Labels match case-insensitively — "pricing page" finds "Pricing page" rather than creating a twin.

A quiet two-circle glyph appears on the element's Layers row (and on top-level boxes' canvas labels) whenever it belongs to any context — hover it to see which.

Click a chip in the inspector's Context section:

  • The member list shows everything in the context, with the page named when a member lives elsewhere. Click one to jump — the canvas switches page, selects it, and frames it.
  • The squares button selects every member on one page at once (with a toast counting members elsewhere).
  • The popover also holds the context's name (edit in place; renames refuse collisions), a note ("what is this context?"), Remove from context for the current selection, and Delete context — which removes the group and every membership in one step; ⌘Z restores all of it.

Contexts with no members stick around on purpose: a label you made (or an agent pre-created) is worth keeping until you delete it.

What survives

  • Duplicates share their original's contexts — a copy of the pricing mock is still pricing material. Remove it from the context if not.
  • Copy/paste keeps contexts, including into another canvas: the labels travel with the clipboard, and pasting reconciles by label — if the target canvas already has a "Pricing page", the pasted elements join that one.
  • Deleting an element simply drops it from its contexts (undo brings the membership back with it). Deleting a context is the explicit verb above.

For agents

Contexts exist largely so agents can infer intent. get_node_info reports every context an element belongs to with its other members — an agent asked to edit the mock reads its contexts, finds the wiremap card, and has the structure it realizes for free. get_canvas_info lists all contexts with member counts; set_contexts joins/leaves by label (unseen labels mint, like tags); update_context_groups renames, notes, and deletes. See the MCP guide.