cosmic-start is a simple, single-page calculator. The product intent, taken directly from the authoritative requirement thread, is to deliver one page on which a person can perform basic arithmetic: enter numbers, choose an operation, and read the result. The project is explicitly constrained to be a single page and to remain simple.
The audience is a general consumer — students, families, anyone who needs to add up a bill or split a dinner. The emotional register is deliberately warm and approachable: maths anxiety is real, and a calculator that feels friendly, tactile, and slightly funny turns a dry utility into something a person does not mind opening. This is a consumer utility, not enterprise software, so warmth and playfulness are assets rather than liabilities.
cosmic-start is a client-side, single-page web application. It has exactly one page — Calculator — which is simultaneously the public entry surface and the entire working surface of the product. There is no navigation, no secondary route, no settings panel, and no history drawer.
The single active human actor is the Calculator User, who opens the page, enters operands and an operation, reads the displayed result, and can clear the current entry to begin a new calculation. The successful outcome is a correct result shown on the same page.
The calculator is a self-contained arithmetic tool. All computation happens in the page itself; there is no server-side arithmetic service, no persistence of calculations, and no account or identity requirement. The page is publicly reachable with no sign-in.
Delivery. The product is delivered as a single first-party web page. The page is the public entry point and the complete product surface at once — a visitor lands on it and immediately has the calculator in front of them. There is no separate landing page, no marketing surface, and no gated area.
Access ownership. Access to the Calculator page requires no identity. The accepted behavior — entering operands, choosing an operation, reading a result, clearing — is ephemeral and stateless: nothing about a calculation needs to be privately owned, resumed, or bound to a particular person. No account, sign-in, or session continuity is introduced, and no account-management capability exists.
Current vs. future boundary. Everything described in this document is current. There is no accepted future horizon: no additional pages, no history, no memory of past calculations, no settings, and no sharing. The single-page and simplicity constraints are binding, and the creative direction reinforces them by explicitly excluding extra pages, settings panels, and history drawers.
Exclusions. The product does not include: multiple pages or routes; user accounts or authentication; saved or recalled calculation history; unit conversion, scientific functions, graphing, or programming modes; currency or tax logic; sharing or export of results; dark mode; and any server-side persistence.
Not applicable. No reference directive in the supplied material declares a content_source, so no source content inventory is produced.
The page inventory is the single supplied page from the versioned page contract.
The one and only page of cosmic-start. It is the public entry surface and the complete working surface: a visitor arrives and the calculator is immediately usable. Access requires no identity.
Information and state
clamp(48px, 14vw, 96px). This is the largest element on the page; the number the user cares about is the loudest thing they see.Primary actions
Supporting actions
Domain entities
Component responsibilities
clamp(56px, 12vw, 128px), left-aligned, wrapping to three lines on mobile and two on desktop, with a one-line DM Sans subtitle beneath it.0 6px 0 rgba(31,26,23,0.10) shadow that compresses on press.States
Each requirement is a distinct story point with its provenance and observable acceptance.
FR-1 — Open the calculator As a Calculator User, I should be able to open the cosmic-start page and immediately see a working calculator, so that I can start doing arithmetic without any setup.
FR-2 — Enter an operand As a Calculator User, I should be able to enter a number using the digit keys, so that I have a value to operate on.
FR-3 — Enter a fractional operand As a Calculator User, I should be able to enter a decimal point, so that I can calculate with non-whole numbers.
FR-4 — Choose an operation As a Calculator User, I should be able to choose addition, subtraction, multiplication, or division, so that I can tell the calculator what to do with my numbers.
FR-5 — Compute and display the result As a Calculator User, I should be able to press equals and see the result, so that I get the answer I came for.
FR-6 — Clear the current entry As a Calculator User, I should be able to press the clear key to reset, so that I can start a fresh calculation without reloading the page.
FR-7 — Correct a mistyped operand As a Calculator User, I should be able to remove the last digit I typed, so that a small mistake does not force me to start over.
FR-8 — Remain a single page As a Calculator User, I should experience the whole product on one page, so that the tool stays simple and I never have to navigate.
Product context. A general consumer — a student checking homework, a family member adding up a bill, a friend splitting a dinner. They arrive at cosmic-start with a small, concrete arithmetic task and no patience for setup. They are not a power user of calculation software, and maths can carry a little anxiety for them.
Primary goal. Get a correct answer to a simple arithmetic problem as quickly and painlessly as possible, on a page that feels friendly rather than clinical.
Distinct accepted responsibilities. The Calculator User is the sole active human actor and performs every human-facing step of the product: entering operands, choosing an operation, committing the calculation, reading the result, correcting a mistyped digit, and clearing to start again. There is no other participant — no approver, no recipient, no counterparty — because a calculation is a private, ephemeral act whose only outcome is a number shown back to the person who asked for it.
Relevant inputs and decisions. The user decides which numbers to enter, which of the four operations to apply, when to commit with equals, and whether to correct or clear. Their inputs are keypresses on the digit, decimal, operation, equals, backspace, and clear controls.
Interactions with other accepted participants. None. The Calculator User is the only accepted human participant; the calculator itself is a system process, not a persona.
Observable success. A correct result appears in the large Nunito 900 display on the same page, with the completed expression visible above it in muted grey. The user can then clear and start a new calculation, or continue operating on the result.
Constraints carried from source. The user's experience is bounded by the single-page and simplicity constraints: everything they need is on one page, and nothing else is offered.
The creative direction is authoritative for this section. The muse is Pablo Stanley, and the headline idea is "Warm, human arithmetic: a calculator with a face and a sense of humour."
| Role | Hex | Usage |
|---|---|---|
| Background | #FFF6E9 | Warm cream ground covering the whole page |
| Surface | #FFFFFF | The calculator slab, pure white with a soft offset shadow |
| Text | #1F1A17 | Numerals and headings (ink) |
| Primary | #FF6B4A | Coral — the four operation keys and the equals key; the loudest element on screen |
| Accent | #2BB673 | Green — the clear key and success state |
| Muted | #8A7F76 | Warm grey — labels, secondary copy, and the expression history line |
No blue anywhere. No gradients behind text. No dark mode or neon-on-black treatments — the warmth lives on cream.
clamp); h1 32→56px; h2 24→32px; body 17→18px; key labels 22→26px; micro-labels 13px uppercase with 0.08em tracking.Big radii everywhere: calculator shell at 32px, individual keys at 20px (squircle-ish), pills for the mode/backspace row. Soft offset shadows — 0 6px 0 rgba(31,26,23,0.10) — rather than blurry drop shadows, so keys feel like physical toy buttons. Sticker-shaped accents (a rounded blob behind the headline, a small hand-drawn squiggle under the result) sit behind content, never over it.
Single centred column, max-width 520px for the calculator, vertically centred on desktop and top-aligned with 24px gutters on mobile. Above the calculator: an oversized friendly headline and a one-line subtitle. Inside: a wide display panel (expression line in muted grey above, result in huge Nunito 900 below), then a 4×5 key grid with generous 12px gaps. Below: a tiny "made with care" footer. Nothing else on the page — the calculator is the page.
One modular vector character — a small round-headed figure with a pencil behind its ear — peeking out from behind the top-right corner of the calculator shell, half-cropped by the shell edge. A hand-drawn squiggle and a couple of sticker dots (coral, green, sunny yellow) as accents. No photography, no gradients, no 3D renders.
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. No other element covers any part of them. Imagery and decoration may be cropped, bled off an edge, rotated, or overlapped exactly as the direction asks, as long as they cover no readable text or control.
The public entry is a warm cream field with a single oversized friendly headline — "Numbers, but nice about it." — set left-aligned in Nunito 900 at clamp(56px, 12vw, 128px), wrapping to three lines on mobile and two on desktop. Beneath it sits a smaller DM Sans subtitle.
The calculator itself is a white rounded slab, slightly rotated −1.5deg on desktop so it feels placed rather than templated, with a soft offset shadow and a coral equals key that is visibly the loudest object on screen. A small vector character peeks from behind the top-right corner of the slab, half-cropped by the shell edge.
There is no centred headline-plus-blue-button composition anywhere. The signature moves are:
0 6px 0 shadow that compresses to 0 1px 0 on press with a spring-back cubic-bezier(0.34, 1.56, 0.64, 1) — the press is felt, not just seen.clamp(48px, 14vw, 96px) below, so the number you care about is the largest thing on the page.Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
cubic-bezier(0.34, 1.56, 0.64, 1), and when the result changes the number does a quick 120ms scale-in — so the page's motion is always a felt response to the user's own action, never decoration running on its own.prefers-reduced-motion, all spring, scale-in, pulse, blink, and wave animations are suppressed. The page renders as a fully usable static arrangement: the headline, subtitle, slab, display, and key grid are all present and every control remains operable, with press feedback conveyed by the shadow compression alone.No looping animation, no parallax, and no decoration that runs on its own.
NFR-1 — Single-page constraint (explicit). The product must be exactly one page. No additional routes, pages, or navigable destinations may be introduced.
NFR-2 — Simplicity constraint (explicit). The product must remain simple. No settings panels, history drawers, or extra feature surfaces may be added to the page.
NFR-3 — No identity requirement (required_inference). The Calculator page requires no account, sign-in, or session continuity. Calculations are ephemeral and are not persisted or bound to any person.
NFR-4 — Responsive readability (creative direction). Headlines, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit. No element covers any readable text or control.
NFR-5 — Reduced motion (creative direction). With prefers-reduced-motion, the page provides a usable static arrangement with all controls operable and no self-running animation.
NFR-6 — Palette and typography fidelity (creative direction). The specified palette (cream #FFF6E9, white surface, ink #1F1A17, coral #FF6B4A, green #2BB673, muted #8A7F76) and the specified typefaces (Nunito for headings and display numerals, DM Sans for body) are used throughout. No blue or indigo primary, and none of Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, or system-ui for headings or body.
NFR-7 — Client-side computation (required_inference). Arithmetic is evaluated in the page itself; no server round-trip is required for a calculation, so results appear immediately.
clamp() display sizes. No CSS framework that would impose a template look.Assumptions
Constraints

A small, friendly calculator for bills, tips and splitting dinner — no maths anxiety required.
Result 0.

A small, friendly calculator for bills, tips and splitting dinner — no maths anxiety required.
Result 0.
No comments yet. Be the first!