Snapkit Logo, Dots, and Colors: What Customize Design Changes

What the homepage Customize Design panel paints in the PNG, which of those downloads work with no account, and what a center logo did in a preview decode.

Andrei Haiducu
12 min read

The homepage has a style panel. It is collapsed, the heading is Customize Design, and the badge on that heading is Premium. Leave it alone and a black-on-white static QR downloads with no account. Open it and change one control, and the signed-out Download button I measured stops saving a file.

This page is that panel: the labels, what they paint, the download gate I actually hit, and a preview-canvas decode of a center logo. It is not a second copy of how Snapkit generates a code, and it is not the generic contrast article. Contrast ratios and CMYK live on colors and design. Use that when you need the theory. Use this when you need the controls on snapkit.store.

Customize Design labels: Foreground, Background, Logo (centered), Dot Style, Corner Eye Style. No reset and no logo size slider.

Default download, before you style anything

Type a URL. Leave the style panel at its defaults:

ControlLabel on the pageDefault
Module colorForeground#000000
Light fieldBackground#ffffff
Center imageLogo (centered)empty, button Upload PNG / JPEG
Module shapeDot StyleSquare (also Rounded, Smooth)
Finder shapeCorner Eye StyleSquare (also Rounded, Dot)

The button reads Download PNG. It saves qrcode.png. After that file starts, a dialog can open:

  • Title: Download started
  • Line under it: Quick tips before you print or share your code.
  • Printing this? — Size, resolution, and contrast tips so it scans on paper.
  • Need to change the link later? — Static vs dynamic — when you can edit without reprinting.
  • Worried it won’t scan? — Quick fixes for contrast, quiet zone, and density issues.
  • Close control: Maybe later

That path does not ask you to sign in. Clear the URL field and the same button reads Enter Content to Download, with Add content above to enable your PNG download. under it.

The picture in the 256 px box and the file from Download PNG are the same render. The canvas I read off the live page was 1024 × 1024. The smaller box is the CSS size. Screenshot-versus-file, quiet zone, and a two-phone print check are already written up in test the PNG before print. I am not repeating that. I only decoded the 1024 canvas in the browser. I did not photograph a print with two phones.

What each control changes

There is no Reset. There is no third color for the eyes. Foreground is the only dark color, so the modules and the three corner eyes share it. Background is the light field, quiet zone included. Dot Style only changes module shape. Corner Eye Style only changes the three finders. The string you typed does not change when you restyle.

ControlPreviewDownloaded PNG, when a download is allowedAccount, signed out
Foreground off #000000Dark modules switch to that hex. I set #1e3a8a and a dark module sampled as rgb(30, 58, 138).Same paint as the preview.Button disables. See the gate below.
Background off #ffffffLight field switches. I set #fff4e5.Same paint.Same gate.
Dot Style Rounded or SmoothModule shape changes. Square is the default.Same shape.Same gate.
Corner Eye Style Rounded or DotFinder shape changes. Square is the default.Same finders.Same gate.
Logo (centered)Image sits in the middle and covers modules. Button becomes Change Logo. A thumbnail is labeled Logo preview. An X beside it clears the image.Same centered image.Same gate. Clearing the logo, with every other control back at the defaults, returned Download PNG.
All five back to the defaultsBlack modules, white field, square dots, square eyes, no logo.qrcode.pngDownload PNG is enabled again.

The file input accept is image/png,image/jpeg. The button text is the only format hint: Upload PNG / JPEG. I did not see a megabyte cap, a pixel cap, or a warning after upload. I uploaded 64 px and 80 px PNGs. Both were accepted and painted at the same center size. You cannot shrink or enlarge the mark from this panel.

The gate is any customization, not a per-control price

Default black-on-white square code downloads qrcode.png. Any style change shows Access Check Required.

I changed one control at a time on the live homepage, signed out, on 24 Sep 2026. Each of these left the preview updated and blocked the file:

  • Foreground #1e3a8a
  • Background #fff4e5
  • Dot Style Rounded
  • Dot Style Smooth
  • Corner Eye Style Dot
  • A center PNG logo

The button label becomes Access Check Required and the button is disabled, so the click does not download. Under it:

We could not verify your account access. Check your connection and retry.

The link under that line is Retry access check. I did not get a PNG out of that state.

While the check is still running, the same button can read Verifying Access… and the line under it can read Verifying your account access before download…. By the time I looked, that had already finished and the error above was what stayed on screen.

The page also ships a dialog I did not see open while signed out:

  • Title: Unlock Your Custom QR Code
  • Body: Custom branding, logo uploads, and unlimited styling are exclusive features of our premium plans.
  • Bullets: Custom foreground & background colors, Branded logo in the center of your code, Custom dot & corner eye styles
  • Primary button: Start free trial when there is no session, Upgrade to Unlimited when there is
  • Secondary: Maybe later

Signed out, Download was already disabled, so that dialog never had a chance to show. I did not sign in, and I did not start a trial, so I cannot tell you that a logged-in Starter session sees Upgrade to Unlimited or that an Unlimited session saves the styled PNG. What I can quote is the pricing page.

On /dynamic the cards say:

