Thanks for your interest. This repo holds shared design tokens, themes and Svelte 5 components for CodeCora products. Read docs/decisions.md first: changes that go against a locked decision need an issue and maintainer agreement before code.
- Bug fixes, accessibility fixes, documentation fixes: open a PR (an issue first is welcome).
- New components, packages, themes or API changes: open an issue first and describe the use case. A component enters
@codecora/uionly when at least two products need it.
- Open or pick an issue.
- Branch from
develop:<type>/<issue>-<slug>(for examplefix/42-dialog-focus), type one offeat,fix,docs,chore,perf,security,refactor,test,build,ci,release. - Activate the hooks once:
bash scripts/setup-hooks.sh. - Make one logical change. Commit messages follow Conventional Commits (
feat(ui): add Tooltip). - Run the local checks (see below), push, and open a PR to
developusing the template (## What/## Why/## Testing, in English). - CI and the automated review must pass; maintainers review and squash-merge.
Requires bun 1.4+ and Node 22.17+ (SvelteKit 3).
bun install --frozen-lockfile # also activates the git hooks
bun run check # builds the packages, then svelte-check everywhere
bun run test # vitest
bun run build # packages (svelte-package + publint), then the playground
bun run lint # prettier --check and eslint (bun run format fixes formatting)A change to a published @codecora/* package needs a changeset: bun run changeset. Releases and publishing are described in AGENTS.md.
Every component must work with the keyboard alone, at 375 px width, and in every theme with WCAG AA contrast.
By participating you agree to the Code of Conduct. Report vulnerabilities privately as described in SECURITY.md.
Contributions are licensed under the Apache License 2.0, the license of this repository.