gamma-start is a simple calculator delivered as a single-page design. The product exists so that anyone who needs quick everyday arithmetic can open one page, enter numbers and operators, read the running expression and the result, and clear the calculation to start again — without leaving the page, without an account, and without navigating anywhere else.
The audience is broad and non-technical: a person who wants a key to respond instantly and a number to read perfectly. The design intent is "charming clarity" — a calculator built like a set of perfect little icons, in the spirit of Susan Kare: chunky-outlined keys on a tidy grid, a monospaced pixel display, crisp pixel accents, and no decorative flourish that gets in the way of the numbers.
The single hard constraint from the requester is that the design must be a simple single page. Everything in this document is scoped to that one page.
gamma-start is a browser-delivered, single-page calculator. There is exactly one page in the product: Calculator. It is anonymously reachable, requires no identity, and holds no durable per-user state. A visitor arrives, performs arithmetic, and leaves; nothing about the visit needs to be remembered.
Actors
Accepted behavior
The page presents a display and a key grid. The user enters digits and operators, sees the running expression and the result, and clears the calculation. That is the whole product.
Delivery and ownership
The calculator is first-party custom UI owned by the application, delivered as one page. There is no provider-owned surface, no external destination, and no headless delivery. Access is anonymous: no sign-in, no account, no session continuity is required or introduced.
Narrow exclusions
No additional pages, no navigation between destinations, no accounts or profiles, no saved history, no sharing or export, no scientific or programmer modes, and no server-side calculation service are part of the current product.
Removed from scope
The requester asked for a simple single-page design of a calculator. That is read literally: one page, one calculator, no surrounding application. The page is the product.
The page is public and anonymous. A visitor needs no identity to use it, and the product deliberately does not establish one — there is no durable actor-specific state to own, resume, or protect, so introducing sign-in would add a capability the source never asked for. The calculator's state lives in the page for the duration of the visit and is discarded when the visitor leaves or clears it.
The provisioned backend and database are infrastructure that exists in the project scaffold. They do not, by themselves, create product requirements: no calculator API, no stored calculations, and no authentication are specified. If a future requirement needs server-side behavior, it belongs in the existing shared backend rather than a new service.
Everything described here is current. No future-horizon requirements were stated by the requester.
The page contract is exact and contains one page. The page is represented once below.
Purpose and information/state
The single page of the product. It presents a calculator as a crafted object on a warm paper field and lets the Calculator User perform arithmetic in place.
State held by the page:
Primary actions
Supporting actions and content
Domain entities
These are in-page values only; none is persisted.
Component responsibilities
States
FR-1 — Open the calculator page As a Calculator User, I should open the single calculator page and immediately see a working calculator, so that I can start arithmetic without any setup.
FR-2 — Enter digits As a Calculator User, I should press digit keys to build a number, so that I can enter the operands of my calculation.
FR-3 — Enter a decimal value As a Calculator User, I should press the decimal point key to enter fractional numbers, so that I can calculate with non-integers.
FR-4 — Select an operator As a Calculator User, I should press an operator key to choose the operation, so that the calculator knows what to do with my numbers.
FR-5 — Evaluate the expression As a Calculator User, I should press the equals key to compute the result, so that I get the answer to my calculation.
FR-6 — Clear the calculation As a Calculator User, I should press AC to clear everything, so that I can start a fresh calculation.
FR-7 — Toggle sign As a Calculator User, I should press ± to change the sign of the current entry, so that I can calculate with negative numbers.
FR-8 — Apply percent As a Calculator User, I should press % to apply percent to the current entry, so that I can work with percentages.
FR-9 — Read the running expression and result As a Calculator User, I should see the running expression above and the result below in the display, so that I can follow what I have entered and what it evaluates to.
FR-10 — Press feedback on keys As a Calculator User, I should feel each key respond the instant I press it, so that the calculator feels trustworthy and immediate.
Product context. The Calculator User is anyone who needs quick everyday arithmetic — a broad, non-technical audience. They arrive at the page with a number problem in mind and no patience for setup, sign-in, or navigation. The page is the whole product to them.
Primary goal. Get an accurate result to a simple calculation without leaving the page.
Distinct accepted responsibilities. The Calculator User is the only human actor. They enter numbers and operators, read the running expression and result, and clear or correct input to start a new calculation. They are both the initiator and the sole beneficiary of every state change on the page — there is no counterparty, no handoff, and no commitment to another participant.
Relevant inputs and decisions. Which digits to enter, which operator to select, when to press equals, and when to clear. They decide when a calculation is finished and whether to continue from the result or start fresh.
Interactions with other participants. None. The Calculator User interacts only with the page itself; the frontend application responds to their presses, and no other human participant is affected by the outcome.
Observable success. The result line shows the correct answer, the expression above matches what they entered, and they never had to leave the page to get it.
Failure/recovery: if the expression cannot be evaluated (for example division by zero), the result line shows an error. The user presses AC, the page returns to the empty state, and they begin a new calculation.
Failure/recovery: AC is available from every state, including the error state, and always returns the page to the empty state.
The creative direction is authoritative for this section. The muse is Susan Kare, and the headline idea is "Charming clarity: a calculator built like a set of perfect little icons."
Colour tokens (light mode)
| Role | Hex | Use |
|---|---|---|
| Background | #F2EEE6 | Warm paper ground filling the viewport |
| Surface | #FFFDF7 | Off-white keypad and display panel surface |
| Text | #1C1B18 | Ink for all type and operator keys |
| Primary | #1C1B18 | Solid ink operator keys with paper-white glyphs |
| Accent | #E8542F | Vermilion — the equals key and the active operator |
| Result green | #2F7A4F | Pixel-green, reserved for the result line |
| Muted | #8C887D | Secondary labels and dividers |
Proportion: ~70% paper, 20% ink, 8% surface, 2% accent.
Typography
clamp(40px, 9vw, 88px) in VT323; wordmark clamp(20px, 3vw, 28px); key glyphs clamp(18px, 2.4vw, 26px); labels 12px uppercase with 0.14em tracking; body 15px/1.6.Shape language
Hard 90° corners everywhere — no border radius on keys, panel, or display. Keys are flat squares with a 2px ink border and a 3px hard offset shadow (no blur) that disappears on press. A 2px ink rule frames the whole calculator; a dashed 1px rule separates the display from the keypad. Pixel-corner notches — a single 4px square cut from two opposite corners of the panel — give the frame a hand-built icon feel.
Spacing rhythm
4px baseline. Single column, centred on a max-width 420px calculator panel with a wide paper margin around it. At 375px the panel goes edge to edge with 16px gutters and keys stay ≥48px tall; at 768px and 1280px it stays a compact object floating in generous paper space.
Imagery style
The interface is the imagery. One small hand-drawn pixel motif — a tiny 16×16 calculator glyph — sits beside the wordmark; a few 4px pixel squares act as quiet decoration in the paper margin. No photography, no illustration beyond pictograms.
Avoid
Rounded corners, pill buttons, soft blurred shadows; Bootstrap-blue or indigo accents on white; gradient blobs, glass panels, floating hover-lift cards; skeuomorphic gloss, bevels, or LCD green-on-black retro clichés; photography or character illustration; Inter, Roboto, Poppins, or system-ui type; decorative motion that delays a keypress or a result.
The first screen is the calculator itself as a crafted object — not a marketing hero.
A warm paper field (#F2EEE6) fills the viewport. A single off-white panel (#FFFDF7) with a 2px ink frame sits slightly left of centre at 1280px (centred at 375 and 768), its ink display band at the top showing a large VT323 expression and a vermilion-green result. The panel is the dominant element at roughly 420×640px, casting no soft shadow — only its hard 3px offset edge. Above it, a compact pixel wordmark; to its right in the empty paper, a vertical stack of three tiny pixel glyphs as a quiet decorative column. No headline over the fold, no blue button, no gradient.
The signature moves that make it recognisable:
This concept recomposes only accepted content, states, and controls: the display, the key grid, the wordmark, the caption, and the press feedback.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, the press state becomes a colour change only; the result line does not blink; the layout is unchanged and fully usable.NFR-1 — Single page (explicit). The product is delivered as exactly one page. No additional destinations, routes, or navigation are introduced. Rationale: the requester's hard constraint.
NFR-2 — Simplicity (explicit). The design must be a simple single-page calculator. No feature beyond entering numbers and operators, reading the expression and result, and clearing is added. Rationale: the requester's hard constraint.
NFR-3 — Anonymous access (required_inference). The page requires no identity, sign-in, or session. No durable actor-specific state exists to protect, so no authentication is introduced. Rationale: the calculator's state is ephemeral and per-visit.
NFR-4 — Immediate response (explicit, from creative direction). No motion delays a keypress or a result. Key press feedback completes in 80ms; the result blink-then-settle completes in 120ms.
NFR-5 — Legibility at every viewport (explicit, from creative direction). Readable text and controls stay whole at 375px, 768px, and 1280px: the wordmark, labels, numbers, and keys stay entirely inside the viewport and their container, wrapping or scaling with clamp(...) to fit. No other element covers any part of them.
NFR-6 — Accessible reduced motion (explicit, from creative direction). With prefers-reduced-motion, the press state becomes a colour change only and the result line does not blink; the page remains fully usable.
NFR-7 — No persistence (required_inference). The calculator holds no durable state. The provisioned database is not used for calculator data, and no domain entities or authentication are derived from its presence.
backend, database, and frontend.Presentation defaults [Default — not specified by user]: the frontend is a standard React single-page build served as static assets; no additional infrastructure (queue worker, cache, separate ingress) is needed for the accepted workflows.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!