CardPrice on the pageStyle lines on that card
Free Trial$0 for 14 daysIncluded: Custom colors & branded logo uploads. Custom QR shapes & styles.
Starter$5 one-timeLimitation: Custom colors, logos & shapes.
Pro$9 one-timeLimitation: Custom colors, logos & shapes.
Unlimited$7 /monthIncluded: Custom colors & branded logo uploads. Custom QR shapes & styles.

Pro is not the style plan on that page. The cards that list the style features as included are Free Trial and Unlimited. Starter and Pro list Custom colors, logos & shapes with the limitations. Treat that as the pricing copy, not as a download I completed.

Make this QR Code Dynamic (Editable) is a different checkbox, URL tab only. That path is static vs dynamic and /dynamic. A static URL with only a color change is already inside the style gate above. You do not have to touch Dynamic to hit it.

Inside the open panel, a signed-out session that has finished the check in an error state does not show an extra “preview only” banner. The disabled button and the red line are the gate I was looking at. The preview itself keeps painting, which is why you can study the look before you have a file.

Logo, and the one style that failed a decode

A center logo spends error correction. The image covers modules. The rest of the code is what a camera uses to rebuild the hidden ones. Snapkit does not show an error-correction level, a coverage percent, or a “this may not scan” warning when you upload.

There is no size control, so I could not hunt for a break point by dragging a slider. I measured the paint instead. On the live 1024 × 1024 preview canvas, an opaque red PNG landed as a centered square about 280 px wide (a bit over a quarter of the canvas). A 64 px file and an 80 px file painted that same square. The panel scaled them. It did not use the file’s pixel size as the logo size.

I then ran an in-browser decode (jsQR) on that canvas. Not a phone camera. Not a print.

What was on the previewjsQR result for the URL I had typed
Defaults, short https://snapkit.storeDecoded
Foreground #1e3a8a on #ffffffDecoded
Background #fff4e5, foreground still blackDecoded
Dot Style Rounded, otherwise defaultDecoded
Corner Eye Style Dot, otherwise defaultDecoded
Opaque red center logo, square dotsDecoded
Smooth dots plus that red logoDecoded
Dot corners plus that red logoDecoded
Near-white logo (#fafafa) on the default black modulesDecoded
URL of about 200 characters, no logoDecoded
That longer URL plus the red logoDecoded
Foreground #ffe14a on #ffffffDid not decode. The dark-module sample was rgb(255, 225, 74).

So, at the one logo size this panel paints, these URLs still decoded here. I am not going to invent a “breaks at 30%” rule or a two-phone matrix I did not run. Phone cameras and a laminated card can still disagree with jsQR, especially once the modules are pale. The failure I did reproduce was the light foreground, not the logo.

If the camera never locks, start at QR code won’t scan and then test the PNG. If the camera locks and the colors merely look muddy in print, the contrast and CMYK notes are the color guide.

A styled preview is not a styled file. While signed out I could decode the canvas and I could not download it. The PNG you hand a printer has to come from Download PNG, after the access check succeeds.

Safe and risky on these controls

This is not a redo of the generic color chart. It is the combinations this panel can actually make, tied to the gate and the decode above.

CombinationSigned-out downloadWhat I would do with it
#000000 / #ffffff / Square / Square / no logoDownload PNGUse this for anything you are about to print and you do not have an account.
Dark foreground such as #1e3a8a on white or #fff4e5, square modules, no logoAccess Check RequiredPreview decoded here. Still need an entitled download, then a phone test. Contrast theory is the color guide.
Rounded or Smooth, or Dot eyes, high contrast, short URLAccess Check RequiredPreview decoded here, including Smooth with a center logo. Finders are less square. Test the PNG on a phone before a press run.
Center logo at the size the panel paints, high-contrast modules around itAccess Check RequiredNo slider. My jsQR reads succeeded. The product will not warn you if a phone disagrees.
Foreground #ffe14a on #ffffffAccess Check RequiredDo not print. The preview decoder already failed, and the file is gated anyway.
Logo plus a light foregroundGated, and you have spent the center and the contrastPut the modules back to a dark hex before you care about the logo.
Starter or Pro because you wanted colorsThose cards list Custom colors, logos & shapes as a limitationStyle features are written on Free Trial and Unlimited. I did not log into either.

Build list

  1. Open the homepage. Type the payload. Leave Customize Design closed if black on white is enough.
  2. Download PNG. Keep qrcode.png. Do not screenshot the 256 px box. The 1024 vs 256 distinction is the print test.
  3. If you open the panel, the preview updates immediately. Signed out, Download becomes Access Check Required as soon as any control leaves the defaults.
  4. Need the free file back? There is no reset. Set Foreground to #000000, Background to #ffffff, both style groups to Square, and clear the logo with the X. The button should read Download PNG again.
  5. Need the styled file? The pricing copy that includes colors, logos, and shapes is Free Trial and Unlimited on /dynamic. Starter and Pro list that line as a limitation. I did not finish a signup, so I am not going to pretend I watched the entitled download.
  6. When you do have the PNG, scan that file, not the on-page preview. Won’t scan if the camera never locks.

Dynamic codes, if you also need to change the destination after printing, stay on static vs dynamic. The style panel does not turn a static code into a redirect. How Snapkit generates codes is the browser-side path and the short note on this gate. This page is the control-by-control version.

Ready to create your QR code?

Try Snapkit's free QR code generator - no signup required.

Generate QR Code