wooden-calculator is a simple calculator delivered as a single-page design. The product intent is narrow and explicit: one page that lets a person perform everyday arithmetic — entering numbers and operators, reading the result, and clearing the calculation — presented as a hand-built, tactile instrument rather than a sleek app.
The audience is anyone who needs quick arithmetic and wants the tool to feel trustworthy, tactile, and unpretentious. The design language (a kraft-paper ground, a cream calculator card with a thick ink border, stamped keys, a slab-serif result display) serves that intent: the calculator reads as a physical object you would keep on a bench.
The product is anonymous and self-contained. There is no account, no saved history, and no multi-page navigation; the entire experience is the one calculator page.
The accepted outcome is a simple calculator on a single page. That single page — Calculator — is the anonymous public entry and the only destination. It owns number and operator entry, the expression and result display, and clearing the calculation. No identity, sign-in, or account state is required or offered; the page is usable immediately on load.
Delivery is a first-party React frontend served alongside a shared FastAPI backend and a MariaDB database (provisioned infrastructure). The calculator's arithmetic and display state are a self-contained client-side interaction on the single page; the provisioned backend and database are available infrastructure and do not, by themselves, introduce product requirements, domain entities, authentication, or persistence. No current requirement calls for server-side calculation, saved calculations, or user data.
The current delivery horizon is exactly this one page and its arithmetic interaction. Anything beyond it (history, memory keys, scientific functions, accounts) is out of scope for the current product and is not represented as a page, control, or requirement.
The single page. Anonymous, publicly reachable, no identity required. Everything below lives on this one page; there is no navigation to any other destination.
Information and state
12 × 4).0, empty expression) immediately.Primary actions
0–9 and decimal point . — append digits to the current entry.÷, ×, −, + (mustard #E8A33D) — set the pending operation.= (the only solid burnt-orange key) — evaluate the pending expression and show the result.AC — clear the current calculation, returning display to 0 and expression to empty.± — toggle the sign of the current entry.% — apply percent to the current entry.Supporting actions and marks
WC · WOODEN CALCULATOR · EST. 2024, dotted inner ring, rotated −6°.WOODEN CALCULATOR — FIELD ARITHMETIC.FIELD ARITHMETIC · BUILT TO LAST, separated by a dotted 2px rule.Domain entities (conceptual, client-side only)
Component responsibilities
AC ± % ÷ / 7 8 9 × / 4 5 6 − / 1 2 3 + / 0 (spanning two columns) . =. Each key is a stamped button: cream fill, 2px ink stroke, 3px solid ink offset shadow collapsing on press.States
0, expression empty.= replaces the display with the computed result; expression line shows the completed expression.AC clears it and returns to the initial state. Recovery is always available via AC.FR-1 — Enter numbers and operators (explicit) As a Calculator User, I should be able to press number keys and operator keys to build an arithmetic expression, so that I can compute a result.
0–9, ., and one of ÷ × − +.AC clearing the entry.= to evaluate.FR-2 — Evaluate and display the result (explicit)
As a Calculator User, I should be able to press = to evaluate the pending expression and see the result, so that I get my answer.
=.AC clears it.AC.FR-3 — Clear the calculation (explicit)
As a Calculator User, I should be able to press AC to clear the current calculation, so that I can start fresh or recover from an error.
AC.0, expression line empties, pending operator cleared.FR-4 — Sign toggle and percent (explicit)
As a Calculator User, I should be able to press ± to toggle the sign of the current entry and % to apply percent to it, so that I can handle negative values and percentages.
± or %.FR-5 — Single-page, simple presentation (explicit) As a Calculator User, I should see the entire calculator on one simple page, so that I can use it without navigation or clutter.
=, read the result, and clear or correct the calculation with AC, ±, or %.=, and the user can clear and start again at any time.0 and the expression line is empty.1, 2); the display shows 12.×; the expression line shows 12 × and the operator is pending.4; the display shows 4.=; the display shows the result 48 in the oversized result line, and the expression line shows 12 × 4.AC to reset to 0.AC; the display returns to 0 and the expression line empties.50).±; the display shows -50.%; the display shows the percent value of the entry.= or AC as needed.=.AC; the display returns to 0 and the calculator is ready for a new calculation.The CREATIVE DIRECTION is authoritative for this section.
#E8DCC3#F3EAD6#1C1A17#D4502A#E8A33D#7A6E5Bclamp(28px, 5vw, 44px)clamp(44px, 9vw, 88px) in Alfa Slab OneAC, ±, %, ÷ × − + at consistent 2.5px stroke, optically centred. Halftone-dot paper grain at 8% opacity on the kraft ground. Circular WC maker's mark and dotted-ring EST. 2024 stamp as the only decorative elements.The public entry is a poster for a tool: the calculator itself, presented as a physical printed card on a kraft-paper bench. A cream panel with a 3px ink border and a chunky offset shadow sits centred slightly low on the page. At the top of the panel, an oversized Alfa Slab One result display (clamp(44–88px)) sits over a solid burnt-orange rule, with a smaller Oswald expression line above it in muted brown-grey — the result is the loudest thing on screen. Above the panel, a circular maker's badge stamp (WC · WOODEN CALCULATOR · EST. 2024, dotted inner ring, rotated −6°) sits at the top-left, beside a full-width all-caps Oswald rule line reading WOODEN CALCULATOR — FIELD ARITHMETIC. The keypad fills the lower two-thirds in a strict 4×5 grid of stamped keys: cream fill, 2px ink stroke, 3px solid ink offset shadow; the equals key is the only solid burnt-orange key, and the four operator keys are the only mustard ones. A footer strip in 11px Oswald uppercase reads FIELD ARITHMETIC · BUILT TO LAST, separated by a dotted 2px rule. No centred headline, no subtext, no blue button, no gradient — just the object, the stamp, and the rule.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
= is pressed — the tool responds like a stamp, not a toy.0 over the orange rule; keypad at rest.prefers-reduced-motion removes the load reveal and the digit flip, keeping only the instant key press.clamp(...)) to fit; no other element covers any part of them.backend, database, and frontend services.

No comments yet. Be the first!