gilded-calculator is a simple, single-page calculator design. Its product intent is narrow and complete: present one page on which a person can perform quick arithmetic and read the resulting value. The page is the product — there is no navigation, no account, no secondary surface, and no workflow beyond entering numbers and operations and seeing the result.
The audience is anyone who needs quick arithmetic: a single-purpose everyday utility, opened, used, and closed. The design register is calm confidence and trust — the numbers must feel exact and the surface considered. "Gilded" is honoured as a material accent (a warm gold reserved for operators and the equals key), not as ornament.
gilded-calculator is delivered as a single custom page, Calculator, which is the anonymous public entry and owns the entire arithmetic interaction and result display. There is exactly one active human role, Calculator User, who opens the page, enters numbers and operations, and reads the resulting value.
Current accepted behavior is limited to:
There is no authentication, no persistence of calculations across sessions, no history beyond the on-page expression line, no sharing, no export, and no additional pages. The calculator is a client-side, single-page experience.
The delivery boundary is a single first-party page with no identity requirement. The Calculator page is anonymously reachable and fully usable without any account, sign-in, or setup. All arithmetic interaction and result display live on that one page; there is no protected state, no durable actor-specific state, and therefore no application-owned identity is required or introduced.
The current horizon is exactly this one page and its arithmetic behavior. Anything beyond a simple single-page calculator — history persistence, scientific functions, unit conversion, accounts, sharing — is outside the current delivery boundary and is not part of this document's current requirements.
The single page of the product. It is the anonymous public entry and owns the arithmetic interaction and result display.
0, expression line empty, no active operator.FR-1 — Single-page calculator presentation (explicit) As a Calculator User, I should see the calculator presented as exactly one page, so that I can use it without navigating anywhere else.
FR-2 — Simple calculator design (explicit) As a Calculator User, I should use a simple calculator design, so that quick arithmetic is straightforward and uncluttered.
FR-3 — Enter digits and decimal point (required_inference) As a Calculator User, I should enter digits and a decimal point, so that I can build the numbers I want to calculate.
FR-4 — Select an operator (required_inference) As a Calculator User, I should select one of the four operators (+, −, ×, ÷), so that I can specify the operation to perform.
FR-5 — Evaluate the expression (required_inference) As a Calculator User, I should press the equals key to evaluate the expression, so that I can read the resulting value.
FR-6 — Clear the current entry (required_inference) As a Calculator User, I should clear the current entry or expression, so that I can correct a mistake or start a new calculation.
0, empty expression line, no active operator).Product context. The Calculator User is anyone who needs quick arithmetic — a single-purpose everyday utility opened, used, and closed. They arrive at the Calculator page directly, with no account, no setup, and no prior state to resume.
Primary goal. Perform a quick calculation and read the resulting value with confidence that the numbers are exact.
Distinct accepted responsibilities.
Relevant inputs or decisions. Which digits and operators to enter, when to evaluate, and when to clear. The user decides the expression and reads the result; there is no other participant in the calculation.
Interactions with other accepted participants. None. The Calculator User is the only active human role; the calculator itself is the system that computes and displays the result.
Observable success. The result value appears in the readout, right-aligned and legible, and the expression line reflects what was entered. The user can clear and begin again at any time.
0, empty expression line, no active operator.Failure/recovery. If the expression is invalid (for example, division by zero), the display well shows an error indication instead of a misleading number. The user presses the clear control to reset to the initial state and begins again.
0, empty expression line, no active operator.Muse and headline. Jony Ive — Quiet precision, gilded: a calculator as a lit object.
Mode. Dark mode only.
Colour tokens (exact hex by role).
#141416#1E1E21#F2F0EC#C9A227#E8C766#8A8A8F#2E2E33Gold is under 10% of the surface — it is the accent, never the ground. Blue, indigo, and violet are forbidden anywhere in the palette.
Typography.
clamp(44px, 9vw, 92px).clamp(28px, 4.4vw, 52px) at weight 300.Shape language. Soft continuous curves only where a hand would touch: keys at 14px radius, the calculator slab at 28px, the display well inset with a 20px radius. Hairline 1px borders in #2E2E33 instead of shadows; one very soft ambient shadow under the slab (0 40px 80px rgba(0,0,0,0.55)) to make it read as a lit object on a dark table. No gradients on controls, no blobs.
Layout. Single column, centred, maximum 420px for the calculator slab on mobile and 460px on desktop, with generous dark margin around it so the object floats. Above the slab: a small left-aligned wordmark "GILDED" in letterspaced caps and a one-line descriptor. Inside the slab: display well at top (right-aligned result, muted expression line beneath), then a 4-column key grid with 8px gutters. Desktop adds a thin vertical hairline rule and a small "MEMORY / CLEAR" label row above the grid; nothing else on the page.
Imagery. No photography or illustration. The interface is the imagery: the lit slab, the engraved numerals, hairline rules, and a faint 1px top-edge highlight on the calculator body that reads as a machined chamfer catching light.
Readable text and controls. Headlines, wordmarks, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example, font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them.
The first screen is a dark graphite field (#141416) with nothing on it but one softly lit calculator slab, vertically centred and slightly above optical centre. The slab is the dominant element, roughly 420–460px wide, floating on a 0 40px 80px rgba(0,0,0,0.55) shadow with a 1px #2E2E33 edge and a single 1px warm highlight along its top chamfer — the calculator is photographed, not drawn.
Inside the slab, the result readout is oversized (clamp(44px, 9vw, 92px)), right-aligned in off-white #F2F0EC with tabular numerals and -0.04em tracking, sitting in an inset display well above a muted expression line. The operator column is the only gold on screen: the four operator keys and the equals key carry #C9A227 fill or hairline while every digit key stays graphite — colour as function, not decoration.
No headline sits over the object. A small letterspaced "GILDED" wordmark and a muted descriptor sit above the slab, left-aligned to its edge, so the composition reads as a product still life, not a marketing hero. Hairline 1px #2E2E33 rules replace all card shadows and dividers, with a small letterspaced "MEMORY / CLEAR" label row that aligns to the key grid.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d
Landing Hero Motion Brief
cubic-bezier(0.22, 0.61, 0.36, 1), 240–320ms; 1px key depression with brief background lighten; 180ms result crossfade; active operator key holds a gold fill with a 1px gold hairline. No bounce, no particles, no parallax.0 with an empty expression line, and the operator column in gold.prefers-reduced-motion, the slab appears in place without the fade-up, key presses show their state change without the 1px depression animation, and the result updates without the crossfade. The layout and all readable text and controls remain whole and usable.NFR-1 — Single-page constraint (explicit) The product must be presented as exactly one page. No additional pages, routes, or navigation surfaces are part of the current delivery.
NFR-2 — Simplicity (explicit) The design must be simple and contained in a single page; nothing decorative competes with the digits.
NFR-3 — Readable text and controls at all viewports (explicit) Headlines, wordmarks, labels, numbers, and controls must stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no other element covering any part of them.
NFR-4 — Palette and typography fidelity (explicit) The specified palette, fonts, surfaces, tone, and layout must be preserved. Blue, indigo, and violet are forbidden anywhere in the palette.
NFR-5 — Reduced motion (explicit)
With prefers-reduced-motion, a usable static arrangement must be provided; motion is decorative and must not be required to read or operate the calculator.
NFR-6 — Client-side arithmetic (required_inference) Arithmetic evaluation and result display occur on the page itself; no server round-trip is required for a calculation, so the calculator remains responsive and usable without network dependency after load.

GILDED
A quiet calculator for quick arithmetic.

GILDED
A quiet calculator for quick arithmetic.
No comments yet. Be the first!