sky-calculator is a single-page calculator. Its product intent is deliberately narrow: give one anonymous visitor a simple, immediately usable calculator on one page, where entering numbers and operations produces a correct, immediately visible result without navigating anywhere else.
The audience is the Calculator User — anyone who opens the page wanting one correct answer, quickly, with no account, no onboarding, and no chrome competing for attention. The design register is calm numeric confidence: an instrument face rather than a dashboard.
The product is defined as much by what it excludes as by what it includes. There is no multi-page navigation, no history browser, no account system, no marketing surface, and no adjacent workflow. The calculator artefact is the product.
sky-calculator is delivered as a single custom page, Calculator, owned by the application and reachable anonymously. The page contains one centred calculator artefact: a display readout above a ruled key grid, with a sparse metadata row beneath it. All accepted behavior — entering digits, choosing an operator, computing a result, clearing, and correcting — happens on that one page.
Actors
Accepted behavior in summary
Narrow exclusions
The authoritative requirement is "start simple single page design of calculator," reinforced by an exact one-page constraint. That constraint is hard: the entire product is one page, and the calculator is that page.
Delivery ownership. The calculator is first-party custom UI owned by the application. The arithmetic evaluation that produces the displayed result is a supporting system process inside the same application; it is not a separate product surface and does not require a separate service.
Access ownership. The page is anonymous. Nothing in the source requires an account, a session, or persisted identity, and no accepted journey depends on resuming state across visits. The Calculator page is therefore reachable directly, with no identity establishment step and no protected destination. Because there is no protected state, there is no anonymous-entry-versus-protected-state split to reconcile.
Current versus future. Everything in this document is current. No future horizon, roadmap item, or deferred capability was accepted by the user. The word "start" in the requirement signals a beginning point for the design, not an accepted backlog; nothing beyond the single-page calculator is committed here.
Not applicable. No reference directive in this request declares a content_source, so no factual inventory is carried into this document.
The page contract is exact and contains one page. It is reproduced here exactly once.
Purpose and access. The anonymous public entry surface and the sole working surface of the product. A visitor lands directly on it; no identity step precedes or gates it.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
SKY / CALCULATOR in 13px Archivo caps at +0.18em, with a hairline rule extending to the right edge of the grid. Frames the artefact like a catalogue plate. Non-interactive.#FBFAF6 surface, max-width 420px, 1px #121212 frame, zero radius, containing the display and the key grid.#D6371F rule running the full panel width directly beneath it as the page's single colour event.#D6371F as numeral colour and, when active, a 2px inset rule.States
prefers-reduced-motion the fade is removed and the artefact appears immediately. There is no data fetch, so no spinner or skeleton is required.0; no operator is active; the metadata row reports the default mode, precision, and empty memory.Responsive behavior
FR-1 — Single-page calculator (explicit) As a Calculator User, I should get a calculator on one single page, so that I can perform a calculation without navigating anywhere.
0.FR-2 — Simple, uncluttered presentation (explicit) As a Calculator User, I should see a simple design with nothing competing for attention, so that I can find the display and keys immediately.
FR-3 — Enter numeric operands (explicit) As a Calculator User, I should enter digits and a decimal point, so that I can build the number I want to calculate with.
FR-4 — Select an arithmetic operator (explicit) As a Calculator User, I should choose one of the four arithmetic operators, so that I can specify the operation to perform.
FR-5 — Compute and display the result (explicit) As a Calculator User, I should press equals and see the computed result, so that I get the one correct answer I came for.
FR-6 — Clear and reset (explicit) As a Calculator User, I should clear the calculator, so that I can recover from a mistaken entry and start again.
0, the expression state empties, and no operator key is marked active.FR-7 — Correct the current entry (required_inference) As a Calculator User, I should delete the last digit I typed, so that a single typo does not force me to abandon the whole entry.
0.FR-8 — Toggle sign and enter percentage (required_inference) As a Calculator User, I should negate the current value and take a percentage of it, so that the common forms of the numbers I need are reachable from the same key grid.
FR-9 — Report calculator configuration (required_inference) As a Calculator User, I should see the calculator's mode, precision, and memory state, so that I understand how the displayed result is being presented.
Product context. An anonymous visitor who arrives at sky-calculator with a single, immediate need: to perform an arithmetic calculation. They have no account, no history with the product, and no interest in exploring it. They may arrive on a phone in one hand or at a desktop between other tasks. The page is the whole product, and they will judge it in the first second.
Primary goal. Get one correct answer, immediately, with no chrome competing for attention.
Distinct accepted responsibilities. This persona is the only human actor, and their responsibilities are the complete set of interactions the product supports: entering digits and a decimal point, selecting an arithmetic operator, pressing equals to compute, clearing to reset, correcting a mistyped digit, and applying sign or percentage. They also read the metadata row to understand the calculator's configuration.
Relevant inputs and decisions. The persona supplies numeric operands and an operator, and decides when the expression is complete enough to evaluate. Their key decision is which operator applies; their key correction decision is whether to backspace a single digit or clear entirely.
Interactions with other accepted participants. The Calculator User has no human counterpart. Their only counterpart is the calculator engine, a supporting system process that evaluates the expression they have entered and returns the value they observe. The persona initiates every calculation; the engine never initiates.
Observable success. The display shows the correct computed value in the oversized tabular readout, the active operator is marked, and the metadata row truthfully reports the configuration. The persona can complete a calculation and begin another without ever leaving the page.
What makes this role distinct. There is no second role to distinguish it from. The persona's work is defined by its narrowness: every accepted responsibility is a single key press on one artefact, and every observable outcome is a change in one readout. There is no collaboration, no approval, no persistence, and no return visit to design for.
prefers-reduced-motion).0, no operator is active, and the metadata row reports the default mode, precision, and empty memory.0, or leaves the page. No navigation occurs at any point.0.0, the expression empties, and no operator is marked active — the calculator is indistinguishable from its initial state.0 or the new entry.Muse and headline. Peter Saville — one coded artefact, a lot of silence. The register is an instrument face or a Factory Records sleeve, not a SaaS dashboard: exact, a little austere, quietly confident.
Mode. Light mode only.
Colour tokens
| Role | Hex | Usage |
|---|---|---|
| Background (ground) | #F2F0EA | Paper-warm off-white covering the whole page |
| Surface | #FBFAF6 | The calculator body, framed by a 1px ink rule |
| Text / primary | #121212 | The only text and key colour; all hairlines and rules |
| Accent | #D6371F | Operator column, equals key, and the single 2px rule above the display — never a fill behind body text |
| Muted | #8A867C | Micro-labels and the secondary memory row only |
Proportion roughly 80% ground/silence, 15% ink, 5% red. Blue and indigo appear nowhere.
Typography
clamp(44px, 9vw, 88px) tabular; wordmark 13px caps; key labels 20px; micro-labels 10px caps +0.18em; body/notes 14px/1.6. Mobile result floor 44px, desktop ceiling 88px.Shape language. Hard edges only: zero border-radius on the calculator body and on every key. Keys are 1px ink-ruled rectangles on the paper surface, separated by single hairlines rather than gaps, so the pad reads as one ruled grid. One thin 2px red rule sits directly beneath the display as the only horizontal colour event.
Layout. Centred single-column composition on a 12-column grid with a wide 8-column margin at 1280px. Top-left: the tiny caps wordmark SKY / CALCULATOR with a hairline rule extending to the right edge. Centre: the calculator artefact, max-width 420px, 4:5 proportion, display block above a 4×5 ruled key grid. Below the artefact: a sparse metadata row of three small-caps blocks (MODE / PRECISION / MEMORY) aligned flush-left, like sleeve credits. At 375px the artefact fills the width minus 24px gutters, the metadata row stacks, and the key grid stays 4 columns with 56px minimum key height.
Imagery. No photography, no illustration. The "image" is the artefact itself plus one coded element: a small 4-cell colour-code strip (red, black, warm grey, paper) printed beneath the metadata row as a Saville-style colour alphabet, purely graphic and non-interactive. The numeric readout is the hero visual.
Avoid. Rounded keys, pill buttons, soft drop shadows; blue or indigo anywhere; gradient backgrounds or glass panels; icon-only keys without text labels; bouncy or scaling press animations; filled colour blocks behind body text or numerals; decorative illustration or stock photography; a centred marketing headline above the calculator.
The catalogue plate.
The first screen is a paper-warm field of near-total silence. At the top-left, a 13px Archivo caps wordmark reads SKY / CALCULATOR at +0.18em, and a hairline rule runs from it to the right edge of the grid, framing everything below like a plate in a printed catalogue.
The dominant element is the calculator artefact itself: a hard-edged #FBFAF6 panel, 420px wide, centred on the 12-column grid, ruled in 1px ink. In its upper third sits the oversized tabular result readout, flush-right, scaling from 44px on a phone to 88px on a desktop. Directly beneath it, a 2px #D6371F rule runs the full panel width — the page's single colour event.
Below the rule, the 4×5 key grid reads as one engraved instrument face: 1px ink hairlines between keys, zero radius, no gaps, every key carrying a text label. The operator column and the equals key carry the exact spot red as numeral colour, and when an operator is active it takes a red 2px inset rule rather than a fill.
Beneath the artefact, three flush-left small-caps blocks — MODE / PRECISION / MEMORY — sit with hairline rules like sleeve credits, followed by the four-cell colour-code strip in red, black, warm grey, and paper.
The composition reads like a record sleeve: one artefact, credits underneath, nothing else. The only colour on the page is the red rule plus the red operator and equals keys.
Interaction Model: Static Motion Tempo: still Hero Dimensionality: flat
Landing Hero Motion Brief
0, no operator active, metadata row and colour-code strip in place beneath it. The frame is complete before any interaction.prefers-reduced-motion, the 300ms load fade is removed and the artefact appears immediately; the 120ms key-press fade is removed and the display swaps instantly. Everything is static. All content and controls remain fully visible and usable.NFR-1 — Single-page constraint (explicit) The product must consist of exactly one page. No additional route, tab, or navigable destination may exist. Rationale: the user's exact one-page constraint.
NFR-2 — Simplicity (explicit) The design must remain simple: one artefact, a wordmark, a metadata row, and a colour-code strip, with no element competing for attention. Rationale: the user's explicit simplicity constraint.
NFR-3 — Readable text and controls at every viewport (explicit, from the creative direction)
Headlines, wordmarks, labels, numbers, and controls must 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, with no other element covering any part of them. Rationale: the direction's readability rule, which takes precedence over any cropping gesture.
NFR-4 — Reduced-motion support (explicit, from the creative direction)
Under prefers-reduced-motion, the load fade and key-press fade are removed and the page is fully static and usable. Rationale: the direction's motion specification.
NFR-5 — Immediate result visibility (required_inference) A key press must be reflected in the display without perceptible delay, so that the persona's goal of an immediately visible answer holds. Rationale: the persona's stated success condition is an immediately visible result.
NFR-6 — Anonymous access (required_inference) The Calculator page must be reachable without any identity step. Rationale: no accepted journey requires identity, and no protected state exists to bind to a participant.
NFR-7 — No persistence requirement (required_inference) No calculation state needs to survive a page reload. Rationale: no accepted capability depends on resuming prior state, and adding persistence would be an adjacent capability the source did not accept.
clamp() type scale are preserved verbatim. (Default — not specified by user)No source-specified technology was provided; the above are labeled defaults and impose no product behavior.
Constraints (binding)
Assumptions (narrow, labeled)
Explicit exclusions
#FBFAF6 hard-edged surface containing the display and the key grid.#D6371F, used only on the operator column, the equals key, and the 2px rule above the display.
Colour code

Colour code
No comments yet. Be the first!