Skip to main contentSkip to templates
All articles
showcases··17 min read

QR Code Colors: Can a QR Code Be Any Color? (15 Palettes That Scan)

Yes, QR codes work in color. Which colors scan and which fail (with measured contrast ratios), the 4.5:1 rule, colored QR codes in print, and fifteen tested color palettes with hex codes.

designcolor-theorybrandingshowcasepalettesqr-code-colors
Three colored QR codes in navy, purple, and teal on light backgrounds
Ozan Tunca
Ozan Tunca
Founder of Pretty QR, passionate about design and technology

Yes, a QR code can be almost any color. Scanners read brightness, not hue, so the only rule that matters is that the modules (the small squares) are much darker than the background. Keep the contrast ratio at 4.5:1 or higher, keep the background light, and test on two or three phones before you print. Purple, navy, deep pink, dark green, and dark red all work. Yellow, light pink, light blue, and pale gray usually do not.

Below is a table of 14 colors with their measured contrast, the size and print rules for colored codes, and fifteen palettes with hex codes. Every palette here is at 4.5:1 or higher.

I once shipped a flyer where the QR looked fine on my laptop and died under conference hall lighting: too little separation between two blues. If you are new to the basics, read getting started with custom QR codes first; for quiet zones and print testing, see our QR code design rules.

Which colors work for a QR code, and which fail?

The table shows each color as the module color on a white background. Contrast ratios are calculated with the WCAG formula, the same one contrast checkers use.

Grid of 14 QR codes in different module colors on white, each labeled with its contrast ratio: black, navy, dark purple, dark green, deep pink, and red work; hot pink is borderline; orange is risky; mid gray, bright green, and gold fail often; light pink, light blue, and yellow fail

Module colorExample hexContrast on whiteResult
Black#00000021:1Always works
Navy#1a365d12.1:1Works
Dark purple#6b21a88.7:1Works
Dark green#1665347.1:1Works
Deep pink#be185d6.0:1Works
Red#dc26264.8:1Works, test in warm light
Hot pink#db27774.6:1Borderline, go darker for small print
Orange#ea580c3.6:1Risky, use burnt orange instead
Mid gray#9ca3af2.5:1Fails often
Bright green#22c55e2.3:1Fails often
Gold#d4af372.1:1Fails often
Light pink#f9a8d41.8:1Fails
Light blue#93c5fd1.8:1Fails
Yellow#facc151.5:1Fails

Three patterns to remember:

  • Dark versions of a color work. If your brand color is pink, purple, or green, use its darkest shade for the modules.
  • Light colors belong in the background, the frame, or the design around the code.
  • Hue contrast is not enough. Red modules on a green background look very different to people, but their brightness is almost the same (about 1.5:1), and scanners fail. People with red-green color blindness also see them as one color.

Can a QR code be white on black?

Yes, with care. The QR standard (ISO/IEC 18004) allows reflectance reversal, and most current iPhone and Android camera apps read light-on-dark codes. Some older scanner apps and retail scanners do not. If your audience may use those devices, keep dark modules on a light background.

Can a QR code have a gradient?

A gradient works only if every part of it is dark enough on its background. The light end of a gradient is where scans fail. A solid color is the safer choice.

Where will the code live: print, screen, or outdoor?

Decide this before you pick a palette:

  • Mostly printed (business card, menu, packaging, event flyer): treat ~4.5:1 contrast as your floor, use the size table in the next section, and proof on real paper (coated vs uncoated changes perceived contrast).
  • Mostly on screen (email footer, slide deck, social graphic): the same contrast rules apply; ambient light varies less than print, but people still scan phone screens in sunlight. Do not rely on “it looked fine on my monitor.”
  • Outdoor, backlit, or a long scan distance: push contrast higher (think 7:1 when you can), increase physical size, and avoid busy or strongly tinted backgrounds behind the symbol.

How big should a colored QR code be?

Small codes punish stylish color faster than boring black-on-white. When you are between sizes, go larger.

