moon-calculator is a simple calculator delivered as a single page design. A person opens the page, enters numbers and arithmetic operators, reads the current expression and the computed result, and clears the calculation to start over. There is no account, no navigation, no marketing surface, and no second page: the calculator slab itself is the entire product.
The audience is anyone who needs quick arithmetic in a browser — an everyday utility used in a calm, private register. The design intent is "emptiness as content": one instrument glowing quietly on a paper-white field with room to breathe, in the spirit of Kenya Hara's super-normal object design. The page is a still-life, not a control panel.
moon-calculator is a single-page, anonymous, client-side calculator. The page presents one calculator slab containing:
All calculation happens in the browser. There is no server-side computation, no persistence, no identity, and no cross-session state. The single accepted human actor is the Calculator User, who is anonymous and unauthenticated by design.
Current delivery is one custom page, Calculator, which is the anonymous public entry and the only destination. It hosts digit and operator input, expression evaluation with displayed result, and clearing to start over, all within the exact one-page constraint.
Removed from scope
The product is a browser-delivered, single-page calculator with no backend dependency for its core behavior. The page is publicly reachable with no access requirement: a Calculator User arrives anonymously and immediately has the full instrument available. There is no first-use identity establishment, no returning verification, and no protected state, because nothing the user does is durable, private, or bound to a participant.
The current horizon contains exactly the accepted behavior: entering numbers and arithmetic operators, viewing the current expression and computed result, and clearing to start over. Nothing beyond that is current. There is no future roadmap committed in the source; any extension (history, memory keys, scientific functions) would be a new requirement, not an implied one.
The single page of the product. It is the anonymous public entry and the only destination; it owns the complete calculator lifecycle — input, evaluation, display, and clearing.
Information and state
Primary actions
Supporting actions and elements
Domain entities
Component responsibilities
States
FR-1 — Single-page calculator delivery (explicit) As a Calculator User, I should get the entire calculator on one single page, so that I can do arithmetic without navigating anywhere.
FR-2 — Enter numbers and arithmetic operators (explicit) As a Calculator User, I should enter numbers and arithmetic operators, so that I can build the calculation I want to compute.
FR-3 — View the current expression and computed result (explicit) As a Calculator User, I should view the current expression and the computed result on the page, so that I can read what I entered and what it evaluates to.
FR-4 — Clear the calculation to start over (explicit) As a Calculator User, I should clear the calculation, so that I can start over from a clean state.
Product context. A person who needs quick everyday arithmetic in a browser. They arrive at the page anonymously, with no account and no prior state, and expect the instrument to be immediately usable. The register is calm and private: no brand, no marketing, no noise.
Primary goal. Get an accurate arithmetic result from one self-contained page, quickly and without distraction.
Distinct accepted responsibilities.
Relevant inputs and decisions. Which digits and operators to enter; when to press equals; whether the displayed result is correct or whether to clear and re-enter.
Interactions with other participants. None. The Calculator User is the only accepted human actor; there is no counterparty, recipient, or beneficiary whose state changes. All work is local to the user's browser session.
Observable success. The display shows the correct computed result for the entered expression, and the user can clear to start a new calculation at any time.
The creative direction is authoritative for this section. Muse: Kenya Hara; headline idea: "Emptiness as content — a calculator that whispers."
Palette (light mode)
| Role | Hex | Usage |
|---|---|---|
| Background | #F7F5F0 | Paper-white field filling the viewport — the dominant material (~80%) |
| Surface | #FBF9F5 | The calculator slab, slightly lighter than the field |
| Text / primary | #26241F | Charcoal ink for digits, operators, and all text (~15%) |
| Accent | #B75A34 | Terracotta, used exactly once — the 2px underline beneath the active operator key (~1%) |
| Muted | #8C867B | Secondary labels (C, ±, %) and the helper line |
| Hairline | #DCD6CA | The 1px slab border and the single rule under the display (~4%) |
Typography
tabular-nums so digits align like an odometer.clamp(40px, 6vw, 72px); result 28px mobile / 44px desktop; key labels 18px mobile / 20px desktop; eyebrow 11px mobile / 12px desktop with 0.16em tracking.Shape language
Layout
Imagery
Accessibility of text and controls
The slab as still-life. The public entry is a full-viewport paper-white field (#F7F5F0) with the calculator slab floating in the optical centre at 420px wide — no headline above it, no hero image, no CTA. The slab is the hero: a 1px-bordered off-white rectangle whose top third is an empty display area holding a 72px light-weight tabular number, with a 1px hairline rule under it and a 4×5 key grid beneath. In the top-left of the slab, an 11px tracked eyebrow "moon · calculator" anchors the composition asymmetrically. The single terracotta accent sits as a 2px underline beneath the current operator key. Roughly 60% of the desktop viewport is empty paper — the negative space is the design.
Signature moves
#B75A34) used exactly once — a 2px underline beneath the active operator key.Avoid: drop shadows, bevels, glossy key gradients; header navigation, footer links, or marketing copy; more than one accent colour; bold weights, tight tracking, or all-caps button labels; gradient blobs, glassmorphism, or card grids; decorative animation, floating elements, or looping motion; photography or illustration; a centred headline + subtext + button above the calculator.
Interaction Model: Static (direction) Motion Tempo: still Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, the result cross-fade becomes an instant swap; the key-press flash and underline slide remain as instantaneous state changes. The static arrangement is fully usable.prefers-reduced-motion replaces the result cross-fade with an instant swap.#B75A34 appears exactly once on the page; no bold weights; no shadows, gradients, or decorative motion.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!