Final v1

Core specification

Forma is a canonical intermediate representation of user interfaces. It is not raw source data and not final platform code. It is the normalized layer between design input and downstream reasoning or implementation.

Design goals

  • Deterministic normalization
  • Platform-independent representation
  • Semantic roles for AI reasoning
  • Token-first styling
  • Source traceability

Normative language

  • Producers MUST emit stable node identifiers within document scope.
  • Producers MUST emit a valid version.
  • Producers SHOULD emit token references instead of raw values when possible.
  • Consumers MUST ignore unknown extension fields safely.

Top-level concepts

  • Document
  • Node
  • Layout
  • Style
  • SourceRef
  • Confidence and flags
Minimal document shapeJSON
{
  "version": "1.0.0",
  "source": {
    "tool": "figma",
    "fileId": "abc123"
  },
  "nodes": []
}

Required document fields

  • version: semantic version string
  • source: tool origin metadata
  • nodes: normalized node array

Documents may also include tokens, metadata, extensions, and issues.

Node typeMeaningRequired supportNotes
screenTop-level screen or frame-like containerYesEntry points for agent tasks and exports
componentReusable component or symbolYesMay include variants and slots
containerNon-primitive grouping or layout nodeYesUsed for structural grouping
textText primitiveYesMay include rich text extensions later
imageImage primitiveYesReference only, not embedded binary
iconIcon primitiveYesMay reference component or asset