Where it livesApprox. minimum widthNotes
Business card2 cm (0.8 in)Prefer 2.5 cm+ if the pair is trendy or the stock is uncoated
Flyer / brochure2.5 cm (1 in)Restaurant table tents and handouts: add margin if lighting is warm or dim
Poster (scanned from ~1 m)10 cm (4 in)Step back and scan; weak pairs need more space
Banner / sign (~2 m)20 cm (8 in)Sun and backlight reduce contrast; increase size and contrast

Rule of thumb: minimum width ≈ scan distance ÷ 10 (a code scanned from 3 m needs about 30 cm; when in doubt, round up). Colored modules are not a reason to make the code smaller.

Why do dark modules on light backgrounds scan more reliably?

Phone cameras meter exposure on the whole frame. A dark pattern on a light field gives the detector crisp edges; light gray on off-white can look artsy and scan as mush. ISO defines the QR symbol structure, but real-world lighting is what decides whether a read succeeds, so favor high separation over subtle tints.

What contrast ratio should you aim for?

For text, WCAG often cites 4.5:1 for normal copy. QR modules are not text, but that number is still a useful lower bound: if your pair passes a standard checker at 4.5:1 or better, you are usually in good shape. Below ~3:1, assume outdoor or dim-room failure until you prove otherwise with devices you care about.

Use a checker such as the WebAIM Contrast Checker on your foreground vs background hex values (sample the module color against the quiet zone color, not a gradient mid-tone).

What if my brand colors are light, pastel, or mostly yellow?

This is the question I see most from designers and small-business owners: “Our palette is soft pink / butter yellow / mint: how do we still look on-brand?” Scanners do not care about your mood board; they care about luminance. Light modules on a light field fail in dim light and on older cameras, full stop.

Rules of thumb:

  1. Put your darkest brand swatch on the modules (foreground). If nothing in the guide is dark enough, use navy or charcoal for the grid and keep “brand” in the background tint, frame, or layout around the code.
  2. Use a light brand color as the background (the quiet zone and field behind the modules). That is often how you get pastel in the piece without sacrificing reads.
  3. Reserve accent colors for the logo or decorative frame, not for painting low-contrast data modules. The logo tutorial is the right place to stack brand marks once the base pair is safe.
Your paletteWhat to do
Mostly light / pastelDark modules (darkest swatch or neutral); pastels on background or outside the code
One dark + one lightDark = modules, light = background
All mid-tonesDarken the module color until it clears ~4.5:1 on the checker. Do not ship “almost.”
You want pastel on pastelUse a white or cream card behind a high-contrast code; carry pastel in the frame, page design, or logo instead

Yellow deserves a special callout: yellow modules on white are a frequent failure mode because the value gap collapses. If yellow is sacred to the brand, keep yellow in the surrounding design and use a dark foreground for the QR itself.

Which professional and corporate palettes work well?

Three QR codes using navy, charcoal gray, and forest green on light backgrounds

Print note: These three usually hold from about 2.5 cm (1 in) on coated stock. On uncoated, cream, or kraft, favor Navy & Cream or Charcoal & Pearl; Forest & Sage loses edge faster when the paper itself pulls yellow-green.

Professional & Corporate

1. Classic Navy & Cream

  • Foreground: #1a365d (Navy Blue)
  • Background: #f7fafc (Cream White)
  • Contrast: 11.6:1
  • Best for: Corporate documents, business cards, professional materials
  • Why it works: Survives office fluorescent and slightly warm paper better than gray-on-gray; reads corporate without harsh pure black.

2. Charcoal & Pearl

  • Foreground: #2d3748 (Charcoal Gray)
  • Background: #f7fafc (Pearl White)
  • Contrast: 11.4:1
  • Best for: Minimalist brands, luxury products, clean layouts
  • Why it works: On glossy cards, pure black can crush fine module detail; charcoal keeps separation while feeling premium.

3. Forest & Sage

  • Foreground: #276749 (Forest Green)
  • Background: #f0fff4 (Sage White)
  • Contrast: 6.5:1
  • Best for: Sustainable brands, outdoor companies, health products
  • Why it works: Strong eco story; keep the quiet zone clean and avoid yellowed stock. Green modules need a truly light field to stay crisp at small sizes.

Which bold, energetic palettes work well?

Three QR codes in electric blue, crimson, and royal purple on light tints

