gamma-single is a simple calculator delivered as a single page. The product intent is narrow and explicit: a visitor opens one page, enters numbers and operators, and reads the arithmetic result. The design must stay simple and must remain a single page — no additional destinations, accounts, or adjacent tooling are part of the current product.
The audience is anyone who needs quick arithmetic in a browser: a public utility tool, calm and legible, that reads like a public instrument rather than a toy. The single page is the anonymous public entry; no sign-in, profile, or saved history is required to use it.
This document is the System Requirements Document for gamma-single, written for the requester Diya Trivedi.
gamma-single is a browser-based calculator consisting of exactly one page, Calculator. The page presents a display panel that shows the current entry and result, and a keypad of digit and operator keys. A visitor enters a calculation and reads the result on the same page. There is no navigation beyond this page, no persistence of calculations, and no user account.
The current delivery is a React frontend served to the browser, backed by a shared FastAPI backend process and a MariaDB database provisioned as part of the project scaffold. The calculator's arithmetic interaction is a client-side, single-page experience; the backend and database are provisioned infrastructure that do not, by themselves, introduce domain entities, authentication, or stored calculation history. No accepted requirement calls for server-side calculation storage, so none is added.
Actors:
Removed from scope
The product is a single, self-contained calculator page. Its entire accepted behavior lives on that one page: a display, digit keys, operator keys, an equals key, and a clear/reset control sufficient to begin a new calculation. The page is anonymously reachable — a visitor needs no identity, session, or account to use it, and no durable per-user state is created or resumed.
The calculator's arithmetic is performed and shown within the page interaction. The provisioned FastAPI backend and MariaDB database remain available as shared infrastructure for the project but are not invoked by the accepted calculator workflow; they do not create product requirements, stored history, or authentication. There is no future-horizon feature set defined by the user beyond the current single-page calculator.
The single page of the product. It is the anonymous public entry and the only destination.
0 when the page loads or after clear.0–9 to append digits to the current entry.+, −, ×, ÷ to select an operation.= to evaluate the pending operation and show the result.C (clear) to reset the calculator to its initial state.. (decimal point) to begin a fractional entry.± (sign toggle) to negate the current entry.% (percent) to convert the current entry to a percentage.0; no pending operator.=, the display shows the computed result; the user may continue with a new operator or clear.C recovers to the initial state.C at any time returns the calculator to the initial state; entering a new digit after an error begins a fresh entry.FR-1 — Open the calculator page (explicit) As a Calculator User I should open the single Calculator page so that I can perform arithmetic.
0 and the keypad visible.FR-2 — Enter digits (explicit)
As a Calculator User I should press digit keys 0–9 so that I can build the number I want to calculate with.
C clears the entry back to 0.FR-3 — Enter a decimal point (explicit)
As a Calculator User I should press . so that I can enter a fractional number.
FR-4 — Select an operator (explicit)
As a Calculator User I should press +, −, ×, or ÷ so that I can choose the operation to apply.
FR-5 — Evaluate with equals (explicit)
As a Calculator User I should press = so that I can see the result of the pending operation.
C recovers.FR-6 — Clear the calculator (explicit)
As a Calculator User I should press C so that I can reset the calculator and start over.
0 and all pending state is discarded.FR-7 — Toggle sign (explicit)
As a Calculator User I should press ± so that I can negate the current entry.
FR-8 — Percent (explicit)
As a Calculator User I should press % so that I can convert the current entry to a percentage.
FR-9 — Single-page constraint (explicit) As a Calculator User I should experience the entire calculator on one page so that I never need to navigate elsewhere.
C.0 and the keypad visible (FR-1).. (FR-3).+, −, ×, ÷); the operator is recorded as pending and the first operand is stored (FR-4).=; the display shows the computed result (FR-5).C to reset to 0 (FR-6).=.C; the display returns to 0 and all pending state is discarded (FR-6).± to negate the entry; the display shows the negated value (FR-7).% to convert the entry to a percentage; the display shows the entry divided by 100 (FR-8).= to evaluate (FR-5).The creative direction is authoritative for this section. The muse is Erik Spiekermann; the headline concept is "Typographic infrastructure for a calculator" — a public instrument, calm and legible.
Colour tokens (light mode)
#F2EEE6#FFFFFF#16171A#C8342B#E8B21C#6E6A62Typography
clamp(56px, 14vw, 104px).Shape language
Layout
Imagery
Avoid
The calculator itself is the hero. On the warm paper ground #F2EEE6, a large white panel with a hard 1px border holds the result in ink #16171A at up to 104px, right-aligned on a ruled baseline. Below it, the keypad sits with 1px ink borders and 6px radii; the operator keys in red #C8342B form one visible vertical column that reads like a transit route line, and the equals key in yellow #E8B21C anchors the column. At 768px and up, a ruled legend at right lists each key and its function in small caps in muted #6E6A62. The composition is flat, composed, and typographic — no gradients, no glass, no soft shadows.
Interaction Model: Static Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
#F2EEE6, white display panel with 1px ink border showing 0 at large ink size, keypad below with the red operator column visible, ruled legend at right on wide viewports.clamp(...)) to fit; no element covers readable text or controls.prefers-reduced-motion, a usable static arrangement is provided.backend, database, frontend).+, −, ×, ÷) with decimal input, sign toggle, and percent, as implied by a "simple calculator."=.#F2EEE6.
A single page for quick arithmetic: enter numbers and operators, press equals, read the result.

A single page for quick arithmetic: enter numbers and operators, press equals, read the result.
No comments yet. Be the first!