Spectrum Design Data
  • Components
  • Tokens
  • Registry
  • AI
  • Specification
  • Tools
  • Draft Specification (v1.0.0-draft) — This specification is under active development. Normative text and schemas may change before the stable 1.0.0 release.

    Registry

    Spec version: 1.0.0-draft (see Overview)

    This document defines the design system registry: the set of named value collections that supply allowed vocabulary for token name fields and component metadata. It describes which registries exist, what each one validates, and the packaging strategy for the current release.

    What a registry is

    A registry is a JSON file in @adobe/design-system-registry that declares an ordered list of named values. Each value has at minimum an id (the canonical string used in token names and component files) and a label (a human-readable display name). Values MAY carry additional fields such as description, aliases, deprecated, and usedIn.

    Registries are the authoritative source of truth for vocabulary validation. A validator SHOULD flag token field values that are not present in the corresponding registry (typically as a warning, not an error — see field declarations in the field catalog).

    Packaging strategy

    All registries ship as a single package: @adobe/design-system-registry. The three semantically distinct registries described below are separate JSON files within that package. Independent sub-package splits are explicitly deferred.

    Rationale: No external consumers currently require independent semver versioning of individual registries. A single package is cheaper to maintain, simpler to consume, and avoids the proliferation of tiny packages with coordinated versioning overhead. If independent versioning needs emerge in a future release, the split can be done with a standard deprecation window per Evolution.

    Registries

    Component anatomy (anatomy-terms.json)

    Validates the anatomy field on token name objects and the id field on anatomy part declarations in component schemas.

    What it contains: Visible, named parts of components as defined in component specification diagrams — the elements called out when designers annotate a component. Examples: label, icon, track, handle, thumbnail, drag-icon.

    Anatomy terms fall into three tiers:

    Tier Description Examples
    Primitive Reusable across many components icon, label, track, handle, divider, title
    Composite Another component used as a named part checkbox, close-button, popover, avatar
    Component-specific Unique to one component loupe, gripper, hold-icon

    File: packages/design-system-registry/registry/anatomy-terms.json
    Validated by: SPEC-020, SPEC-023, SPEC-024, SPEC-025, SPEC-035 (advisory — anatomy part name values SHOULD match the anatomy-terms registry)
    See also: Taxonomy — Component anatomy vs. token objects, Anatomy format

    Token objects (token-objects.json)

    Validates the object field on token name objects.

    What it contains: Abstract styling surfaces that describe where a visual property is applied. Token objects are not anatomy — they are not visible named parts of a component; they are targets for visual properties that exist on any element regardless of its type.

    ID Description
    background Background surface or fill
    border Border or outline
    edge Outer boundary (used in spacing tokens)
    visual Visible graphic element area (may be inset from edge)
    content Main content area

    File: packages/design-system-registry/registry/token-objects.json
    Validated by: SPEC-009 (advisory — name.object field values SHOULD match the token-objects registry)
    See also: Taxonomy — Token objects (styling surfaces)

    Component categories (categories.json)

    Validates the category field on component declarations.

    What it contains: Top-level categories for organizing components by purpose and interaction type. Used for documentation navigation and tooling filters.

    File: packages/design-system-registry/registry/categories.json
    Validated by: SPEC-034 (advisory — meta.category field values SHOULD match the categories registry)
    See also: Component format

    ID scoping

    Registry IDs are scoped to their registry. The same ID MAY appear in multiple registries when the same word is a valid term in each registry's distinct validation context. For example, actions is a legitimate anatomy term (a group of action controls within a list item) and also a component category — these are unrelated concepts that happen to share a label.

    NORMATIVE (SPEC-033): Cross-registry ID overlap is not an error. Validators MUST NOT flag an ID as invalid solely because it appears in another registry.

    Other registries in the package

    The following registries exist in @adobe/design-system-registry but are not part of the three-registry boundary defined above. They validate other token name fields and component metadata fields:

    Registry File Validates
    Sizes sizes.json name.size field
    States states.json name.state field
    Variants variants.json name.variant field
    Structures structures.json name.structure field
    Substructures substructures.json name.substructure field
    Orientations orientations.json name.orientation field
    Positions positions.json name.position field
    Densities densities.json name.density field
    Shapes shapes.json name.shape field
    Scale values scale-values.json Numeric scale vocabulary
    Platforms platforms.json Platform identifiers in manifests
    Components components.json Component identifiers in token names
    Navigation terms navigation-terms.json Navigation vocabulary
    Token terminology token-terminology.json Human-readable token concept labels
    Glossary glossary.json Design system glossary