opal-calculator is a single, simple calculator delivered as a web application. Its product intent is narrow and explicit: give anyone a quick, correct answer to basic arithmetic, with no account, no dashboard, and no brand story. The audience is literally everyone — a person who needs to add, subtract, multiply, or divide a couple of numbers and see the result immediately.
The product is one calculator. It performs basic arithmetic calculations and displays the result to the user. Nothing else is in scope.
opal-calculator is a small first-party web application with two pages: a public Landing page that explains what the calculator is and does, and the Calculator page that owns arithmetic entry, computation, result display, and clearing for a new calculation. Both pages are anonymously reachable; there is no account, no sign-in, and no persisted user state.
The sole active human actor is the Calculator User. There are no other human personas, no administrators, no providers acting on the user's behalf, and no external destinations in the accepted journeys. Computation is performed by the application itself and is not delegated to a third-party service.
The accepted product is a single simple calculator. The delivery boundary is correspondingly tight:
Not applicable — no reference directive declares a content_source.
FR-1 — Perform a basic arithmetic calculation and display the result
FR-2 — Start a new calculation (clear/reset)
FR-3 — Understand what the calculator is before using it
FR-4 — Scope limited to a single simple calculator
Muse: Susan Kare — Charming clarity, one key at a time.
Headline: "SIMPLE MATH, SHARP AS AN OPAL."
Mode: light only.
Colour tokens (exact hex by role):
| Role | Hex | Usage |
|---|---|---|
| Background (paper) | #F2EFE7 | Warm paper ground filling the page |
| Surface (key face / calculator body) | #FFFDF7 | Off-white calculator body and key faces |
| Text / ink | #1B1B1B | All numerals, labels, outlines, 2px strokes, 4px offset shadows |
| Primary | #1B1B1B | Ink black for primary controls and outlines |
| Accent (vermilion) | #E4572E | Equals key and operator column only |
| Muted | #8A8578 | Secondary labels and keypad grid rules |
Proportion: roughly 80% paper and ink, 15% off-white key faces, 5% vermilion. The accent stays scarce to keep its signal power; no second saturated colour competes with the vermilion equals key.
Typography:
clamp(40px, 9vw, 112px); section heading 24/32; key legend 20/24; label 12/12 uppercase tracked +0.12em; body 15/16; caption 11/12.Shape language: chunky-outline rectangles with 6px radii — closer to a physical keycap than a card. Every interactive element has a hard 2px ink stroke with a 4px solid ink offset shadow beneath it; pressing translates the key 4px down and removes the shadow. Purely square pixel ornaments (3×3 and 4×4 dot clusters) act as bullets and dividers. No blobs, no soft gradients, no glass.
Layout: a single centred column on a 12-column grid, maximum width 560px for the calculator at desktop, inside a wider editorial frame. The Landing page stacks an oversized pixel headline flush left, a short two-line explainer, then the calculator as a hero object with its own hard-edged shadow. The Calculator page is the object alone, vertically centred, with a thin ruled header carrying the wordmark and a "new calculation" control. The keypad is a strict 4-column grid with 8px gutters; the display spans all four columns as a single inset panel with a hairline inner rule.
Imagery: no photography. The imagery is the interface itself — pixel pictograms for each operation (plus, minus, multiply, divide, clear, equals) drawn on a 16×16 grid, plus a small pixel opal mark used as the wordmark glyph. Decoration is limited to dot-cluster dividers and a faint 8px grid texture used only behind the calculator object.
Avoid: rounded glass cards, blur, or gradient blobs; blue or indigo as the accent; Inter/Roboto/Arial/Helvetica/system-ui for headings or body; soft drop shadows or hover-lift transitions on keys; photography, 3D renders, or stock imagery of people; any second saturated colour; decorative animation beyond the 80ms press inversion and the display cursor; a centred headline-plus-subtext-plus-button SaaS hero structure.
Readability: headlines, wordmarks, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no other element covering them. Decoration may be cropped or bled as the direction asks, but never over readable text or controls.
The Landing page is a drafting-board composition, not a SaaS hero. A warm paper field (#F2EFE7) carries a faint 8px grid. An oversized VT323 headline — "SIMPLE MATH, SHARP AS AN OPAL." — runs flush left across roughly nine columns at 112px on desktop, set all-caps and allowed to break across two lines. Beneath and overlapping its lower right corner sits the calculator itself, rendered as a physical object: off-white body (#FFFDF7), 2px ink outline, 4px solid offset shadow, with the vermilion equals key (#E4572E) as the single hot point in the composition. A short Space Mono explainer sits to the left of the object at desktop and stacks above it on mobile. The whole product reads as a keycap sitting on the page — the interface is the imagery.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, all of this collapses to plain instantaneous state changes — no press inversion, no cursor blink, no display blink; the static arrangement remains fully usable and readable.prefers-reduced-motion, all micro motion collapses to plain instantaneous state changes while the static arrangement remains usable. (explicit design constraint)#E4572E, reserved for the equals key and operator column.
Basic arithmetic, answered the moment you press equals. Add, subtract, multiply or divide — the result appears right there on the display.
Basic arithmetic, answered right away — add, subtract, multiply or divide and the result appears immediately.

Basic arithmetic, answered the moment you press equals. Add, subtract, multiply or divide — the result appears right there on the display.
Basic arithmetic, answered right away — add, subtract, multiply or divide and the result appears immediately.
No comments yet. Be the first!