Product intent. space-calculator is a simple calculator delivered as a single page. A visitor opens the page, enters numbers and operators, and reads the computed result on the same screen. The product has no content beyond its own interaction: no accounts, no saved history, no navigation, no marketing copy. Its purpose is to make a ten-second arithmetic task feel tactile and worth looking at, without ever making the arithmetic harder to read.
Audience. The single active human role is the Calculator User — anyone who opens the page to perform basic arithmetic and read the result immediately. The design is deliberately sparse so the numbers stay legible and the interaction stays the artifact.
space-calculator is a single-page, client-side calculator. The page presents a wordmark, a large right-aligned readout, a full-width Clear bar, and a strict 4×5 keypad of hardware-like keycaps. All arithmetic is performed in the browser; there is no server-side computation, no persistence, and no identity.
Actors.
Accepted behavior. Number and operator entry, a displayed result, Clear, and the stateful operator indication, all on one page, with the visual and motion language defined by the creative direction.
Narrow exclusions. No multi-page navigation, no saved calculation history, no accounts or sign-in, no scientific functions beyond what the keypad shows, no sharing or export, no server backend.
The entire product is one anonymously reachable page. There is no application-owned identity, no session continuity requirement, and no protected state: a Calculator User needs no account, invitation, or provisioning to use the calculator, and nothing they do is bound to a durable identity. The page is public and ephemeral by design — open it, calculate, close it.
Current scope is exactly the single-page calculator described here. Anything beyond basic arithmetic on one screen (history, memory registers, scientific modes, accounts, sharing) is outside current delivery and is not implied by this document.
Not applicable — no reference directive supplies a content_source.
The single page of the product, owning the entire calculator lifecycle: entry, arithmetic, displayed result, Clear, and operator state. Publicly reachable with no identity requirement.
Information and state
clamp(44px, 9vw, 96px), a hairline 1px #2A2A31 top border, and no rounding. Shows the current entry or result, starting at 0.ready or error.#E8FF3A; all other operator faces drop to muted grey #6E6E78.Primary actions
0–9 and . to build the current number.÷, ×, −, + to select an operation; the pressed operator becomes the active (lime) operator.= to compute and display the result.#FF5C2B) to reset the readout to 0 and clear operator state.Supporting actions and behavior
199 → 200 visibly carries.#1F1F26 grid at 24px pitch.Domain entities
ready or error.Component responsibilities
7 8 9 ÷ / 4 5 6 × / 1 2 3 − / 0 . = +, with 8px gutters and 2px key radius; minimum 56px touch target at 375px.States
0, status ready, no operator active.ready.error; Clear returns the page to the initial state.0, ready, and no active operator.FR-1 — Single-page calculator delivery (explicit) As a Calculator User I should get the calculator as one simple page so that I can do arithmetic without navigating anywhere.
FR-2 — Number entry (explicit) As a Calculator User I should press digit keys and a decimal point to build a number so that I can enter the operands I want to calculate.
0–9 or ..ready.0.FR-3 — Operator selection with stateful indication (explicit) As a Calculator User I should press an operator key and see it become the active operator so that I can tell at a glance which operation is pending.
÷, ×, −, or +.=.FR-4 — Compute and display result (explicit)
As a Calculator User I should press = and see the computed result so that I get my answer immediately.
=.ready.error; Clear recovers to the initial state.FR-5 — Clear (explicit) As a Calculator User I should press the full-width Clear bar to reset the calculator so that I can start a fresh calculation.
0, status returns to ready, no operator is active.FR-6 — Tactile key and readout motion (explicit, from creative direction) As a Calculator User I should feel each key press physically and see the readout roll so that using the calculator feels like playing an instrument rather than filling a form.
prefers-reduced-motion, motion is reduced to a usable static arrangement while all values remain readable.FR-7 — Cursor trail (explicit, from creative direction) As a Calculator User I should see a thin vermilion trail follow my pointer so that the dark ground feels alive without distracting from the numbers.
Product context. A person who opens space-calculator for a short, everyday arithmetic task — a quick sum, a split bill, a unit price — and closes it seconds later. They have no account, no history, and no expectation of one.
Primary goal. Enter numbers and operators and read a correct result immediately, on one screen, without friction.
Distinct accepted responsibilities.
= to compute and read the result.Relevant inputs and decisions. Which digits to enter, which operator to apply, when to press = versus continue entering, and when to Clear.
Interactions with other participants. None — the Calculator User is the only active human participant; there is no counterparty, recipient, or provider in current scope.
Observable success. A correct result appears in the large readout, the active operator is unmistakable in lime, and the interaction feels tactile and immediate.
What makes this role distinct. The role's entire work is a single short arithmetic loop on one page; there is no persistence, no collaboration, and no identity. Its success criterion is speed and legibility of the numbers, not breadth of features.
0, the status line reads ready, and no operator is active.÷). That key face flips to solid acid lime and every other operator face drops to muted grey, so the pending operation is readable at a glance.=. The result appears in the readout with rolling digits and the status line stays ready.0, clear operator state, and return the status line to ready.=.error.0, the status line returns to ready, and no operator is active.= as in Flow A.Muse and headline. Interaction as delight — a calculator that answers your cursor. After Yugo Nakamura: the interaction itself is the artifact, so a two-row utility becomes worth screenshotting without adding a single feature.
Mode. Dark mode only.
Color tokens (exact hex by role)
#0E0E10 (near-black graphite; ~70% of the surface).#1A1A1F (~25%).#F4F1EA (warm paper-white; maximum contrast on keys).#E8FF3A (acid lime — reserved exclusively for the active operator and the equals key).#FF5C2B (hot vermilion — used only for Clear and the live cursor trail).#6E6E78 (secondary labels, keypad well, and inactive operator faces only — never a digit).#2A2A31 (display top border, keycap edges).#1F1F26 (1px dotted grid at 24px pitch).Signal colors are lime and vermilion only; no blue or indigo anywhere.
Typography. Single family: Space Grotesk throughout. Display readout at 700 with tabular numerals and -0.02em tracking, clamp(44px, 9vw, 96px). Key glyphs at 500, clamp(22px, 4.5vw, 34px). Wordmark at 500, 12px uppercase, +0.28em letterspacing. Helper/status line 13px. Body copy never exceeds 15px. No Inter, Roboto, Poppins, or system-ui.
Type scale. 1.5 modular for the display.
Shape language. Squared-off keys with a single 2px corner radius — hardware keycaps, never pills. 4×5 grid with 8px gutters. Display is a wide inset panel with a hairline 1px #2A2A31 top border and no rounding. Everything orthogonal; the only curves come from the cursor trail and the spring physics of a returning key.
Layout. Single centered column, max-width 420px on mobile and 480px on desktop, vertically centered in the viewport. Wordmark pinned top-left of the column; 13px status line pinned bottom-left. Readout occupies the top third, right-aligned; keypad occupies the lower two-thirds in a strict 4-column grid: 7 8 9 ÷ / 4 5 6 × / 1 2 3 − / 0 . = +, with a full-width Clear bar above it. At 375px the column bleeds to 16px side margins and keys shrink to a 56px minimum touch target; at 768px and 1280px the column stays narrow and centered with generous dark space around it — the emptiness is the composition.
Imagery. No photography and no illustration. The visual interest is the interface itself: the keypad grid, the rolling numerals, the cursor trail. The only decorative element permitted is the faint 1px dotted grid at 24px pitch, which the cursor trail briefly lights as it passes.
Readability constraint. Headlines, wordmarks, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit; no other element covers any part of them. Decoration and motion may be cropped or bled, but never over readable text or controls.
The instrument panel. The public entry is a dark, near-empty viewport with a single narrow column at center. At the top-left of the column, the wordmark "space calculator" sits in tiny tracked caps — a whisper against an oversized numeral. Below it, a huge right-aligned readout (up to 96px) shows 0 in warm paper-white, floating in black space at roughly eight times the size of any key glyph. Beneath the readout, a full-width vermilion Clear bar, then a 4×5 grid of graphite keycaps with hairline edges and 2px radii. Acid lime appears on exactly two keys — the active operator and equals — and a vermilion cursor trail is the only thing moving on an otherwise still screen. No headline, no subtext, no button, no gradient: this reads as an instrument panel, not a SaaS hero. The concept recomposes only accepted content, states, and controls.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
Landing Hero Motion Brief
#0E0E10 ground with the faint dotted grid; wordmark top-left in tracked caps; 0 in warm white at the top third, right-aligned; vermilion Clear bar; graphite keycaps in a strict 4-column grid; status line ready bottom-left.prefers-reduced-motion yields a usable static arrangement with all values and controls readable and operable.÷, ×, −, +), decimal entry, =, and Clear; no additional functions are implied.ready or error.
space calculator

space calculator
No comments yet. Be the first!