Ashlar is independent open-source research and implementation work. It is not affiliated with, endorsed by, or sponsored by GSA, USWDS, NDS, or the U.S. federal government.
The project is pre-alpha. Early contributions should focus on repository setup, architecture validation, CLI/registry foundations, accessibility evidence structure, and documentation quality. Component count should not scale until registry, validation, evidence, update, and security mechanics work.
Prerequisites:
- Node.js 24 LTS. Current baseline: 24.15.0.
- pnpm 10.
- Git.
Commands:
pnpm install
pnpm check
pnpm build
# Required after UI, theme, or example-app changes. Run after pnpm build.
pnpm examples:visualAll code changes should include appropriate tests. Changes to components must consider:
- semantic HTML contract;
- keyboard behavior;
- accessible names and descriptions;
- forced-colors behavior;
- token usage;
- evidence packet impact;
- generated validation rules;
- update and migration impact.
Stable components require evidence packets. Experimental components may ship with incomplete evidence, but must be clearly marked experimental.
Before opening a PR:
- run the local checks;
- update docs when behavior changes;
- add or update tests;
- add a changeset for publishable package changes, or call out why none is needed;
- run
pnpm examples:visualafterpnpm buildwhen changing UI, themes, visual examples, or generated example assets; - avoid implying official USWDS, GSA, NDS, or federal endorsement.
Pull request titles and commits must follow Conventional Commits. Changesets is
the package version authority; do not add semantic-release or a competing
publisher. See release governance.
Component proposals should include:
- user need and problem statement;
- scan of existing USWDS and peer-government approaches;
- DOM/API sketch;
- token impact;
- accessibility plan;
- evidence plan;
- migration/update considerations.
The lifecycle is documented in docs/governance/00-governance-model.md.