AngularCSS is an HTML-first customization layer for AngularTS enterprise applications. Contributions should preserve the ownership boundary between the browser, AngularTS, and AngularCSS.
Use this order:
- Native HTML owns semantics, activation, form state, validation, and platform behavior.
- CSS owns presentation and consumes native or authored attributes.
- AngularTS owns application data, expressions, rendering, fetching, authorization, caching, and domain state.
- AngularCSS TypeScript handles only remaining composite interaction such as coordinated keyboard navigation, focus, disclosure, or geometry.
Reuse existing tokens, semantic selectors, helpers, directives, and recipes before introducing an API. Keep component classes to the minimum needed to identify a reusable root. Do not add classes for parts that semantic descendants or native attributes can identify.
AngularCSS is a customization system, not a product design system. New
presentation controls must work through the shared CSS custom-property contract.
Update the DTCG 2025.10 source under tokens/, regenerate it with
npm run tokens:build, and review public API drift explicitly.
Use Node.js 24 or newer, the npm version declared in package.json, and Hugo
Extended 0.146 or newer:
npm install
npm --prefix docs install
npx playwright install chromium firefox webkitRun the static and generated-file gates:
npm run release:build
npm run checkRun focused tests while developing, followed by the complete browser suite for changes that affect shared CSS, behavior, or generated examples:
npm run test:components
npm testBrowser tests must open built standalone HTML. They must not import source files into the page or construct AngularCSS directives directly.
Add catalog entries to scripts/component-policy.ts with an ownership rationale.
Every entry needs canonical HTML, CSS, a test, and generated reference content.
Run these commands after an intentional contract change:
npm run generate-docs:components
npm run sync:catalog-examples
npm run update:public-apiReview the resulting contracts/public-api.json diff. Selectors, attributes,
custom properties, events, directives, and exports are public unless documented
as internal.
Open bug reports and feature proposals in the AngularCSS issue tracker. Include a reduced HTML example, AngularCSS and AngularTS versions, browser, and expected behavior. Keep pull requests focused and explain the user-visible trigger, resulting behavior, and validation performed.
For usage questions, start a GitHub Discussion. Security reports should use the repository's private GitHub security advisory flow rather than a public issue.