Thanks for helping make Algorithm Visual Learning clearer and more useful for future students. Small, focused contributions are welcome: correcting an explanation, improving an example, fixing an accessibility or responsive issue, or adding a carefully scoped lesson.
- Fork the repository on GitHub and clone your fork.
- Install dependencies with
npm ci. - Start the local site with
npm run devand check the production build withnpm run build. - Create a focused branch, make your change, and open a pull request against
developwith a short explanation of the learner problem it solves.
GitHub Pages deploys automatically when changes are merged into develop. A fork can enable Pages in Settings → Pages and select GitHub Actions to publish its own copy; the existing workflow builds and deploys the site.
- Explain the invariant, decision, or reason behind a step—not just the action.
- Prefer a small, readable example and explicit intermediate states over decorative complexity.
- Keep walkthroughs usable with keyboard, touch, narrow screens, and assistive technology.
- Preserve the site's shared visual language and keep algorithm-specific facts accurate.
- Treat implementations as teaching references; call out deliberate simplifications or assumptions.
- Avoid adding dependencies unless they solve a concrete problem that the existing stack cannot handle simply.
- Follow the source map and ADR 0001: feature-owned models and view-models, presentation-only views, one colocated CSS module per view, and a 500-line source-file limit.
- Run
npm run test:architectureandnpm run format:check. - Run
npm run buildand resolve any errors. - Check the affected page at desktop and narrow/tablet widths.
- For walkthrough changes, step forward and backward, reset, and try shuffle or presets when available.
- Include screenshots or a concise before/after note for visual changes.
If you are unsure whether an idea fits, open an issue first. Please do not include private student information, course materials you do not have permission to share, or copyrighted material without authorization.