meta-simple is a single-page arithmetic calculator delivered in the browser. The product intent, taken directly from the authoritative user requirement thread, is to build a simple single-page design of the calculator: one page where a person enters numbers and operators, reads the computed result, and clears the calculation to begin a new one.
The audience is anyone who needs to do quick math in a browser — students, shoppers, engineers, and general users. The product is deliberately minimal: the interface is the product, and no capability beyond arithmetic entry, computation, display, and clearing is in scope.
meta-simple is a client-rendered single-page application. It presents exactly one page — Calculator — which is also the anonymous public entry surface. There is no account, no sign-in, no persistence of calculations, and no server-side computation required for the accepted behavior.
Actors
Accepted behavior
Ownership
Narrow exclusions
The user asked for a simple single-page design of the calculator. That is a hard, explicit constraint: the entire product is one page, and it must stay simple. The page is anonymously reachable — there is no identity, no login, and no protected state, because nothing in the accepted behavior requires a durable, actor-bound relationship, commitment, entitlement, or value transfer. A calculator session is ephemeral by nature: the user opens the page, computes, clears, and leaves.
Everything the user does happens on the Calculator page. Computation is performed in the browser; no backend service is required to satisfy the accepted requirements. The delivery boundary is therefore a single static front-end page with client-side arithmetic evaluation.
Nothing in this document extends the product into future horizons. There is no roadmap section with committed future work, because the user stated no future requirements.
The single page of the product, and the anonymous public entry surface. It presents the calculator instrument and nothing else.
Information and state
MEMORY 0, OPERATOR +, PRECISION 10.META·SIMPLE, uppercase, tracked, set top-left in the page margin.Primary actions
Supporting actions
Domain entities
Component responsibilities
:active and instant mechanical feedback.States
0 in the display, no active operator, and MEMORY 0 · OPERATOR + · PRECISION 10 in the data row.FR-1 — Enter digits and operators As a Calculator User, I should enter numbers and operators on the calculator so that I can build the arithmetic expression I intend to compute.
explicitFR-2 — See the computed result As a Calculator User, I should see the computed result of my expression so that I know the answer to the arithmetic I intended.
explicitFR-3 — Clear the calculation As a Calculator User, I should clear the calculation so that I can begin a new one.
explicit0, the pending operator clears, and the data row returns to its initial values.FR-4 — Read the instrument state As a Calculator User, I should read the current operator, memory, and precision values so that I can trust what the instrument is doing.
required_inference (the ruled data row is part of the accepted creative direction's signature moves and reflects the calculator's own state)MEMORY, OPERATOR, PRECISION).FR-5 — Negate and percent entry As a Calculator User, I should negate the current entry or convert it to a percentage so that I can handle signed and percentage arithmetic.
required_inference (indispensable supporting entry mechanics for the accepted keypad; no separate user goal is introduced)0.Product context. The Calculator User opens meta-simple in a browser because they need a quick arithmetic answer. They are not looking for a workspace, an account, or a saved history — they want a precise instrument that responds instantly and gets out of the way. The page is anonymous and ephemeral: they arrive, compute, and leave.
Primary goal. To enter an arithmetic expression and read a correct result, then clear the instrument to begin a new calculation.
Distinct accepted responsibilities.
MEMORY, OPERATOR, PRECISION) to confirm the instrument's state.Relevant inputs or decisions. Which operator to apply, when to commit with equals, and when to abandon the current calculation with clear. The user decides when an expression is complete.
Interactions with other accepted participants. None. The Calculator User is the only active human participant; the browser runtime evaluates and renders, but no other persona acts on or awaits the user's work.
Observable success. The displayed result matches the arithmetic the user intended, and the instrument returns cleanly to 0 when cleared.
0, no operator is active, and the ruled data row reads MEMORY 0 · OPERATOR + · PRECISION 10.+). The operator key takes the active-operator state (orange fill), and the ruled data row's OPERATOR value updates.0, the pending operator clears, and the ruled data row returns to MEMORY 0 · OPERATOR + · PRECISION 10.0 and the instrument is ready.The creative direction is authoritative for this section: Less, but better — a calculator as Braun instrument, muse Dieter Rams. The emotional register is functional trust — honest, precise, instantly legible, like a well-made Braun appliance.
Palette (light mode)
| Role | Hex | Usage |
|---|---|---|
| Background | #F2F0ED | Warm off-white ground |
| Surface | #FFFFFF | Pure-white key surfaces |
| Text | #1A1A1A | Ink black for type and primary key faces |
| Primary | #1A1A1A | Ink black for primary key faces |
| Accent | #E8590C | Braun orange — equals key and active-operator indicator only |
| Muted | #8C8880 | Secondary labels and display ghost text |
Proportion: 70% off-white ground, 20% black/white keys, 10% orange signal.
Typography
clamp(48px, 10vw, 96px), key labels 22px, section label 11px uppercase tracked +0.12em, body 15px/1.5.Shape language
Layout
META·SIMPLE sits top-left in the margin; a single line of functional copy sits under the calculator.Imagery
The public entry is the calculator itself, treated as a precision object.
A composed, near-symmetrical hero: the calculator slab is the dominant element, occupying the centre of the viewport at a generous scale (max-width 420px, with the display readout inside scaling to fill its width). Above it, the wordmark META·SIMPLE in 11px uppercase tracked +0.12em sits top-left in the page margin. A single line of body copy — "A simple calculator. Nothing more, nothing less." — sits directly beneath the slab, flush-left, in muted grey. The background is the warm off-white ground with no gradient, no blob, no image; the drama is the precision of the object and the scale of the numerals.
Signature moves
MEMORY 0 · OPERATOR + · PRECISION 10) that borrows the label/value alignment of a technical instrument panel.META·SIMPLE set in the page margin rather than centred — the page reads as a designed object, not a web page.Interaction Model: Static Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
:active with no easing curve beyond 80ms linear. The display value updates with a single 120ms opacity crossfade — no count-up animation, no bounce. Operator-active state is a colour swap (orange fill), not a scale.0, no operator active, the ruled data row reading MEMORY 0 · OPERATOR + · PRECISION 10, the wordmark META·SIMPLE top-left in the margin, and the functional copy flush-left beneath the slab.prefers-reduced-motion removes the display crossfade entirely; the value updates instantly. The 1px key depression remains as direct state feedback.No 3D/WebGL scene is required or requested; the hero is flat and composed.
NFR-1 — Single page (explicit). The product must be a single page. No routing, no additional destinations, no navigation between views.
NFR-2 — Simplicity (explicit). The design must be simple. No capability beyond arithmetic entry, computation, display, and clearing is in scope.
NFR-3 — Anonymous access (explicit via planning scope). The Calculator page is anonymously reachable. No account, sign-in, or identity establishment is required or provided.
NFR-4 — Instant feedback (creative direction). Key presses must produce feedback within 80ms linear; display updates must complete within 120ms. No motion beyond instant 80–120ms state feedback.
NFR-5 — Reduced motion (creative direction). The interface must respect prefers-reduced-motion by removing the display crossfade.
NFR-6 — Readable text and controls (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(...)) to fit. No other element may cover any part of them.
NFR-7 — No blue/indigo (creative direction). Blue or indigo accents are forbidden anywhere; the accent is Braun orange only.
NFR-8 — No shadows, glows, or gradients (creative direction). Drop shadows, glows, and gradients on keys or the calculator slab are forbidden.
NFR-9 — No pill buttons or oversized radii (creative direction). Rounded pill buttons and oversized border radii are forbidden.
NFR-10 — No hover-lift or scale transforms (creative direction). Hover-lift card animations and scale transforms on keys are forbidden.
NFR-11 — No photography or illustration (creative direction). Photography, illustration, and decorative blobs in the hero are forbidden.
NFR-12 — No centred hero with CTA (creative direction). A centred hero with a subheadline and a coloured CTA button is forbidden.
NFR-13 — Font restriction (creative direction). Inter, Roboto, Arial, and system-ui are forbidden as the heading or body face; Archivo is required.
No Python/FastAPI backend, database, Docker/docker-compose, or Kubernetes is required, because the accepted behavior is entirely client-side and stateless.
Assumptions
PRECISION 10 value.0 and is displayed; no memory-store or memory-recall keys are in scope beyond the displayed indicator.Constraints
MEMORY, OPERATOR, and PRECISION.0.#E8590C, reserved for the equals key and the active-operator indicator.

META·SIMPLE
A simple calculator. Nothing more, nothing less.
No comments yet. Be the first!