QR Code Generator

Free QR code generator with logo, colors, gradient, dark mode and custom shapes. WiFi, vCard, WhatsApp and more. Download PNG, SVG or PDF, processed locally.

How to use

  1. Pick a type — Website, text, WiFi, contact card, email, SMS, phone, WhatsApp, location or event
  2. Design it — Colors, gradient, dark mode, dot and eye shapes, logo, caption and quiet zone
  3. Test scan — Run the built-in scan test to confirm the design still reads correctly
  4. Download — Export PNG, SVG, PDF, JPG or WebP up to 4096px, or bulk-generate a ZIP

What Is a QR Code Generator?

A QR code generator converts text, URLs, or other data into a scannable QR (Quick Response) code image. QR codes store information in a two-dimensional barcode that can be read by smartphone cameras and dedicated scanners.

How QR Codes Work

QR codes encode data in a grid of black and white squares. The pattern includes finder patterns (the three large squares in corners) for orientation, alignment patterns for distortion correction, and data modules that store the actual information. Error correction codes allow the data to be recovered even if part of the QR code is damaged or obscured.

Common Uses

  • Marketing: Link to websites, landing pages, or social media profiles
  • Business cards: Share contact information (vCard format)
  • Payments: Mobile payment links and cryptocurrency addresses
  • Wi-Fi: Share network credentials without typing passwords
  • Events: Ticket verification and check-in
  • Inventory: Product tracking and identification

Best Practices

Keep encoded data short — shorter data produces simpler, more scannable codes. Use high contrast colors (dark foreground on light background). Test the code with multiple devices before printing. Add a short call-to-action near the code (e.g., "Scan to visit our website").

Privacy

QR codes are generated entirely in your browser using the qrcode library. No data is sent to any server.

Generate random strings with the Random String Generator. Create passwords with the Password Generator.

Static vs Dynamic QR Codes — The Distinction That Costs People Money

A static QR code contains the destination itself. Scan it and the phone reads the literal URL or text encoded in the pattern. It works forever, needs no account, and cannot be switched off by a third party. A dynamic QR code encodes a short redirect link owned by a QR service; the service then forwards visitors to wherever you currently point it, and counts the scans.

Dynamic codes are genuinely useful for printed campaigns where the destination may change, but they come with a dependency: if the subscription lapses or the provider shuts down, every printed code becomes a dead link — including the ones already on packaging, menus and signage. Many people discover this after a free trial expires and their restaurant menu code starts showing an upgrade prompt. This generator produces static codes, so the code keeps working as long as the destination page exists, with nothing to renew and no scan tracking in the middle.

If you need the flexibility of a dynamic code without the dependency, encode a short URL on your own domain (example.com/menu) and manage the redirect yourself. You keep control and can change the target whenever you like.

Error Correction Levels and Why They Matter Physically

QR codes include Reed–Solomon error correction at one of four levels: L (about 7% of the code recoverable), M (15%), Q (25%) and H (30%). Higher levels mean a damaged, dirty, partially covered or badly printed code still scans — but they also add modules, making the pattern denser for the same data.

  • L or M: Screens, PDFs, slides, email signatures — anywhere the code cannot be physically damaged.
  • Q: Printed flyers, product labels, indoor signage that may be scuffed.
  • H: Outdoor stickers, vehicle wraps, industrial parts, or any code where you want to place a logo in the centre. The logo works precisely because error correction can reconstruct the covered modules — but keep the covered area under roughly 20% of the code, not 30%, to leave margin for real-world wear.

Size, Quiet Zone and Scan Distance

Two physical rules explain nearly every unscannable printed code. First, the quiet zone: QR codes need clear margin equal to four modules on all sides. Designers frequently crop this away to fit a layout, and scanners then fail to find the pattern. Second, the 10:1 distance rule: the printed width should be roughly one tenth of the expected scan distance. A code read from 30 cm can be 3 cm wide; a code on a poster read from 3 m needs to be about 30 cm wide. Below about 2 cm, phone cameras struggle regardless of resolution because the module size approaches the sensor's ability to resolve it.

For print, export at a size where each module is at least 4 printed pixels at 300 DPI, and never scale a small raster code up — regenerate it larger instead, since upscaling blurs the module edges that the decoder depends on.

Contrast, Colour and Inversion

Decoders assume dark modules on a light background. Inverting that (light modules on dark) fails on a surprising number of older scanner apps, even though modern iOS and Android cameras usually cope. Keep a contrast ratio of at least 4:1 between foreground and background, avoid gradients across the pattern, and never place a code over a photograph. Red and light-yellow foregrounds are the most common failures because many camera sensors read red channels with less contrast than they appear to the eye.

