Skip to main content
Utility July 01, 2026 6 min read

Free QR Code Generator: Custom Colors & Brand Design

Free QR Code Generator: Custom Colors & Brand Design

Default black-and-white QR codes clash with branded packaging and marketing layouts. The free QR code generator on ToolMars builds static, track-free codes with custom hex colors and adjustable error correction — rendered entirely in your browser, then downloaded as PNG.

Many online generators route scans through third-party redirect servers. That adds latency, creates link rot if the service shuts down, and exposes user behavior to analytics you did not ask for. Static codes encode the destination URL directly — you own the link forever.

Create branded QR codes with custom colors

Free QR generator — static codes, error correction levels, PNG download, no tracking.

Open QR Generator

Color Contrast Rules That Keep Codes Scannable

Scanners distinguish dark modules from light ones. Match your brand palette, but maintain at least 4:1 contrast. Dark foreground on a light background is the safest layout — inverted light-on-dark codes fail on many devices.

Test before print. Always scan your final PNG on multiple phones and the QR reader before committing to a production run.

Error Correction Levels Explained

  • Level L (~7%) — cleanest grid, best for high-contrast flat print.
  • Level M (~15%) — default for most marketing materials.
  • Level Q (~25%) — curved bottles, cans, or warped surfaces.
  • Level H (~30%) — center logo overlays or outdoor wear.

How to Create a Branded QR Code

Step-by-step

  1. Open the QR generator.
  2. Enter the full destination URL including https://.
  3. Set foreground and background hex colors with strong contrast.
  4. Pick an error correction level based on print conditions.
  5. Download the PNG and test with the QR reader.

Canvas Rendering Under the Hood

The generator builds a boolean matrix and paints each module onto an HTML5 canvas — no server round trip:

function drawQR(matrix: boolean[][], size: number, fg: string, bg: string) {
  const canvas = document.createElement("canvas");
  canvas.width = canvas.height = size;
  const ctx = canvas.getContext("2d")!;
  ctx.fillStyle = bg;
  ctx.fillRect(0, 0, size, size);
  const mod = size / matrix.length;
  matrix.forEach((row, r) => row.forEach((on, c) => {
    if (on) { ctx.fillStyle = fg; ctx.fillRect(c * mod, r * mod, mod, mod); }
  }));
  return canvas;
}

Conclusion

Branded QR codes boost scan rates when contrast and error correction are done right. Build static, track-free codes locally, test before print, and pair with our browser QR reader guide for verification.

Create branded QR codes with custom colors

Free QR generator — static codes, error correction levels, PNG download, no tracking.

Generate a QR Code Now

Frequently Asked Questions

Does it track scans?

No — static codes with no redirect middleware.

Why won't custom colors scan?

Insufficient contrast — use dark modules on a light background.

Best error correction for print?

Level M for flat ads; Level Q or H for curved or outdoor use.

Are inverted colors OK?

Avoid them — many scanners cannot parse light modules on dark backgrounds.

Do shorter URLs help?

Yes — they produce simpler grids that scan faster on older cameras.

How do I verify before print?

Upload the PNG to the free QR reader and test on multiple devices.

Written by Toolmars Labs Team