Card design

How to design a loyalty card that looks like your shop

Logo prep, contrast that survives a dim screen at night, and stamp icons that read — with the real ratios from the Waya card designer.

Waya TeamUpdated 18 August 202611 min read

Two decisions carry the whole card

Two things decide whether your card reads on a phone: the contrast between your background color and your text color, and whether your logo is a square PNG with a transparent background. Get those two right and the rest of the designer is ten minutes of typing. Get them wrong and the card looks like a screenshot of a website that got shrunk.

The designer shows you the first one live. Next to the background and text color fields sits a badge with the real WCAG contrast ratio: AA at 4.5:1, AAA at 7:1, "Large only" at 3:1, and "Low contrast" below that. The bar is 4.5 rather than 3 because pass fields are small text, read at arm's length, usually one-handed.

Custom card design is on the free plan, so none of this is behind a paywall. If you would rather hand it over, design help from the Waya team is included on Growth at 85 SAR a month (867 SAR a year).

Prepare the logo before you open the designer

The logo field wants a square PNG. 512x512 px is the recommended size, 2 MB is the hard limit, and a transparent background is the thing that separates a logo from a white box sitting on your card.

Crop to the mark, not the full lockup. Wallets render the logo small, at the top of the pass, right next to your shop name — and the pass title is already your shop name, so a wordmark just repeats text at 8 px tall. Google Wallet frames the logo inside a circle, so leave about 10% padding on every side and keep nothing important in the corners.

Skip the upload and Waya composites a placeholder for you: a 512x512 tile in your card color with your shop's first initial, in whichever of white or near-black reads better against it. That exists for a technical reason. Google Wallet requires a logo image, and a pass class without one fails validation with an unhelpful error message. It is a fallback, not a brand.

The most common bad file is a screenshot of an Instagram profile picture. It arrives as a non-square JPG with a baked-in white background, already upscaled once. On a dark card it renders as a white rectangle with a soft logo floating inside it.

Wallet passes have no dark mode

An Apple Wallet or Google Wallet pass carries one background color and one text color. There is no light variant and dark variant to design. Whatever pair you pick is what shows in a sunlit car at noon and on a dimmed screen at midnight.

What does change is everything around the card. In dark mode the surrounding interface goes near-black, so a pale card becomes the brightest object on the screen. Text that looked fine on your laptop at full brightness collapses at 20% brightness with the display warmed by Night Shift.

Here are the real numbers the designer reports. Waya's default emerald #10B981 with white text measures 2.54:1, which gets flagged as low contrast. The same emerald with near-black #0F172A text measures 7.04:1 and passes AAA. Amber #F59E0B with white is 2.15:1; with slate #1E293B it is 6.81:1. Blue #3B82F6 and red #EF4444 with white land at 3.68:1 and 3.76:1, which the badge honestly calls "Large only" — fine for the reward headline, thin for the small print underneath.

The rule that falls out of that: mid-tone saturated colors want dark text, not white. If you want white text, go deeper. Charcoal #1F2937 gives 14.68:1 and forest green #065F46 gives 7.68:1. If you have already uploaded your logo, the brand-colors control pulls up to five colors out of the file and sets a readable text color for whichever one you choose.

Stamp slots, and why pastel cards look faint

The stamp row on an Apple Wallet stamp card is a rendered image band, 1125x432 px, drawn per customer: earned slots filled in, unearned ones left as ring outlines. That band sits on a fixed warm off-white, and each slot circle is your card color darkened by roughly 22%.

Which is exactly why pastel cards look faint. A cream card at #F5F1E8 produces slot circles at 1.77:1 against that off-white band, so a filled slot and an empty slot are nearly indistinguishable at arm's length. Emerald gives 3.78:1. Charcoal gives 15.35:1. If your brand is genuinely pale, keep the pale color on your walls and your cups, and pick a deeper shade for the card.

Each slot shows either a number, counting 1 to N, or one icon repeated across the row. Numbers are the default and they read well. Icons win when the icon is the product: a cup for a café, scissors for a barber, a paw for a groomer. The icon library ships themed packs — Tea & Coffee, Food, Pets, Cleaning, Yoga & Fitness — alongside your own upload, plus sliders for stamp size, alignment, and the horizontal gap between slots.

