Skip to content

Appendix A — Design System

Token Model

Fireside design guidance is token-first: renderers map semantic tokens to terminal styles, rather than hard-coding colors into components.

Core Color Tokens

TokenIntent
surface-primaryBase presentation background.
surface-secondarySecondary panels and callout containers.
text-primaryPrimary readable content.
text-secondarySupporting labels and metadata.
text-mutedDe-emphasized helper text.
accent-primaryActive focus and key highlights.
accent-secondarySecondary emphasis and links.
border-defaultDefault panel and separator borders.

Spacing Tokens

Use cell-based spacing in terminal renderers.

TokenSuggested Cells
space-11
space-22
space-33
space-44
space-66
space-88

iTerm2 Intent Mapping

Engines that import iTerm2 schemes SHOULD map intent, not just index.

iTerm2 SlotFireside TokenRender Intent
Background Colorsurface-primaryGlobal canvas background.
Foreground Colortext-primaryMain text color.
Selection Colorsurface-secondaryFocused panel background.
Cursor Coloraccent-primaryActive pointer/focus affordance.
Ansi 8 / bright neutraltext-mutedSecondary metadata and hints.
Ansi 4 / link-like accentaccent-secondaryLink or secondary callout accents.

When a token cannot be mapped directly, engines SHOULD use nearest-contrast fallbacks that preserve readability before visual fidelity.

Theme Source Guidance

The protocol does not mandate a theme file format or folder structure. Engines MAY accept JSON, CLI flags, or platform-native settings, as long as token intent remains consistent.

Accessibility Guidance

  • Target at least WCAG AA contrast intent where terminal capabilities allow.
  • Never rely on color alone for branch selection state.
  • Provide redundant cues (, bold, underline, border changes).
  • Support monochrome fallback for low-color terminals.

Renderer Contract

A renderer SHOULD separate concerns:

  1. Token resolution (theme/defaults/runtime context).
  2. Layout resolution (from layout value).
  3. Component drawing (block-by-block render).

Keeping these stages separate makes adaptation to different terminal palettes and accessibility modes predictable.