Component Schema
component contract, component contracts, component schemas, contract, the unitDefinitions
The Core's record of what one reusable component is — its kind, variants, shape, scope-keyed props and states, constraints, detection hints, accessibility contract and Component Token Contract — independent of any brand or rendering technology
The Agentic DS draft's word, adopted as the shared vocabulary on 2026-09-24. It is prescriptive: it says what a component may do, and every adapter is built from it. Since 2026-09-30 its content section is shape (formerly slots), and props and states are keyed by scope (component, or the singular of a repeating array in the shape). Its content model is a separate file with a different audience, and each field carries a governance tier. Tokens feed it, and patterns compose it.
The record cwds keeps for one reusable thing — intent, anatomy, token contract, content model — with references to its realizations and never their definitions
cwds's own word, named by ADR-0015 (2026-09-18); a cwds record dated before that says Pattern and means this. It is evidential where a Component Schema is prescriptive. It carries what the estate was observed to do, with provenance, occurrence counts and a corpus, plus the obligations held against those observations. It embeds its content model, and its token contract names semantics only. It is the evidence a Component Schema can be drafted from or checked against, not the same record under another name. Until 2026-09-24 this glossary made Component Contract the primary name, ahead of the sync. That changed once the draft's scope was set against the record's.
What a component is, written once, so that every platform's copy can be built from it and checked against it. In the shared vocabulary that record is a Component Schema. In cwds it is a Component Contract: the record of what the estate actually does, which the schema can be drafted from and measured against. Three sources feed the cwds record, and none ranks the others: the authored IVY dialog, the production specimens with their counts, and the Figma node with the date it was read.
The chain
Component Schema → AEM Component, EDS Block, Figma component, and every other adapter's realization. Where an Element exists it sits between, and the realizations are converted from it. Where none does, the schema's anatomy and token contract are what each realization is held to. Two or more schemas composed under rules a single one cannot express — ordering, regulatory sequencing — are a Pattern.
Avoid: Pattern for this record — since 2026-09-18 that word names the composition. Bare Component when you mean the record. Component Contract for the shared Core's record: that is cwds's word, for a record that carries evidence the schema does not.
Kind
The Agentic DS draft classifies every Component Schema with a kind decided by two
questions: does it have an open composition slot, and does it have state of
its own?
| Kind | Open slot? | Own state? | Examples |
|---|---|---|---|
| content | No | No | image, rich text, title |
| widget | No | Yes | button, slider, video player |
| container | Yes | No | columns, grid, section |
| composite | Yes | Yes | accordion, tabs, carousel |
kind drives nesting: statefulAllows and the depth count. It does not
describe focus. Two of the names come from the APG, and neither promises
the APG's keyboard model. Whether a schema takes one tab stop or several
follows from its a11y.pattern.