sharp-start is a simple calculator delivered as a single page. The product intent is narrow and complete: one anonymous visitor opens one page, enters numbers and operators, sees the computed result, and can clear the entry — all without navigating away, signing in, or leaving the screen. The design is deliberately a single page, and the calculator itself is the entire product surface.
The audience is the Calculator User: a single visitor performing basic arithmetic who wants the number, not the brand. The experience is calm, tactile, and engineered — a precise instrument rather than a decorated app.
sharp-start is a single-page web calculator. The page is anonymously reachable and requires no account, no sign-in, and no persisted identity. The Calculator User enters digits and operators, the calculator computes and displays the result, and the user can clear the current entry or backspace a digit. All arithmetic interaction happens on one screen.
Current delivery consists of:
Actors:
Accepted behavior: entering numbers and operators, computing and viewing results, and clearing entries, all on the single Calculator page.
Narrow exclusions: no additional pages, no navigation, no accounts or sign-in, no history or memory features beyond what the accepted behavior requires, and no adjacent calculator capabilities (scientific functions, unit conversion, graphing, currency) are introduced.
Removed from scope
sharp-start is delivered as one first-party page, the Calculator, which is anonymously reachable and owns the entire accepted lifecycle: entering numbers and operators, computing and viewing the result, and clearing entries. There is no pre-identity lifecycle, because no accepted behavior requires private, resumable, or actor-bound state; the calculator is public-ephemeral by nature. There is no provider-owned or external surface in the accepted scope.
The backend and database are provisioned infrastructure. They may support the frontend (for example, serving the application or hosting any computation the implementation delegates), but they do not create additional product surfaces, identity, or persistence requirements. Everything the Calculator User does and sees happens on the single Calculator page.
The single page of the product, anonymously reachable, owning all accepted calculator behavior.
RESULT label pinned left; closed by a 2px ink rule beneath.SHARP / START wordmark, small-caps legend, and one plain sentence; stacks above the body at 768px and the body goes full-width at 375px.FR-1 — Enter numbers. As a Calculator User I should enter digits 0–9 on the keypad so that I can build the number I want to calculate with. (explicit)
FR-2 — Select an operator. As a Calculator User I should select an operator (÷, ×, −, +) so that I can specify the arithmetic operation to perform. (explicit)
FR-3 — Compute and view the result. As a Calculator User I should press the equals key so that the calculator computes the expression and displays the result in the readout. (explicit)
FR-4 — Clear the entry. As a Calculator User I should press the C key so that I can clear the current entry and start over. (explicit)
FR-5 — Backspace a digit. As a Calculator User I should press the\x20\xe2\x8c\xab key so that I can remove the last entered digit and correct a mistake. (required_inference — indispensable correction mechanic for the accepted entry lifecycle)
FR-6 — Continue from a result. As a Calculator User I should be able to enter a new operator and operand after a result is shown so that I can chain calculations without clearing. (required_inference — indispensable continuation of the accepted compute lifecycle)
The creative direction is authoritative: Less, but better — a calculator as honest instrument, after Dieter Rams.
Palette (light mode)
| Role | Hex | Use |
|---|---|---|
| Background | #EDEAE3 | Warm off-white page ground |
| Surface | #F7F5F0 | Slightly brighter calculator body panel |
| Text | #1C1B18 | Ink near-black, full contrast |
| Primary | #E4571E | Braun orange — equals key, active operator, readout rule; under 8% of surface |
| Accent | #F2B705 | Amber — secondary signal for operator state only |
| Muted | #8C877C | Warm grey — labels, small caps, secondary key faces |
No blue anywhere. Only one saturated colour appears on screen at a time.
Typography
RESULT and MEMORY.clamp. Page title 28/40. Labels 12/13 small caps. Key labels 20/24. Body 15/16.Shape language
Layout
Imagery
The first screen is the instrument. The left third of the viewport carries an oversized Archivo title set flush-left and stacked in two lines — SHARP over START, 56px mobile → 128px desktop — with a small-caps legend and a single plain sentence beneath it. Visible column hairlines run the full page height behind the wordmark.
The right two-thirds holds the calculator body: a warm off-white panel (#F7F5F0) on the warmer page ground (#EDEAE3), with a full-width readout band at top — right-aligned tabular numerals, a small-caps RESULT label pinned left, closed by a 2px ink rule beneath — and a 4×5 keypad of rounded-rect keys in warm grey with one Braun-orange equals key, the only saturated surface on the page.
The composition is asymmetric and grid-locked, with visible column hairlines; no centred stack, no gradient, no floating card. The concept recomposes only accepted content and controls: the readout, the keypad, the operator state, and the equals commit.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, the load reveal is suppressed and the calculator body appears in its final position; key press feedback remains a static darken with no transition; the equals flash is omitted or reduced to a static state change.prefers-reduced-motion, a usable static arrangement is provided.#E4571E, used on the equals key, active operator, and readout rule.
sharp-start

sharp-start
No comments yet. Be the first!