Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
Design Director · Icon Review · 2026-09-11 · follow-up to 2026-09-11 assessment
Eight concept directions for the home-screen mark and favicon, built against the live Offset identity (Steel Blue paper, navy ink, flame + mustard spot pair, registration-echo device) — not the retired Marquee palette the shipped icon is still carrying. Every concept is drawn as a pure symbol with no product-name typography baked in, because Kahua's naming exploration is running in parallel and the mark should survive whatever name lands.
Built against D-376 / D-377 (Linnea presents, Lance picks; dark-grounded, no pre-rounded corners, render-tested, device-verified before ship). This page is the direction-pick step — the device-verification step in D-377 constraint 9 still happens after Lance picks, once Tahoma builds the real PNGs through the app's PIL pipeline (tools/make-icons.py, which itself carries the bKGD-chunk warning: PIL, never rsvg-convert).
Direct answer to Lance's question — is 04 · The Ticket as first drawn its best form, and does the warm register genuinely beat the cool one for this specific concept.
No — the direction was right, the drawing wasn't. What's in the slate below is a coat-check stub: a rounded rectangle, one notched corner, six mustard perforation dots, one dashed fold line. That's a real object, but it isn't the object Lance named. A "sales tag" is a more specific, more universal thing — a diagonal price tag on a string, one hole punched through it, tied to the item. That object already exists in this app, in the icon that's shipping today. And it's a structurally stronger silhouette for the exact reason 04's own writeup flagged as its weakest point: at 16px, 04's identity lives in surface detail — six dots and a notch — that disappears first, leaving an anonymous cream card. A diagonal tag reads from its outline alone: point, body, one hole. Outline survives compression; surface texture doesn't. The refined version below keeps 04's actual logic (a universal claim-object, no dependency on the word "table" or "sale," survives whatever Kahua's naming lands on) and rebuilds the drawing around a true tag silhouette — one punched hole as real negative space instead of a row of filled dots, one confident price-rule instead of a perforation line, a pointed cut instead of a rounded notch.
Same refined tag glyph, two executions. Left is drawn in the Offset tokens every concept below used (cream tag, navy ground, flame accent at the tip). Right is drawn in the exact umber/brass pulled from apps/resale/tools/make-icons.py — #2C241B ground, #C0A05E tag — the values already baked into the PNGs on the phone today, not reconstructed from memory.
cream #FBF8EF · navy #17213A ground · flame #C4392A tip
Actual size — favicon through iOS icon
iOS home screen — light / dark
brass #C0A05E · umber #2C241B ground — from the shipped icon file
Actual size — favicon through iOS icon
iOS home screen — light / dark
The Marquee execution is stronger for this specific concept, for three reasons that have nothing to do with matching taste to the boss. First, it's already-tested engineering: make-icons.py's own build comments record that an earlier bronze (#856438) measured about 2.2:1 contrast against the umber ground and "turns to mud at 40px" — the brass shipping today (#C0A05E) was chosen specifically to fix that. Two flat tones at a validated contrast ratio is a stronger floor at 16px than the four-tone Offset drawing above, which is doing more work with less room to do it in. Second, this app already runs two palettes on purpose, not by accident: the instruction plates and the printed contact sheet — the largest illustration surfaces in the product, and the one artifact that ends up on a fridge — are drawn in bronze (#856438) and kraft (#e2dac9), not Offset navy (assessment finding 1.2, confirmed directly in plates.js). A tag icon is a physical-object motif, the same family as a plate or a printed sheet, not a chrome motif like a button or a nav bar. Putting it in the warm register isn't drift back toward a retired identity; it's putting it in the register that already belongs to physical objects in this app. Third, and simplest: a price tag is a warm, kraft, hand-labeled object in real life. Cream-on-navy is a handsome print-shop color story, but it doesn't look like a tag. Brass-on-umber does.
What this changes from my earlier assessment: finding 1.1 called the shipped icon "a different product than what opens underneath it" and asked for a move to Offset. I'm revising that in light of finding 1.2 — the real defect wasn't the warm palette itself, it was that the warm-object register and the cool-chrome register have never been written down as two deliberate things, so the icon reads as leftover drift instead of an intentional choice. The fix isn't repainting the tag navy; it's formalizing the split — Offset-cool for UI chrome, Marquee-warm for physical-object motifs (icon, plates, contact sheet) — as an actual system decision. Worth logging as a short ADR via Ansel once this is picked, so the next redesign inherits a rule instead of re-litigating this same argument.
Recommendation: ship the refined Ticket in the Marquee/warm register — brass #C0A05E tag, punched hole and price-rule as true umber negative-space, on the #2C241B ground already in production. It's the correct execution of the object Lance actually asked for, it's stronger at 16px than either the original 04 drawing or the Offset re-draw beside it, and it's consistent with a pattern already running elsewhere in the app rather than fighting it.
Flagged in the 2026-09-11 assessment, item 1.1 — reproduced here for the side-by-side.
Pulled directly from apps/resale/public/index.html's Offset token block, not reconstructed from memory.
Each is named by its structural axis before its palette, per the standing design-option discipline — the palette is the same five colors throughout on purpose; what differs is the idea. Every mark sits inside the ~80% safe circle (dashed guide, reference view only) and every canvas is a plain full-bleed square — iOS applies its own mask, nothing here is pre-rounded.
Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
Actual size — favicon through iOS icon
iOS home screen — light wallpaper / dark wallpaper
Browser tab — light chrome / dark chrome
A real printer's crosshair, two passes slightly out of true — flame over a mustard ghost.
This is the one I'd fight for. The app's own visual signature — the registration echo, the thing that makes it look like a Draw Down Books zine instead of default-SaaS — has been living as a decorative CSS shadow trick for months while the actual icon on the home screen shows a bronze price tag from a palette the app itself retired. The Register Mark closes that gap by promoting the app's real structural idea to the mark itself, instead of inventing a new decorative motif and hoping it reads as "this brand." It's the literal object a print shop uses to line up ink plates — not a metaphor borrowed from print, the actual device — which is exactly the register this identity has been reaching for since Offset shipped.
It also survives Kahua's naming work cleanly, because nothing about it depends on the word "table," "sale," or any specific name. And it is the most confident option on the table in the literal sense: it doesn't ask to be liked the way a warm coin or a friendly ticket does — it just looks like it knows what it's doing, which is the register a family tool earns trust from just as much as a marketplace tool does. At 16px it holds because a circle-plus-cross is about as legible a glyph as exists; I checked it against a plain bullseye and a plain plus-sign side by side in testing and the register-mismatch is still readable at 16px as "two colors, slightly off," which is the whole idea.
The Coin is my honest runner-up, not a consolation pick. It recycles the single best-loved, most-tested UI element already in the app (the ledger row's status disc), it's warmer and more immediately "this is about money you're about to make" for a family member who has never thought about print production in her life, and it carries zero risk of reading as too cerebral. If the priority is maximum instant-legibility for the least design-literate person in the household over category-distinctiveness, this is the safer, still-good choice — I would not talk Lance out of it.
Rated honestly, not padded — a 5 is not a participation trophy. Legibility-at-16px is the hardest floor per D-376 constraint 2; ownability asks whether this shape shows up on other app icons already.
| Concept | Register | Legible at 16px | Ownability | Survives a rename | Warmth |
|---|---|---|---|---|---|
| 02 · Register Mark | Cool, confident, print-shop | ●●●●● | ●●●●● | ●●●●● | ●●●○○ |
| 01 · The Coin | Warm, friendly | ●●●●● | ●●●○○ | ●●●●● | ●●●●● |
| 03 · The Stamp | Action, verb-first | ●●●●○ | ●●●○○ | ●●●●● | ●●●●○ |
| 05 · The Frame | Minimal, techy-print | ●●●●● | ●●●●○ | ●●●●● | ●●○○○ |
| 07 · The Loop | Circulation, motion-implied | ●●●○○ | ●●●●○ | ●●●●● | ●●●○○ |
| 04 · The Ticket | Tactile, object-first | ●●○○○ | ●●●○○ | ●●●●● | ●●●●○ |
| 08 · The Hinge | Quiet, in-joke | ●●●○○ | ●●○○○ | ●●●●● | ●●●○○ |
| 06 · The Split | Honest, but generic | ●●●●○ | ●●○○○ | ●●●●● | ●●●○○ |