Private · Enter password

Incorrect password

← All work
Product Design · 2023

Counter App & Loyalty

A customer-facing POS kiosk for restaurants — arm's-length tap targets, variable lighting, high cognitive load. The dark mode I shipped here as an accessibility call became Aero's system-wide standard.

Role Product Designer
Company SpotOn
Timeline 2023
Status Shipped
01 · Context

Designing for arm's length

A kiosk isn't a phone. The user is standing up, often in motion, sometimes with kids or bags, in a restaurant with variable noise and lighting. The device is fixed — the user can't reposition it. Tap targets at arm's length are a fundamentally different problem than mobile.

This was my first kiosk project. The constraints were physical, not just interaction-design challenges — I had to design for a specific body distance, a specific device size, and an environment that actively works against focus.

[ Fill in: The specific product scope. What Counter App was for, what Loyalty added, how they were connected. What success looked like for the business. ]

Fixed device

Can't be tilted, moved, or held. Every layout decision is for one viewing angle, one distance.

Variable environment

Restaurants range from bright fast-casual to dim fine dining. Contrast and legibility can't be assumed.

High cognitive load

Users are deciding what to order, reading prices, interacting with staff. The UI has to be instantly clear.

02 · Phase 1

The passive display

Before a customer walks up, the kiosk is showing something: a menu, promotions, brand content. This is Phase 1 — the idle state. It has to work at distance, function as ambient display, and transition into the active flow without disorienting the user.

[ Fill in: The specific design decisions for Phase 1. What you showed on the passive screen, how you handled brand requirements, what the transition into Phase 2 looked like. ]

[ Fill in: What the key challenges were here and how you solved them. ]

Image · Phase 1 passive display
Idle state · menu/promo content · brand treatment
03 · Phase 2

Payment, tipping, loyalty

The active flow

[ Fill in: The Phase 2 flow in order. How you handled the itemized order view, tipping (the most fraught UX in POS), signature, and loyalty sign-up as a post-payment moment. ]

Tap target decisions

[ Fill in: How you handled touch targets at arm's length. What the minimum sizes were, how you validated them, what you had to override from standard Aero specs. ]

Error states & recovery

[ Fill in: Payment errors, failed loyalty lookups, timeout states. How you designed for the restaurant staff's perspective as much as the customer's. ]

Image · Phase 2 order review + tipping
Image · Loyalty sign-up flow
04 · Dark mode

An accessibility decision that became a system standard

I shipped dark mode on this project not as a preference, but as the right answer for the environment. Restaurant lighting is unpredictable. Dark mode reduces glare in dim settings, improves contrast in ambient light, and is easier on the eyes in high-ambient-noise environments where cognitive load is already high.

It was an accessibility argument, not an aesthetic one — and it worked. The patterns I established here became the foundational reference for Aero-wide dark mode.

[ Fill in: The specific design decisions that made the dark mode work. Color token adjustments, contrast ratios, what you had to rethink from the light-mode baseline. What "translating" to dark mode revealed about the system's assumptions. ]

Image · Dark mode implementation · Phase 2 UI
Token values, contrast decisions, before/after
05 · Impact

What this project left behind

[ Fill in: The business impact of the shipped product. Metrics if available — adoption, loyalty sign-up rate, transaction speed, customer satisfaction. ]

[ Fill in: The system-level impact — how the dark mode patterns propagated into Aero. What other kiosk projects used as their reference. What this project revealed about gaps in Aero's accessibility documentation. ]

Let's talk

Email paucoro14@gmail.com
Elsewhere LinkedIn →