Print note: Great on screens and large print. For small pieces under warm LED (bars, retail), Electric Blue & Ice is the riskiest of the three (see the close call under mistakes). Crimson & Blush and Royal Purple tend to tolerate mixed lighting better if size is tight.

Bold & Energetic

4. Electric Blue & Ice

  • Foreground: #2b6cb0 (Electric Blue)
  • Background: #ebf8ff (Ice Blue)
  • Contrast: 5.0:1
  • Best for: Tech companies, innovation brands, digital products
  • Why it works: Coordinated blue family for UI and slides; modules stay darker than the ice field on a calibrated display. Verify under tungsten or warm LED before small-format print.

5. Crimson & Blush

  • Foreground: #9b2c2c (Crimson Red)
  • Background: #fed7d7 (Blush Pink)
  • Contrast: 5.7:1
  • Best for: Food brands, urgent CTAs, high-attention campaigns
  • Why it works: Strong separation for sale stickers, packaging, and retail lighting where you need pop without red-on-red mush.

6. Royal Purple & Lavender

  • Foreground: #553c9a (Royal Purple)
  • Background: #f7fafc (Lavender White)
  • Contrast: 8.0:1
  • Best for: Creative agencies, beauty brands, premium products
  • Why it works: The background reads near-white to the camera, so this pair survives smaller print better than heavy pastel-on-pastel purples.

Which warm palettes suit food, retail, and hospitality?

Three QR codes in burnt orange, dark gold, and terracotta on warm off-whites

Print note: Food and hospitality often use warm bulbs. These pairs were chosen so orange and terracotta still read. We darkened every foreground in this group so all three clear 4.5:1. Bright yellow and gold do not, so this list uses dark gold instead.

Warm & Inviting

7. Burnt Orange & Cream

  • Foreground: #9c4221 (Burnt Orange)
  • Background: #fffaf0 (Warm Cream)
  • Contrast: 6.3:1
  • Best for: Food service, autumn campaigns, cozy brands
  • Why it works: Cream softens glare from overhead warm lights compared with stark white. Modules stay distinct on menus and table tents.

8. Dark Gold & Ivory

  • Foreground: #975a16 (Dark Gold)
  • Background: #fffff0 (Ivory)
  • Contrast: 5.5:1
  • Best for: Optimistic campaigns, family-friendly brands, gold-themed events
  • Why it works: Bright yellow and metallic gold fail on light backgrounds (about 1.5:1 to 2.4:1). This darker gold keeps the warm look and clears 5.5:1. Put the bright yellow in the frame or the design around the code.

9. Terracotta & Sand

  • Foreground: #8c3b26 (Terracotta)
  • Background: #faf5f0 (Sand)
  • Contrast: 7.0:1
  • Best for: Artisan brands, craft businesses, earthy products
  • Why it works: The sand field hides slight paper color shift on kraft and natural stock while keeping modules clearly darker.

Which cool palettes suit wellness, finance, and calm brands?

Three QR codes in teal, slate gray, and indigo on mint, cloud, and sky tints

Print note: Spas and clinics often run dim, warm lighting. Teal & Mint is the one to field-test in the actual room. Slate & Cloud is the safest “boring wins” pair for specs and RFPs. Indigo & Sky fits trust contexts at flyer size and up.

Cool & Calm

10. Teal & Mint

  • Foreground: #2c7a7b (Deep Teal)
  • Background: #f0fdfa (Mint White)
  • Contrast: 4.8:1
  • Best for: Wellness brands, spas, calming products
  • Why it works: On-brand for calm verticals; if ambient light is warm and low, darken teal one step or size up. Mint fields go muddy fast when the room does.

11. Slate & Cloud

  • Foreground: #4a5568 (Slate Gray)
  • Background: #f7fafc (Cloud White)
  • Contrast: 7.2:1
  • Best for: Architecture, design firms, professional services
  • Why it works: B&W photocopy and cheap office prints tolerate gray modules better than saturated hues. Good for contracts and leave-behinds.

12. Indigo & Sky

  • Foreground: #3c366b (Indigo)
  • Background: #ebf4ff (Sky Blue)
  • Contrast: 9.8:1
  • Best for: Finance, consulting, trust-heavy services
  • Why it works: Reads serious on screen and paper; the sky wash stays light enough for dense module grids at moderate print sizes.

