Canvas Design System
Main Site Tokens

Planner Activity Inspector

The selected-activity mode of the right rail in the Workshop Planner. Sibling of ws_planner_inspector_rail — same visual shell, different sections driven by the currently-selected agenda item: identity, overview, energy impact, logistics, facilitator notes, when-it-runs, and actions. Pick which of the two to render based on whether the user has selected an activity on the timeline.

Canonical — activity selected

Rendered when a timeline card is focused. The component carries its own accent stripe on the left border (driven by type) so the rail visually ties to the selected card.

Type accents — icebreaker, break, custom

The type token drives the left-border stripe, the energy-bar fill, the net-badge tint, logistics bullet color, note rule, and button hover color — all in one.

Minimal — identity + actions only

Every section is optional. Use this variant for custom activities or library items that haven't been annotated yet.

API Reference

OptionTypeDescription
typestringexercise (default) | icebreaker | break | custom. Drives left-border color, energy-bar fill, net-badge tint, bullet color, note rule, and button hover.
duration / groupSizestring / stringComposed into the eyebrow: EXERCISE · 60 MIN · 6–12 PPL. Omit either to drop it from the eyebrow.
titlestringActivity title (required). Rendered in the display/serif font at 22px.
tagsarraySmall tag strings joined with · and rendered in mono uppercase below the title.
closableboolShow the × close control in the eyebrow row (default true).
overviewstringOne or two sentences in the display font. Also serves as the content of the "Overview" tab when instructions are provided.
instructionsarray | string | nullStep-by-step facilitator instructions. Pass an array of strings (rendered as a numbered list with mono step counters) or a string (rendered as HTML — callers own the markup). When present, the Overview section becomes a two-tab panel: Overview · Instructions.
activeTabstring'overview' (default) or 'instructions'. Which tab renders active on first paint.
energyarray | null['net', 'dimensions' [{label, delta, fill 0..100}]]. The net badge is tinted in the type accent.
logisticsarrayStrings rendered as a 2-col mono bulleted grid. Bullets tint with the type accent.
notesarray | null['body', 'author', 'date', 'canAdd' bool]. Body renders as a blockquote with a left accent rule. canAdd surfaces a + Add affordance.
contextarray | null['time', 'description']. Rendered as a dashed-border mono pill.
actionsarrayPrimary action row. Each item: ['label', 'icon?', 'action', 'href?']. The grid auto-divides into equal columns.
destructivearray | nullSingle destructive action rendered full-width below the primary row, with red-tinted border + hover.
id / class / attrsstring / string / arrayStandard passthrough.

Design Guidance

Do

  • Swap to this component from ws_planner_inspector_rail when the user selects an activity on the timeline; swap back when they deselect or click ×.
  • Let the type token drive every accent — left border, energy bars, logistics bullets, note rule, buttons. Don't hardcode phase colors in consumers.
  • Keep overview to 1–2 sentences. Deeper descriptions belong in the library detail page, not the rail.
  • Use the net badge as the headline number. Per-dimension deltas are supporting detail; +16 NET is the story.

Don't

  • Don't render both ws_planner_inspector_rail and ws_planner_activity_inspector at the same time — the right column shows one or the other based on selection state.
  • Don't use actions for more than 3 primary actions at 340px width; the mono labels wrap poorly in narrower columns.
  • Don't put destructive actions in the primary actions array. The standalone destructive slot exists because removal deserves visual separation.