@pacit/components · Angular 22 · zoneless · signal forms

Components that prove themselves.

An Angular library built and machine-audited to WCAG 2.2 AA: axe across every component in three engines on every commit, every colour pair measured on both themes, keyboard, forced colors and reduced motion as first-class modes. Every number on this page is read from the repository at build time.

npm install @pacit/components

WCAG 2.2 AA

built and machine-audited — axe on every component, every commit

a11y.spec.ts × three engines

AI-ready

a machine catalogue of every selector, part, token, input and example — your copilot can verify what it suggests

llms.txt · components.json

397

colour pairs contrast-measured at build — light and dark

contrast.policy.json

3

engines run every single case — Chromium, Firefox, WebKit

playwright.config.mts

24px

touch-target floor, measured per control — not per promise

--pct-target-min

For the sceptic: the whole proof machinery — 17591 mutants at a measured 90.76%, a registry of 98 gated promises, 106 decisions and 257 lessons on record — lives on Trust.

Dogfooding, literally

Live, not screenshots.

Every demo below is a running instance of the shipped package — the same build this page is made of, on the same tokens it documents.

Tabspct-tabs

Name, avatar, and the language dates are written in.

Arrow keys walk the strip and the panel follows — one tab stop for the strip, not three.

Chipspct-chips

Angularzonelesssignalsa11y

Backspace walks the row; a screen reader hears what left.

Signal formspct-field

The inventory

41 components, one contract.

Every entrypoint ships its parts and tokens as a gated public surface — the selectors your tests hold, the variables your theme overrides, snapshot-checked on every commit. This grid is pct-grid: resize the window, not one media query fires.

buttonbutton[pctButton]menupct-menutabspct-tabsbreadcrumbpct-breadcrumbpaginationpct-paginationfieldpct-fieldtextinput[pctText]textareatextarea[pctText][pctAutosize]numberinput[pctNumber]datepct-datetimepct-timedatetimepct-datetimeselectpct-selectcheckboxpct-checkboxradiopct-radio-groupswitchpct-switchchipspct-chipssliderpct-slidercalendarpct-calendarcolumnspct-time-columnsdialogpct-dialogdrawerpct-drawerpopoverpct-popovertoastservicetooltip[pctTooltip]tabletable[pctTable]chartpct-chartdatatablepct-data-tableaccordionpct-accordiontreepct-treestepperpct-stepperprogresspct-progressbadgepct-badgeiconpct-iconavatarpct-avatarskeletonpct-skeletoncontainerpct-containergridpct-gridstackpct-stackhero[pctHero]theme[pctTheme]

Probes before code

Every ARIA geometry is measured in three engines before the component exists — the probe's numbers, not the spec's prose, decide the design.

Nothing breaks silently

Hand-written gates with negative controls — every gate has been proven able to fire. A promise without a gate does not ship.

Tokens all the way down

Three DTCG tiers, contrast-checked at build. Retheme one variable or a whole scope — dark mode is a data attribute, not a fork.