Skip to content

Graph list

The Graph canvas’s data as a list, for phones (TICKET-078): no columns to pan and nothing to pinch. Summaries first: each layer is a disclosure with its collection, the mode shown, its token count and its worst finding; open, it lists every token with its alias chain and value. A row opens the token in the Detail panel’s bottom sheet.

  • In the playground’s Graph view on screens up to 760 px (the site’s break), instead of the canvas.
  • Wherever the graph’s chains matter more than its shape: the list reads the same as dta token get prints a chain.

The graph as a list on phones, one layer open, a token selected

Light
PrimitivesMode 1 26 tokens1 error

Brand(Alias)BrandB 11 tokens1 error
ScreenTypeDesktop 5 tokens
Graphite
PrimitivesMode 1 26 tokens1 error

Brand(Alias)BrandB 11 tokens1 error
ScreenTypeDesktop 5 tokens

Story: /stories/graph-list/problems/

  • Layers between hairline rules, like the Lint view’s rule rows: a native details/summary (works without script), at least 52 px tall, the collection as a mono kicker (fg-subtle, uppercase), the mode and its count, then the layer’s findings as marker + word (■ 1 error, Status colours) and a › that turns when open. The playground opens the brand layer at first; a file finding (default mode name) sits under the summary as a button that opens it in the Lint view.
  • Token rows: the whole row is a button (at least 52 px): the full token name in mono, then its chain (→ Colors.Foundation.Navy.500) and value with a swatch for colours in fg-muted, or why it does not resolve (does not exist, circular) in status-error-text. A row with a finding ends in its marker and word. Missing targets are not rows here; their alias says so.
  • Selection: the selected row (aria-current) on action-subtle, its text and chain in action-text; the marker and word keep their status colours (TICKET-121). When the selection moves into a closed layer, the layer opens; the component never closes a layer the visitor opened.
  • Paths break between their segments (Token path); nothing scrolls sideways on a phone.
  • Motion: a layer opens by growing (::details-content, motion.duration.base), its chevron turns; a selected row tints over fast (a hover at once). At once under reduced motion. See Motion.

Read from the component’s source:

--action-bg--action-subtle--action-text--bg-subtle--border-default--border-strong--fg-default--fg-muted--fg-subtle--font-mono--font-sans--motion-duration-base--motion-duration-fast--motion-ease-standard--radius-full--radius-sm--space-2--space-3--status-error-marker--status-error-subtle--status-error-text--status-warning-marker--status-warning-subtle--status-warning-text--stroke-focus--stroke-hairline--stroke-ink--type-body-size--type-body-sm-line-height--type-meta-letter-spacing--type-meta-line-height--type-meta-size--type-title-weight