opsinjs

0.0.0. The scaffold

The first release. It is a documentation site, a token layer and twenty-four component specifications, with no components.

2 September 2026. Nothing is published to npm, and nothing here can be installed. This entry describes a documentation site.

What this release is

opsinjs starts as documentation on purpose. The expensive, irreversible decisions in a health design system are not in the code. They are in the colour architecture, the status vocabulary, the plain-language rules and the accessibility floor. Those are cheap to argue about in prose and expensive to change once twenty components depend on them, so they are written first and the components are built against them.

What is in it

A token layer that is real. Two colour axes, a six-rung material ladder, spring easings expressed as linear() curves, and the type, space and shape scales. These are authored values, generated into CSS and measured for contrast by a script rather than asserted.

Doctrine that does not depend on any component existing. The health, accessibility, content-and-language and foundations pillars are written and reviewable today. This is the majority of the site, and it is the part with the longest useful life.

Twenty-four component specifications, every one at status: planned. Each carries intent, when not to use it naming the alternative, the clinical contract, the proposed anatomy and API, and the accessibility bar the implementation must clear. Each also carries a machine-readable marker saying it is not implemented, so that a program can tell a specification from a component.

Machine surfaces from the start. A .md twin of every page, /llms.txt and its shards, the registry catalogue under /r, and an offline documentation bundle. These are not an afterthought here: an assistant is expected to be a first-class reader of this site.

Eight generated reference lists and the pipeline that fills them. Most are empty, and say so, because their sources are empty.

Eight decision records, including the ones that constrain everything after them: two colour axes, registry distribution and generated, never authored.

What is not in it

Components. Zero. Not one.

Published packages. The @opsinjs npm scope is reserved and empty; see Official resources if you find something claiming otherwise.

Measured numbers about components. Bundle sizes, per-component accessibility audits and the aggregated keyboard reference are not here, and their sources do not exist yet.

An accessibility audit. No independent review has taken place, and the accessibility statement lists what is unknown rather than implying it is fine.

Internationalisation. No [lang] segment, deliberately, with the retrofit recipe recorded in ADR 0005. Unit systems ship now, because getting mmol/L and mg/dL confused harms a reader in any language.

Breaking changes

None. There was nothing to break.

What to read first

State of the system, which is blunt about what exists and what is safe to build on, and then whichever pillar matches your job. If you are here to evaluate rather than to build, Is opsinjs right for this project? says no on this project's behalf more often than yes.

Edit this page

Last read through against the system on 2026-09-02.

On this page