Design guide·The live system· this is what the running product uses today ·compare with Dial ToneAll designs

The system the product
actually runs on.

Apple's system design language with the Pay Phone brand laid over it. This was never art directed, it accumulated. That is not an insult, it is an accurate description, and it is why the product reads as trustworthy but not as anything in particular.

01

What it is

Take Apple's stock iOS appearance, keep every one of its greys, blues, greens and reds, set headings heavy, and add two brand things: true black instead of Apple's near-black, and a gold coin. That is the whole system. It is on all 25 pages of the live app.

Its strength is that nothing feels foreign. A person who uses an iPhone already knows how to read it. Its weakness is that it has no signature, no type personality, and no single point of view, so it is indistinguishable from any other competent app.

Note the difference. The four design directions are proposals. This one is not a proposal. It is what a person sees right now when they open Pay Phone.
02

Colour

Six of these are Apple's own system values, used unchanged. Two are yours.

Background#000000True black. Yours, not Apple's, which is #1C1C1E.
Gold coin#E8A61AThe brand. The only thing on screen that is unmistakably Pay Phone.
Card#1C1C1EAny raised surface.Apple, verbatim
Card 2#2C2C2EA surface on a surface.Apple, verbatim
Blue#0A84FFDefined, but used once in the entire app.Apple, verbatim
Green#30D158Money that has moved.Apple, verbatim
Red#FF453ADestructive actions.Apple, verbatim
Secondary textrgba(235,235,245,.6)Every piece of supporting copy.Apple, verbatim
Both themes
Dark is the default regardless of what the device prefers, and light applies only when someone toggles it. In light, the page becomes #F5F5F7, cards become white, and gold darkens to #9A7B1E for text.
Ghost button
03

Type

One treatment, used everywhere: San Francisco at weight 900, Black, with tracking pulled to -.045em. There is no second voice. Nothing is condensed, nothing is light, nothing is mono. This was unified on 08/02/2026: the homepage used to be 900 and every other screen 800, so the same brand line was set two different ways.

Display · h1.big

Money talks.

Weight 900, letter-spacing -.045em, scaling clamp(40px, 8vw, 84px). The gold span is the only accent the headline gets.
Section heading · h2.big

Scheduled calls

Same weight and tracking, one step down in size: clamp(28px, 4.4vw, 40px).
Eyebrow · .eyebrow
For creators
12.5px, weight 800, letter-spacing 1.6px, gold. The one label style.
Body · .sublede
A real, scheduled video call with the people you follow. Pick your minutes, pick a time, and keep the recording.
15px to 17px, line-height 1.5, secondary text colour.
04

The coin

The one piece of the system that is yours rather than Apple's. It is built in CSS, not an image, so it stays sharp at any size and picks up the page colour through its slot.

One coin, five sizes · .coin
A gradient sphere lit from the upper left, with a gold glow. The slot is 56% wide by 24% tall with 3px corners, and it is filled with the page colour rather than black, so it works in light mode without a second rule.
.coin{border-radius:50%;
  background:radial-gradient(circle at 36% 30%, #F5D889 0%, #E8A61A 48%, #B8901E 100%);
  box-shadow:0 24px 60px rgba(232,166,26,.28)}
.coin::after{width:56%;height:24%;border-radius:3px;background:var(--bg)}
In the wordmark PAYPHNE
The coin replaces the O. Never set the wordmark without it, and never draw a second version of the coin for one screen. Unified on 08/02/2026: the homepage used to carry a glossy version while every nav and footer carried a flat one.
05

Buttons

The set · .btn
Gold, the primary Blue Ghost Small Large
Radius 980px, weight 700, three sizes at .sm / .md / .lg, and .block for full width. The blue variant exists in the stylesheet but is used exactly once in the whole product, so treat gold as the only real primary.
06

Surfaces

Card · .card
Live calls

What a fan pays

To jump on while you're live.
22px radius, 26px padding, hairline border.
Stat tile · .stat
$128
Upcoming calls
2
Video calls
18px radius. Note it does not match the card's 22px.
Field · .field
14px radius, label above, 16px input text so iOS does not zoom the page when it is tapped.
Money field · .moneyfld $
The gold $ sits inside the field, in front of the number, never in the label.
Corners in use
980
999
22
20
18
16
14
12
10
9
7
5
Twelve values, all declared in the live stylesheets. There is no corner scale, which is the single clearest sign this system grew rather than got designed.
07

Components

Pill · .pill
PaidOn the list+$20
Gold wash, 9px radius. Used for a status or an amount at the end of a row.
Time chip · .tm
7:00 PM7:05 PM7:10 PM
999px radius, weight 600, quiet until selected.
Notice · .notice
Test mode. Payments are not live yet. No card was collected and no money moved.
Gold wash, 14px radius. The one way the product tells you something important.
The rest of the inventory
Also defined and in use: .acard .listrow .qrow .qcard .opt .chip .daychip .menurow .kpi .divider .fine .otp .summ .rail .steps .gatescreen, plus the whole operator console set .opside .optabs .opmain .opstat .tblwrap .cellu.
08

Where it drifts

A guide that only shows the good parts is marketing. These are real, measured, and worth fixing whichever direction you eventually pick.

Resolved 08/02/2026: two coins, two weights

The site used to carry a flat coin in every nav and footer and a glossy one in the homepage hero, and it set the brand line at weight 900 on the homepage and 800 everywhere else. Both are now single values, documented above, applied across all 28 screens.

Twelve corner radii, no scale

5, 7, 9, 10, 12, 14, 16, 18, 20, 22, 980 and 999px are all declared. The 980 and 999 are the same intention written twice. A card is 22px but a stat tile beside it is 18px, and nothing decides which.

Styles live in three places

styles.css has 255 lines, admin.css has 232, and another 76 sit inline inside index.html. .notice, .empty and the whole call screen are only in that inline block, which is why this guide has to restate a few of them by hand.

A component that only worked in one place

.pill was defined solely as .qrow .pill. Used anywhere outside a .qrow it rendered as bare text: no background, no padding, and the faintest colour in the palette. Found and fixed on 08/01/2026, and the specimens above are the repaired version.

Two values for the same gold

There are now three light-mode values for gold text across the codebase: this app uses #9A7B1E, Dial Tone uses the full brand #E8A61A by decision on 08/02/2026, and The Operator and Private Line use #8A6D14. Whichever direction wins, this collapses to one value.

09

How to use it

If you are building inside the live app today, this is what you inherit.

<link rel="stylesheet" href="/styles.css">
<link rel="stylesheet" href="/admin.css">
<!-- plus the inline <style> block already in index.html -->
Use .btn.gold for the primary action, .card for a surface, .field for input, .notice to tell someone something, and .eyebrow to label a section. When you need a corner, pick the one already used by the nearest component rather than inventing a thirteenth.
Living guide: the two stylesheets above are loaded straight from the running app, so if the product changes, this page changes with it. Measured and written 08/01/2026 across all 25 live pages. The proposed alternative is at the Dial Tone guide.