WCAG 2.2 AA
built and machine-audited — axe on every component, every commit
a11y.spec.ts × three engines
@pacit/components · Angular 22 · zoneless · signal forms
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/componentsWCAG 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
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
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.
pct-tabsArrow keys walk the strip and the panel follows — one tab stop for the strip, not three.
pct-chipsBackspace walks the row; a screen reader hears what left.
pct-fieldThe inventory
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.
button[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]Every ARIA geometry is measured in three engines before the component exists — the probe's numbers, not the spec's prose, decide the design.
Hand-written gates with negative controls — every gate has been proven able to fire. A promise without a gate does not ship.
Three DTCG tiers, contrast-checked at build. Retheme one variable or a whole scope — dark mode is a data attribute, not a fork.