I built an Angular component library on signals — the decisions, the numbers, and the bugs behind it
Описание и применение
Создана легкая, доступная библиотека компонентов Angular, использующая сигналы и без zone.js, с CI‑проверками WCAG 2.1 AA и темами через CSS‑переменные.
Задача
Angular developers need a lightweight, accessibility‑centric component library that leverages the latest Angular primitives without the overhead of zone.js and NgModules.
Результат
The library delivers a small, performant, and accessible component set that runs without zone.js, supports Angular 20‑22, and enforces WCAG 2.1 AA via CI.
Рабочий процесс
- 1. Design components using Angular signals (input, output, model, computed).
- 2. Implement components as standalone, OnPush, without NgModules or zone.js.
- 3. Enforce accessibility via CI (axe‑core) and WCAG 2.1 AA checks.
- 4. Provide theming through CSS custom properties and 9 prebuilt themes.
- 5. Publish the library to npm and test on Angular 20‑22 by building fresh apps.
- 6. Document components with live demos and enforce CI checks for axe violations.
Доказательства
Signals-first APIs, zero zone.js · a full component catalog, from buttons to a virtual-scroll table and a command palette · themed entirely through CSS custom properties (9 prebuilt themes, one variable re-skins everything) · WCAG 2.1 AA enforced by CI — a single axe-core violation fails the PR · ~102 kB gzipped for the whole tree-shaken library, ~4 kB for a button · runs on Angular 20, 21 and 22
Lesson 1: in a zoneless app, microtasks don't wait for your template
- Дата записи: 2026-09-06T02:51:47.611Z