How to design a QR code: colors, logo and frames
Updated:
Change your QR code's colors, dot and corner shapes, add your logo and a “Scan me” frame, and keep it scannable. Available on every plan, Free included.
A QR code doesn't have to be black squares on white. In the editor you can change the colors and shapes, put your logo in the middle and add a frame with a call to action. All of it is free on every plan. The trick is to keep it easy to scan, and the editor helps with warnings and a live scan check.
- Use dark dots on a light background with strong contrast.
- Keep logos modest in size and use error correction Q or H.
- Leave a blank margin (the quiet zone) around the code.
- Wait for Scans well under the preview before you download.
Style your code step by step
- Open the editor. Start a new code with New QR code, or open an existing code and go to Edit & design. The style options are the sections below the content.
- Start from a preset. Click one of the Presets (Classic, Rounded, Dots, Classy, Ocean, Sunset, Circle, Night). A preset sets the dots, corners and colors in one go and keeps your logo, frame, error correction and margin.
- Adjust the dots and corners. Under Dots, pick a Style and a Color, or tick Gradient. Under Corner eyes, set the outer and inner style and color of the three big squares.
- Add a frame. Under Frame, pick a call to action like “Scan me” or “Free Wi-Fi” and edit its Text and Frame color.
- Add your logo. Under Logo, click Add a logo and choose a PNG, JPEG, WebP, GIF or SVG image. Then adjust its Size and Padding.
- Check it scans, then save. Read the warnings and the scan check under the preview. When it says Scans well, click Create QR code or Save changes.
In the guided editor (Try the new editor (beta)), these options are on the Look step: Pick a style (the presets), Frame, Colors (quick swatches for the dots and the background), Logo, and More style options for the shapes, gradient, background and error correction.
Every design option
Presets
Eight ready-made looks. They replace the dot and corner shapes and colors, and keep your logo, frame, error correction and margin, so you can try them freely.
Frame
Fifteen call-to-action designs around the code: Scan me (bottom, top, speech bubble and round sticker), Like us, Follow us, Review us, Free Wi-Fi, Menu, Save contact, Watch, Listen, Get the app, Scan to pay and Special offer. Frames that fit your code's type come first and are marked Suggested. The Text takes up to 40 characters. Reset text and color restores the frame's defaults. The frame is part of every download, so framed images come out taller than wide.
Dots
Style: Square, Rounded, Extra rounded, Dots, Classy or Classy rounded. Color, plus an optional Gradient with a Second color, Linear or Radial, and an Angle for linear gradients.
Corner eyes
The three big squares phones use to find the code. Set the Outer style and Outer color and the Inner style and Inner color. Use dot color for corners matches them to the dots.
Background & shape
Background Color, Shape (Square or Circle), Transparent background (PNG / SVG / WebP) and Corner rounding. A transparent code should go on a plain, light surface.
Logo
Shown in the middle of the code. Size (10–50%), Padding around it, and Clear the dots behind the logo (on by default). Very detailed images are refused (“That image is too detailed — try a simpler logo.”), so a simple logo or icon works best.
Advanced
Error correction: Low (7%), Medium (15%), Quartile (25%, the default) or High (30%). That's how much of the code can be damaged or covered and still scan. Higher means a denser code. Margin (quiet zone) sets the blank border around the code.
Rules that keep a styled code scannable
The editor lists warnings under the preview when a style is risky. Here's what each one means:
- “Low contrast between the code and its background — phones may not scan it.” Any of the dot, corner or gradient colors is too close to the background. Darken the code or lighten the background. Pale yellows, light greys and pastel gradients are the usual culprits.
- “Light code on a dark background: phone cameras read it, some older scanner apps don't.” An inverted code. Fine for a modern phone camera, risky for everyone else.
- “With a logo, use error correction Q or H so the covered part can be recovered.” The logo hides part of the code; error correction is what fills it back in.
- “A big logo needs error correction H.” Shown when the logo is larger than 40% of the code.
- “Transparent background: place it on a plain, light surface.” On a busy photo or a dark wall, phones may not find the code.
- “Very small margin — leave empty space around the code when you print it.” Phones need a blank border to tell where the code starts.
Warnings are rules of thumb. The scan check, the colored chip right under the preview, actually tries to read your code and tells you whether it Scans well, May be hard to scan or Won't scan. See Scan check: will my QR code scan?.
Locked codes (after a downgrade) and static link codes can't change their content, but you can still restyle them.
Common questions
Can I add my logo on the Free plan?
Yes. Colors, shapes, presets, frames and logos are included on every plan. Paid plans add more download formats and bigger sizes, not design options.
If I change the design, do my printed codes stop working?
No. The design doesn't change the link inside the code, so printed copies keep working. They just keep their old look until you download and print the new one.
How big can my logo be?
The Size slider goes from 10% to 50% of the code's width. Above 40%, the editor warns that you need error correction H. In practice, smaller logos scan more reliably, so watch the scan check after every change.
Can I make a white code on a dark background?
You can, and phone cameras usually read it, but the editor warns that some older scanner apps don't. If you can, use dark dots on a light background.
Why did the code get denser when I added a logo?
Adding a logo raises error correction to H if it was on Low or Medium. Higher error correction stores extra recovery data so the code still scans with its middle covered, which means more, smaller dots.