Data Formats Worth Knowing

  • URL: Always include the scheme (https://example.com). Without it, some scanners treat the content as plain text and show it rather than opening it.
  • Wi-Fi: WIFI:T:WPA;S:NetworkName;P:Password;; joins a network on scan. Convenient for guest networks — and a reminder that anyone photographing the code gets your password.
  • Contact (vCard): Stores name, phone, email and organisation so a scan offers to save the contact. vCards are verbose, so the pattern becomes dense; keep fields minimal.
  • Email and SMS: mailto: and sms: prefixes pre-fill the composer, useful on event signage.
  • Plain text: Serial numbers, asset tags, batch codes. Read by inventory scanners without opening anything.
  • Geolocation: geo:latitude,longitude opens a map pin.

Capacity Limits and Keeping Codes Simple

The format can theoretically hold about 4,296 alphanumeric characters, but a code that dense is impractical: version 40 has 177x177 modules and needs either a large print size or a very close, steady camera. In practice, keep URLs under roughly 100 characters. Removing tracking parameters is the easiest win — a URL with five UTM values can double the module count. If you need analytics, use a short redirect on your own domain rather than appending a long query string.

Testing Before You Commit to Print

Test on at least an iPhone and an Android device, using the built-in camera app rather than a third-party scanner, because the built-in apps are what the public actually uses. Test the final printed piece, not the screen version — ink spread on uncoated paper thickens modules and can merge them. Scan at the realistic distance and in realistic light, including dim restaurant lighting if that is the setting. Finally, print a short instruction next to the code. A bare code earns far fewer scans than one labelled "Scan for today's menu", because people need a reason before they raise a phone.

Security Reality: Codes Hide Their Destination

Quishing — QR phishing — works because a pattern of squares reveals nothing about where it leads. Attackers place stickers over legitimate codes on parking meters, restaurant tables and charging stations. As a user, read the URL preview your camera shows before tapping, and be suspicious of any code that leads to a payment or login page. As a publisher, prefer codes pointing at your own domain, print them directly on materials rather than as removable stickers where possible, and tell customers what domain to expect.

Because this generator builds the pattern locally in your browser, the content you encode — a private Wi-Fi password, an internal asset tag, an unpublished landing page — is never transmitted to a server or stored in anyone's scan database.

Frequently asked questions

What can I encode in a QR code?

URLs, plain text, email addresses, phone numbers, Wi-Fi credentials, and more. URLs are the most common use case.

What size should I use?

256px is good for digital use. For print, use 512px or larger. The minimum depends on how much data you're encoding.

What is error correction?

QR codes include redundant data so they can still be read if partially damaged. This tool uses Medium (M) level, which allows ~15% damage recovery.

Can I add my brand logo to the QR code?

Yes. Upload a PNG, JPG, WebP or SVG logo. The tool automatically switches to error correction H (30%), clears the dots behind the logo, and lets you set logo size and padding. Keep the logo under about 30% and use Test scan before printing.

Can I make a dark mode or transparent QR code?

Yes. Use the Dark mode preset (light dots on a dark background) or tick Transparent background to place the code over your own design. Modern phone cameras read inverted codes, but some older scanner apps do not, so the tool warns you and lets you test.

Which download format should I use?

SVG for print and designers (infinitely sharp), PDF for ready-to-print sheets, PNG for web and documents, JPG where transparency is not supported, and WebP for small web files. Raster exports go up to 4096×4096px.

Do these QR codes expire or track scans?

No. They are static codes that encode your content directly, with no redirect service in between, so they never expire and nobody logs the scans.

Can I create many QR codes at once?

Yes. Open Bulk generate, paste up to 200 values (one per line, optional file name after a comma) and download a ZIP with every code in your current design.

Related free tools

  • Text to Speech — Read any text aloud with browser voices. Adjustable rate, pitch, volume; dozens of languages.
  • Pomodoro Timer — Focus timer with customizable work and break intervals.
  • Stopwatch — High-precision stopwatch with lap timing and history.
  • Countdown Timer — Set a countdown timer with alerts and custom durations.
  • Time Zone Converter — Convert any date and time between 400+ IANA time zones. DST-aware. Add unlimited targets.
  • Random Number Generator — Cryptographically strong random integers with unique, sort, and range options. Up to 100,000 per click.
  • WhatsApp Link Generator — Create wa.me click-to-chat links with optional pre-filled messages. No app or registration needed.
  • Coin Flipper — Cryptographically fair heads-or-tails. Flip one coin or up to 10,000 at once with live statistics.
  • Dice Roller — Roll d4, d6, d8, d10, d12, d20, d100 with cryptographic randomness. Up to 100 dice at once.
  • Morse Code Translator — Translate text to Morse code and back. Listen with audio playback using Web Audio API.
  • Typing Speed Test — Test your typing speed in WPM and CPM. Real-time accuracy tracking with instant feedback.
  • Tally Counter — Multi-channel click counter that persists across reloads.

Browse all free tools · Guides and tutorials · PDF tools · Developer tools · Text tools · SEO tools