Keep the count at 10 or fewer. The field accepts up to 50, but the stamp band is drawn for up to 10 circles, and 10 circles across a pass about 375 pt wide are already small. If your margins need 20 paying visits before a reward, a points card reads far better than 20 dots.

A before and after

This example is invented, but every problem in it comes from cards we have watched merchants build. A café — call it Corner Roasters — puts a card together in five minutes: cream background #F5F1E8, white text, a screenshot of their Instagram avatar as the logo, reward title "Loyalty Program", 12 stamps, numbers in the slots.

On an actual phone it falls apart. The reward line measures 1.13:1, so it is effectively invisible. The logo is a white square on a cream card. Twelve slots were requested but the band draws 10. And the customer who opens their wallet sees a beige rectangle labeled "Loyalty Program", which says nothing about the free drink they are working toward.

The fix takes about ten minutes and does not touch the brand. Background moves to charcoal #1F2937 with white text: 14.68:1, AAA, and the slot circles jump to 15.35:1 against the band. The logo gets re-exported as a 512x512 transparent PNG with the wordmark cropped off, leaving the mark with padding so Google Wallet's circular frame cannot clip it.

Then the wording. "Loyalty Program" becomes "Free flat white", the stamp count drops from 12 to 8, and the slots switch to a cup icon from the Tea & Coffee pack. Same business, same cream on the shop walls, but now a card you can read in one glance from a phone lying face-up on the counter. None of the loyalty math changed — only whether the customer can see it.

Check it on a phone, not in the preview

The designer previews both platforms with an Apple Wallet and Google Wallet toggle inside a phone mockup, and it is accurate about layout. It is still a mockup, on a desktop monitor, at full brightness. Before you print the QR code, enroll yourself: scan your own code, type in your name and mobile number, add the pass.

Then do three things with it. Drop screen brightness to about 20% and try to read the reward line. Open your wallet's stacked list, where only the top strip of each pass shows, and check whether your shop is recognizable from the logo and name alone. Flip the pass over and read the back panel — terms, website, phone, address, Maps link.

One honest note about that back panel. The address and Google Maps fields on the card are display fields only. They are not the geofence. Branch-proximity reminders, the lock-screen nudge when a regular is near you, are configured on the Branches screen, and filling in the card's address does nothing for them.

If you edit a saved card later, Waya republishes it to everyone already holding it. Google Wallet updates the pass class and fans the change out internally, and every registered iPhone receives a silent push and re-downloads the pass. Your customers re-scan nothing, so you can fix a contrast mistake the same afternoon you notice it.

Frequently asked questions

What size should my logo be for a wallet loyalty card?

A square PNG at 512x512 px with a transparent background, under 2 MB. Crop to the mark rather than the full logo-and-wordmark lockup, because wallets render the logo small and right next to your shop name. Google Wallet frames it inside a circle, so leave roughly 10% padding on all sides. If you upload nothing, Waya generates a placeholder tile with your shop's first initial on your card color.

Do Apple Wallet and Google Wallet passes have a dark mode?

No. A wallet pass carries one background color and one text color, and both render identically whether the phone is in light or dark mode. What changes is the interface around the pass, which goes near-black, so a pale card becomes the brightest thing on the screen. Pick a color pair that clears 4.5:1 contrast and it will read in either setting.

How many stamps should I put on the card?

Eight to ten for most shops, and never more than ten if you care how the card looks. The field accepts 1 to 50, but the stamp band is drawn for up to 10 circles, and 10 dots across a phone-width pass are already small. If your margins need 20 paying visits before a reward, use a points card instead of a stamp card.

Can I change the card design after customers already have it?

Yes, and your customers do not re-scan anything. When you save a design change on a card that already has holders, Waya republishes it: Google Wallet updates the pass class and fans it out, and every registered iPhone gets a silent push and re-downloads the pass. Delivery depends on each phone being reachable, so give it a little time rather than expecting every device to flip at once.

Do I need a designer to make the card look good?

No. Custom card design is included on the free plan at 0 SAR for up to 100 customers, and the card is really four short sections: colors, images, stamp icon, and reward wording. The contrast badge does the hard part by telling you when a color pair fails. If you would rather hand it over, design help from the Waya team is included on Growth at 85 SAR a month (867 SAR a year).

Put Waya on your counter — free forever up to 100 customersDesign your card free
Design your card free