- Fork and clone the repo.
npm install.- Branch for your work:
git checkout -b feature/your-feature.
See README.md for the Quick start path.
- Node.js v22+ (pinned in
.nvmrc;nvm use). - npm (bundled with Node).
Before opening a PR, run npm run release:check. It runs the same gates as CI: lint, test, build, and npm audit at the moderate threshold.
Pre-commit hooks (Husky + lint-staged) run ESLint, Stylelint, and Prettier on staged files. If they fail, fix the reported issues and commit again.
- JavaScript / JSX: ES2020+, single quotes, camelCase, JSDoc on non-trivial functions. Rules live in
eslint.config.js. - CSS: rules live in
.stylelintrc. Tailwind utility classes are linted viaprettier-plugin-tailwindcssand Stylelint defaults. - HTML: semantic elements, lowercase tags, double-quoted attribute values, alt text on images. Rules live in
.htmlhintrc.
Imperative mood, first line under 72 characters, optional body for the why.
The repository has a PR template with the checklist. Issues use the bug and feature templates under .github/ISSUE_TEMPLATE/.
User-facing change history is tracked in CHANGELOG.md. Published tags and release notes live in GitHub Releases. The release flow is automated through .github/workflows/release.yml (tag-triggered) and .github/workflows/scheduled-patch-release.yml (biweekly).
By contributing you agree that your contributions are licensed under the MIT License.