Skip to main content

CryptoViz guide

Visualization Development Guide

A practical checklist for building cryptography visualizations that are educational, deterministic, accessible, responsive, and easy to review.

Guide completion

0%

Mark stages complete as your feature becomes PR-ready.

Development stages

Active stage

Define the learning goal

Start by deciding what the visualizer should teach before writing UI code.

Checklist

  • Identify the algorithm or cryptographic concept.
  • Write the expected learner takeaway in one sentence.
  • Choose safe demo inputs that do not encourage misuse.
  • Decide whether the module is encryption, hashing, key exchange, or attack education.

Example

A SHA-256 visualizer should teach padding, block processing, compression rounds, and final digest output.

Quality gates

Use these checks before opening a PR so reviewers can quickly verify the feature without guessing what changed.

Educational clarity

required

The module explains the concept in plain language and not only through code output.

Deterministic output

required

Given the same input, key, and options, the module produces the same result and trace.

Friendly errors

required

Invalid input produces useful messages instead of crashes or blank screens.

Responsive layout

required

The interface remains usable on mobile, tablet, and desktop widths.

Accessible controls

required

Interactive controls are keyboard-accessible and have readable labels.

Focused tests

required

New utilities or algorithm behavior are covered with focused unit tests.

Documentation

required

A doc page or markdown file explains behavior, safety notes, and manual testing.

Worker integration

optional

Heavy computations use a worker where applicable.

Manual testing checklist builder

Enter your feature name and copy the generated checklist into your PR.

  1. 1Open XXHash32 visualization in the browser.
  2. 2Confirm the page renders without console errors.
  3. 3Try the default demo input and confirm output appears.
  4. 4Change input/options and confirm the visualization updates.
  5. 5Trigger one invalid input and confirm a friendly error appears.
  6. 6Check keyboard navigation for main controls.
  7. 7Resize to mobile width and confirm the layout remains usable.
  8. 8Run the focused test file for the new feature.