Symphoria Board: design spec (v1, 13.10.2026)

Status (13.10): the Board ships now on the interface Symphoria already has. These screens are new-style concept mockups for the landing and the deck. Building this look into the product is a separate job, done later.

For the agent that builds the Board into Symphoria. Your interaction model stays as you built it in the mock (AFFiNE edgeless: toolbar, connectors, frames, notes pinned to entities, territories, map pins, flow blocks, layers, minimap, present mode). This spec changes the look so the Board reads as the same product as the redesigned app, and adds three things the mock did not have: field captures, the record per board action, and agents as visible collaborators.

Screens (all data invented): 1. board-1.webp: overview of a board with three frames. 2. board-2.webp: a note being pinned to an entity, with the context toolbar, the entity's claims card and the inspector. 3. board-3.webp: present mode. 4. board-loop.mp4, 9 s: drop a note, pin it, move the entity (the note follows), lasso a territory.

The source page is board.html. Use it as a reference for sizes and colours; it is not production code.

1. Tokens

All colours, fonts and sizes match the app v2 screens.

Token Value Use
bg #080808 canvas, top bar
panel-1 #101010 floating panels, rail, cards
panel-2 #121212 note body
panel-3 #202020 active segment, selected row
line #252525 panel borders, dividers
line-2 #363636 buttons, pills, graph edges at rest (#3a3a3a)
frame-line #2c2c2c frame border; frame fill rgba(14,14,14,.55)
grid-dot #1d1d1d, 1 px, 24 px step canvas dot grid (scales with zoom)
text #F6F6F6 primary text
text-dim #858585 secondary text
text-faint #5c5c5c meta (author, time, counters)
mint #21DDA7 the one accent: focus, selection, active tool, signed, territory, agent
on-mint #04140E text on mint
mint-wash rgba(33,221,167,.045) territory fill
amber #E8C15A hypothesis notes
red #FF5151 anomaly notes, contradicting edges
font-ui Inter 400/500/600, 13 px base, 12.5 px controls all UI
font-mono Roboto Mono 400, 9.5–11.5 px edge labels, meta, coordinates, record lines
font-title Inter 300, 30 px, −2 % tracking the board title on the canvas
radius 2–3 px for cards and notes, 5–7 px for panels and buttons
shadow 0 14px 40px rgba(0,0,0,.45) objects, 0 20px 50px rgba(0,0,0,.5) panels

Rules: - Mint is the only bright colour. Amber and red are used only on note types and contradicting edges. - No gradients and no glows, with two exceptions: the focused entity and the present-mode laser pointer. - No pastel sticky notes. Every note is a dark card with a coloured type bar. - Edge labels are uppercase mono with 6 % tracking, on a bg plate so they cut the line.

2. Shell

3. Floating panels

All floating panels use panel-1, a 1 px line border, a 6 px radius and the panel shadow, 14 px from the canvas edges.

4. Board objects

Object Look States
Entity (from the graph) company = 14 px square, 1.6 px white stroke; person = circle; name Inter 500 13 px; type in mono dim rest · focused (mint dot in a mint ring, soft glow) · snap target (mint 5 px halo while a note or connector hovers) · selected
Edge 1.2 px #3a3a3a; label mid-edge contradiction: red dashed plus a red label («70 % · 51 %?») · proposed or traced: mint dashed
Note 212 px card, panel-2, 1 px #2a2a2a, 3 px type bar on the left; chip with the type; author and time; text 13 px; footer in mono: pinned · <entity> and a status types: Question (mint), Hypothesis (amber), Anomaly (red), Evidence (white), Gap (grey, dashed border, outlined chip). States: rest · hover · selected (mint 1.5 px outline 4 px out plus four square handles) · dragging · pinned
Pin a dotted 1 px line from the note's nearest edge to the entity, with a 3 px dot on the entity a pinned note moves with its entity; the line turns mint while the note is selected
Frame 1 px #2c2c2c rectangle with a faint fill; the title sits above it: number in mint mono, name in Inter 500 frames are the slides of present mode, in their numbered order
Territory a closed smooth path drawn with the lasso; 1.3 px mint dashed (5/4); fill mint-wash; label uppercase mono mint drawing (a solid line follows the cursor) · closed (dashed, filled) · selected (handles on the path)
Place a card with a PLACE chip and the address; a dark vector mini map with a mint pin; footer with what is known there the map has no raster tiles: the same dark style as the canvas. Real tiles may only be added greyscale at 30 %
Field capture a card with a photo from the glasses or the drone; a plate bottom left (DRONE · PASS 2 OF 3, GLASSES · SIGN READ); footer with the time and signed ✓ a mint box marks what the capture found (a sign); a mint dotted pin goes to the entity it found. Photo, place and time are one signed record
Flow block a card with a FLOW chip: a chain of nodes with mint dashed arrows and amounts in mono an unknown end is a dashed circle with a grey arrow («?», «to trace»)
Pen 2 px mint, round caps a stroke can be pinned to an entity like a note
Text Inter 300 for titles, 400 for body; white or dim only
Cursor a person: white arrow with a name plate; an agent: mint arrow with a plate saying what it is doing («Agent · adding a source») an agent's actions on the board land in the record the same way a person's do

5. Interaction details

6. What the Board must never show publicly

7. Build order (our suggestion; you decide)

  1. Restyle the existing mock to these tokens: notes, entities, edges, frames, panels, toolbar.
  2. Pin and follow, the snap halo, the context toolbar.
  3. The inspector with the record lines: wire the board actions to the ledger.
  4. Field capture cards: one card type, fed by the glasses and drone captures.
  5. Present mode restyle, then the read-only link.