Which seasonal palettes work for short campaigns?

Three QR codes in holly green, pumpkin orange, and valentine pink on light backgrounds

Print note: Seasonal pieces are often short runs; you can still proof on desktop inkjet. For window clings or outdoor boards, Pumpkin & Harvest may need one size step up in sun; Valentine Pink should stay ≥ 2.5 cm so pink modules stay distinct.

Seasonal & Special

13. Holly Green & Snow

  • Foreground: #22543d (Holly Green)
  • Background: #f7fafc (Snow White)
  • Contrast: 8.3:1
  • Best for: Holiday campaigns, winter promotions
  • Why it works: Festive without sacrificing dark-on-light; skip it if the sheet is cool blue-white and fights your perception of “snow.” Test on the actual card stock.

14. Pumpkin & Harvest

  • Foreground: #a34a0a (Pumpkin Orange)
  • Background: #fff7ed (Harvest Cream)
  • Contrast: 5.6:1
  • Best for: Fall campaigns, harvest festivals
  • Why it works: Warm seasonal read; bright sun can wash the cream field. Size up for sidewalk signs and storefront posters.

15. Valentine Pink & Rose

  • Foreground: #b83280 (Valentine Pink)
  • Background: #fdf2f8 (Rose White)
  • Contrast: 5.1:1
  • Best for: Romance-themed products, beauty, limited events
  • Why it works: On-brand for beauty and gifting; keep physical print generous. Pink modules need room and a clean quiet zone to stay distinct from the rose field.

How do you choose QR code colors for your brand?

Start from brand colors when you can: match the module color to a primary or secondary from your guidelines and pick a background that clears the contrast checker. If the guide is all pastels or lights, use the table in What if my brand colors are light, pastel, or mostly yellow? before you force a weak pair. If your brand is dark-on-dark, invert for the QR (light card behind the code) instead of forcing low contrast on the asset itself.

Match the medium: gloss paper, matte laminate, and outdoor sun all change perceived contrast. When in doubt, bump contrast one step for print. Tie physical size to the size table above. Stylish pairs are not an excuse to shrink. If you add a logo, see how to add your logo to a QR code; oversized marks are a separate failure mode from color.

What mistakes break QR code colors?

Side by side: low-contrast light blue QR versus high-contrast dark-on-white QR

Close call (real pair from this list): Electric Blue & Ice (5.0:1) looked perfect on my laptop, then struggled on a table tent under warm LED: the blue modules sank toward the ice background. I fixed it by darkening the foreground a couple of steps or switching to a whiter background. If you love that pairing, test in the actual venue lighting and size up before you commit print.

Scanning killers

  • Light modules on light backgrounds
  • Same-hue stacking (blue modules on a blue-tinted field without enough value gap)
  • Neon colors that bloom on camera sensors
  • Gradients whose light end fades into the background
  • Code too small for the contrast you chose (see the size table)

Design traps

  • Too many colors in one symbol
  • Ignoring brand accessibility rules
  • Seasonal colors on permanent signage that will look dated
  • International campaigns: red often reads as celebration or luck in many East Asian contexts but as error or urgency in Western product UI; green is not universally “go.” Use symbolism that matches your audience, then still run contrast and device tests. Culture does not fix low luminance separation.

How do you apply these hex codes in Pretty QR?

  1. Open /design (or start from the homepage and move into the editor). After your first edit, Pretty QR keeps your work on /design/[id] so colors survive refresh, same flow as in the logo tutorial.
  2. Set content first (URL, text, Wi‑Fi, etc.), then optional templates for a quick base style.
  3. In the Styling tab, paste foreground and background hex values, or use the color pickers, and watch the live preview.
  4. Download PNG, JPG, or SVG and run your phone scan test before high-volume print.

How should you test colors before you print?

Grayscale sanity check: Scanners effectively care about luminance. Take a screenshot of your code and desaturate it (macOS Preview: adjust saturation to zero; Photoshop: Image → Mode → Grayscale; Figma: layer grayscale or a plugin). If modules disappear into the background in black and white, fix contrast before you pay for plates or a long print run.

