-
Notifications
You must be signed in to change notification settings - Fork 0
Concepts
j3w1/theme is both a canonical design specification and the source of an official reusable web implementation. Understanding those roles keeps an application integration consistent.
| Layer | Responsibility |
|---|---|
tokens/ |
Exact design values and aliases |
spec/ |
Meaning, permitted uses, states, keyboard behavior and accessibility rules |
exports/ and agents/
|
Generated machine contracts and consumption protocol |
packages/ui |
Official web implementation, types, styles and copy bundles |
| Portal and Vue demo | Human documentation and first-party package usage |
| Port mappings | Supported host keys for a particular native application |
| Execution evidence | What ran against which artifact, with environment and limits |
| Your application | Domain behavior, data, persistence, backend and authorization |
The wiki and screenshots explain these layers; they do not replace the pinned sources. If package rendering contradicts the specification, that is a defect to investigate, not another palette to choose.
A primitive is a raw palette value. Consumers use semantic roles, which specify the job a value performs. For example, color.interaction.focus.ring is for focus; a text role with the same value is not interchangeable with it.
Aliases link roles to values; the resolved export follows those links for you. CSS names replace dots with dashes and add --: color.surface.canvas becomes --color-surface-canvas. Do not derive values from screenshots or use a primitive just because its appearance is close.
| Profile | Status | Consumer use |
|---|---|---|
default |
Approved | Everyday True Black / Rose composition |
heritage-ansi |
Heritage | Historical study; not new approved UI mappings |
extended |
Proposed | Preview-only; blocked for delivery |
A role's source status and consumption eligibility are different fields. Read the resolved token's eligibility:
-
use: consume within the role's documented scope. -
use-and-report: use the pinned value in the approved default profile and disclose its pending decision IDs, including alias dependencies. - A blocked action: do not consume it or invent a replacement.
A release number does not approve proposed profiles or pending roles. Consult the decision log and resolved export instead of assuming a status from a color's appearance.
All 67 inventory entries have official implementations in v1.1.0. Each has a canonical contract and maintained examples. A variant changes a supported form of the component; a state describes behavior such as disabled, invalid or selected. A state matrix demonstrates rendering; it does not prove every combination was exercised in a real application.
The package uses light DOM Custom Elements with native children. Markup, labels and ARIA relationships are deliberate composition surfaces. APIs differ by component; consult the generated contract rather than guessing props.
A release tag or full commit identifies the source revision. Resolve annotated tags to their commit, not the tag-object ID. A file digest identifies the bytes consumed. Read all contracts from one revision.
The package-manager lock records the runtime dependency. theme.lock.json records canonical contract consumption and deviations. A generated kit.json helps scope a task but replaces neither lock. See Agent integration and Versioning.
Availability, maturity, demonstrated states, implemented tests and actual passing runs are separate facts. tested is a compatibility alias for testImplemented, not a pass. Your application must still exercise its integrated behavior. See Verification.
Sources: theme manifest, identity, architecture.
Wiki home · Agent workflow · Portal · Vue demo · v1.1.0 release
This handbook explains consumption of v1.1.0. The pinned repository's tokens, specification, implementation contracts and evidence remain authoritative. The live site may advance; keep your application's pin explicit. Preserve the material's license notices.