Developer Tools

QR Code Generator

QR code generator for text and URLs: pick colors, module style and error correction, add a logo, then download a PNG or SVG with no watermark.

️ QR Code Options
Logo / Image Overlay
Drag & drop an image here, or click to browse
PNG, JPG, SVG — auto-switches to EC level H
QR Code Preview
-
Version
-
Modules
M
EC Level
Batch Generate

This QR code generator turns any text or URL into a static QR code that you can color, style and download as a PNG or SVG, with no watermark and no sign-up. QR codes link printed menus, posters and app download cards to a web page or a piece of text, and the code here is drawn in your browser as you type.

How to create a QR code

  1. Type or paste your content into Text or URL. The preview redraws as you type.
  2. Pick an Error Correction level and a Size (px) from 150 x 150 to 500 x 500.
  3. Set the Foreground Color and Background Color with the swatches or by typing a hex value. Tick Gradient Foreground to blend two colors, or Transparent Background to drop the background fill.
  4. Choose a Module Style (Square, Rounded, Dots or Diamond) and a Quiet Zone of 1 to 8 modules. The default of 4 is the margin the QR standard asks for.
  5. To add a logo, drop a PNG, JPG or SVG on Logo / Image Overlay and set Logo Size between 10% and 30% of the code's width.
  6. Check the Version, Modules and EC Level cards under the preview, scan the code with your phone, then press Download PNG or Download SVG.

Error correction and how much fits

Error correction adds redundant data so a code still scans when part of it is dirty, creased or covered. Higher levels make the code denser for the same content. For https://example.com/menu the QR code generator picks version 2 (25 x 25 modules) at L and M, and version 3 (29 x 29) at Q and H.

LevelRestores aboutMost text it holds
Low (L)7%2,953 bytes
Medium (M), the default15%2,331 bytes
Quartile (Q)25%1,663 bytes
High (H)30%1,273 bytes

Content longer than that shows an error under the preview instead of a code. Text is stored as UTF-8, so letters and digits take one byte each, é takes two and most emoji take four. Shorter content gives fewer, larger modules that scan more easily, so a long tracking link is worth shortening before you print it. Adding a logo switches error correction to H, the highest level, so the code still scans with its center covered.

A free QR code generator with no expiration

I always recommend static QR codes for permanent URLs. A static code stores the URL itself, so there is no redirect server and nothing to expire. A dynamic code points to a short link on the provider's server and stops working if that link is switched off. Every code made here is static, so test it before printing: you can't change where it points afterwards.

What you can put in a QR code

Most phone camera apps recognize a few text formats besides web addresses and offer to call, write an email or join a network. Type them into Text or URL exactly as shown:

https://example.com/menu
tel:+971501234567
mailto:hello@example.com?subject=Order%20123
WIFI:T:WPA;S:CafeGuest;P:coffee2024;;

The last line holds the network name CafeGuest and the password coffee2024, and fits in a version 3 code at the default M level. The input box also takes several lines, so a vCard contact from BEGIN:VCARD to END:VCARD works too. Encode spaces and symbols in mailto subjects and URL query values with the URL encoder first, the way %20 stands for the space above.

Downloads, batch mode and design tips

Download PNG saves qr-code.png at your chosen size or 500 px, whichever is larger, and includes the logo. Download SVG saves qr-code.svg as vector shapes that stay sharp at any print size, but it leaves the logo out, so for print with a logo use the PNG or add the logo in a design app.

Batch Generate turns the QR code generator into a bulk tool. It takes one URL or text per line. Generate All shows a 200 px preview of each, and Download All as ZIP saves them as 400 px PNGs inside qr-codes.zip, named after their content, such as qr-1-https___example_com_menu.png. Each line becomes one code, so multi-line content like a vCard belongs in the main box.

Use a dark code on a light background

Always use a dark foreground on a light background. I've seen many designers try to be clever with low-contrast colors, only for the codes to be unreadable on older smartphone cameras. Keep both gradient colors dark, and place a transparent PNG only on a light surface. If you want brand colors, the color palette generator can suggest darker shades of your main color. The guide to adding a logo without breaking the scan covers logo size and padding.

To send a whole file through QR codes instead of a link, the optical file transfer tool plays it as an animated stream of codes. Both live in the developer tools section.

Frequently Asked Questions

Do these QR codes expire?
No. The codes made here are static: the text or URL is stored in the code itself, with no redirect server in between. A code keeps working for as long as the page it points to stays online.
Is this QR code maker free, and does it add a watermark?
It is free, with no sign-up and no watermark. The code is drawn in your browser from the text you type, and the PNG, SVG and ZIP files are built on your device, so nothing is sent to a server and there is no account, plan or scan limit.
Can I change where a QR code points after printing it?
No. A static code stores the URL itself, so a new destination means a new code. If the address might change, point the code at a page you control, such as your own /menu page, and update that page or add a redirect on your server instead of reprinting.
Why won't my QR code scan?
Check contrast first: the foreground should be clearly darker than the background, because some phone cameras don't read light-on-dark codes. Keep the quiet zone at 4 modules, keep a logo small, and shorten long content so the code has fewer, larger modules. Test the printed size, not only the screen preview.
What do the module styles change?
Square draws the standard blocks. Rounded rounds the corners of each module, Dots draws each one as a circle and Diamond as a rotated square, including the three large corner squares. The shapes leave small gaps between modules, so scan a styled code with more than one phone before you print it.