Five-second rule: if a colleague cannot scan it in a few seconds under normal office light, tighten contrast or size before you commit budget to print.

Device mix: try iPhone and Android, ideally one older handset; different cameras expose differently.

Distance: step back to the distance someone will stand in the real environment; small codes punish weak contrast faster.

On real stock: inkjet proof on the same paper family you will use; uncoated and kraft steal contrast compared with glossy comps.

How can monochromatic, complementary, and analogous schemes help?

Monochromatic: dark shade of your brand hue on a very light tint of the same hue. Cohesive and usually safe if value separation is wide.

Complementary: opposites on the color wheel can maximize pop; just verify the checker. Vivid pairs can still fail if mid-tones creep together.

Analogous: neighbors on the wheel feel harmonious; keep the modules darkest in the group so the pattern does not disappear into the background.

What do common module colors signal?

Loose associations only. Category norms change by industry and region. Pair this list with contrast testing, not wishful thinking:

  • Blue: trust, finance, tech
  • Green: growth, health, sustainability
  • Orange: urgency, food, energy
  • Purple: premium, creative
  • Red: attention. Use it when the code must stand out on a busy layout.

Pick the pair closest to your brand, check its contrast, and scan a printed proof with the phones your audience uses. To try one, open the design editor or start from a template in the gallery, then paste the hex codes into the Styling tab.

Questions? [email protected]

Frequently asked questions

Can a QR code be any color?

A QR code can use almost any color, as long as the modules (the small squares) are much darker than the background. Scanners read brightness, not hue. Dark purple, navy, deep pink, dark green, or dark red on white all scan well. Yellow, light pink, light blue, and pale gray on white usually fail because their contrast is below 3:1.

Do QR codes work in different colors?

Yes. Phone cameras convert the image to light and dark values, so a colored QR code works the same as a black one when the contrast is high enough. Aim for at least 4.5:1 between the module color and the background. Test with two or three phones before you print.

Can a QR code be white on black (inverted)?

The QR standard allows inverted codes, and most current iPhone and Android camera apps read them. Some older scanner apps and point-of-sale scanners do not. If you cannot test the devices your audience uses, use dark modules on a light background.

Which colors should you not use for a QR code?

Avoid yellow (about 1.5:1 on white), light pink (1.8:1), light blue (1.8:1), bright green (2.3:1), gold (2.1:1), and mid gray (2.5:1) as module colors on white. Also avoid red modules on a green background (1.5:1), gradients inside the modules, and same-hue pairs such as light blue on pale blue.

What is a safe color combination for a QR code?

Use dark modules on a light background and aim for strong luminance contrast between the two. A practical target is at least about 4.5:1 between foreground and background (check with a contrast tool). Very light-on-light or same-hue pairings often fail in dim light or on older phones.

What contrast ratio should I use for QR code colors?

Treat roughly 4.5:1 as a good minimum for reliability in normal conditions. Below about 3:1 is risky. WCAG-style contrast checkers (for example WebAIM) are a useful sanity check even though QR scanning is not identical to text accessibility.

How do I set custom QR colors in Pretty QR?

Open the design editor at /design, pick your content and optional template, then use the Styling tab to set foreground and background colors, then paste the hex values from this article or choose from the picker. Work is saved on the persisted /design/[id] URL after your first change.

Why do my colored QR codes fail to scan?

Usually the module and background are too similar, the code is too small for the lighting, or a logo/frame is eating the quiet zone. Fix contrast first, re-test at arm length, then adjust size or logo coverage. Our QR code design rules post covers quiet zones and print testing in more detail.

What is the grayscale test for a QR code?

Desaturate a screenshot of your code (set saturation to zero in any editor, or convert to grayscale). If modules blend into the background in black and white, scanners will struggle too. Increase luminance contrast between foreground and background, then retest on a phone.

How big should a printed QR code be?

Rough minimums: about 2 cm (0.8 in) on a business card, 2.5 cm (1 in) on a flyer, 10 cm (4 in) on a poster scanned from about 1 m, and 20 cm (8 in) on a banner scanned from about 2 m. Colored pairs need more margin, so go larger if scans are slow. Rule of thumb: minimum width ≈ scan distance ÷ 10.