eagle-start is a simple calculator delivered as a single page. The product intent is narrow and explicit: a visitor opens one page, enters numbers and arithmetic operators, sees the computed result on that page, and can clear the current calculation to start over. There is no account, no navigation, and no second screen — the design must be a single page.
The audience is the everyday visitor who needs a fast, accurate arithmetic result without leaving the page. The visual and interaction character is set by the project's creative direction: a calculator treated as a well-made Braun-style desk instrument — calm, honest, function-first, with a strict modular grid and exactly one saturated signal colour.
This document is the System Requirements Document for eagle-start. It specifies the product's features and workflows in full, together with the personas, page coverage, flows, visual direction, and technical delivery that make the single-page calculator usable.
eagle-start is a single-page web calculator. The current delivery consists of:
Actors. The only active human actor is the Calculator User, who enters numbers and operators, reads the result, and clears the calculation. There are no other human personas, no administrators, and no external provider surfaces in the accepted scope.
Accepted behavior. The product supports entering numbers and arithmetic operators, computing and displaying a result on the page, and clearing the current calculation to start over — all within one page.
Access. The Calculator page is the anonymous public entry and working surface. No identity, sign-in, or account is required or established.
Narrow exclusions. The product is a simple four-function calculator on one page. It does not include accounts, saved history, sharing, multi-page navigation, or any adjacent productivity capability.
Removed from scope
eagle-start is delivered as a first-party, single-page web application. The page is publicly reachable with no identity step: a visitor lands directly on the calculator and can begin entering numbers immediately. Because the accepted behavior is ephemeral arithmetic within one session, no application-owned identity, sign-in, or durable per-user state is introduced.
The React frontend owns all human interaction — key presses, the display, the active-operator indication, and the clear action. The shared FastAPI backend owns arithmetic evaluation as a domain module behind the application API, so the computation logic is server-owned and reusable while the page remains the single working surface. MariaDB is provisioned infrastructure and is not used to persist calculator sessions or results, since no accepted requirement calls for saved state.
Everything the product does today is current. No future-horizon features are accepted; the boundary of the product is the one page and the four-function arithmetic it performs.
The single page of the product, and its anonymous public entry and working surface. It presents the calculator as a Braun-style desk instrument: on desktop a two-column split at 1280px (left: wordmark, one-line description, model-style spec label; right: the calculator slab), collapsing on mobile to a single line wordmark above a full-column calculator slab, inside a max-width 420px instrument panel.
Information and state
clamp(44px, 9vw, 96px). Initial state shows 0.÷ × − + is active, indicated by the orange fill on that operator key.CALCULATOR in Archivo 700 at clamp(56px, 11vw, 128px), broken across two lines on desktop and a single line on mobile, with a single orange hairline rule beneath it and a 12px uppercase spec line FOUR FUNCTION · DESK MODEL.Primary actions
0–9: append digits to the current entry..: begin or extend a fractional entry.÷ × − +: set the pending operator; the pressed operator key holds the orange fill.=: compute and display the result; the equals key carries the orange fill.AC: clear the current calculation and return the display to 0, with no pending operator.Supporting actions
±: flip the sign of the current entry.%: apply percent to the current entry.Domain entities
÷ × − +, with an active/inactive visual state.Component responsibilities
#D9D3C7 border, holding the display and keypad on a strict 4-column, 8pt-based grid.AC ± % ÷; row 2 7 8 9 ×; row 3 4 5 6 −; row 4 1 2 3 +; row 5 double-width 0, then ., then =. Each key is a labelled value/control pair with a 10px radius and a 1px darker bottom lip that depresses 1px on press.States
0, no operator active.AC to clear and start over.AC always returns the page to the initial 0 state with no pending operator.FR-1 — Single-page calculator delivery (explicit) As a Calculator User I should get the calculator as a single page design, so that I can use it without navigating anywhere.
FR-2 — Enter numbers and arithmetic operators (explicit) As a Calculator User I should enter numbers and arithmetic operators, so that I can build the calculation I want.
AC to start over.= to compute.FR-3 — See the computed result on the page (explicit) As a Calculator User I should see the computed result on the page, so that I get my answer without leaving it.
=.AC to recover.FR-4 — Clear the current calculation to start over (explicit) As a Calculator User I should clear the current calculation to start over, so that I can begin a fresh calculation.
AC.0 and no operator remains active.FR-5 — Sign toggle and percent on the current entry (required_inference)
As a Calculator User I should toggle the sign of the current entry and apply percent to it, so that the labelled ± and % keys on the keypad behave as their labels state.
± or %.AC.=.FR-6 — Server-owned arithmetic evaluation (required_inference) As a Calculator User I should receive an accurate result computed by the application, so that the displayed answer is correct.
=.= again or clear with AC.Product context. The Calculator User is the everyday visitor who opens eagle-start to do a quick piece of arithmetic. They arrive on the single page with no account and no prior state, and they expect the tool to behave like a well-made desk calculator: immediate, legible, and honest.
Primary goal. Get an accurate arithmetic result quickly, on the page, without leaving it.
Distinct accepted responsibilities.
AC to start over.± and % keys to adjust the current entry.Relevant inputs and decisions. Which digits and operator to enter, when to press =, and when to clear. The user reads the active-operator signal (orange fill) to confirm which operator is pending, and reads the display to confirm the entry and result.
Interactions with other participants. None — the Calculator User is the only active human actor. The backend evaluates arithmetic on the user's behalf but is a system actor, not a participant with its own response.
Observable success. The display panel shows the correct result, right-aligned in tabular numerals, and the user can clear to 0 and begin again — all without leaving the single page.
0 and no operator is active.÷ × − +); that operator key takes the orange active fill, confirming the pending operator.=; the page sends the expression to the shared FastAPI backend, which evaluates it, and the display panel shows the computed result right-aligned in tabular numerals. The equals key carries the orange signal.AC to clear to 0 and start a new calculation.Failure/recovery: if the operation is invalid (for example division by zero), the display panel shows an error indication instead of a wrong number; the user presses AC to return to 0 and start over. If the backend is unreachable, the display shows an error state and the user may press = again to retry or AC to clear.
AC.0 and no operator key remains active.± to flip the sign, or % to apply percent; the display panel reflects the adjusted entry.= to compute.The creative direction is authoritative: Less, but better — a calculator as a Braun instrument, muse Dieter Rams. The emotional register is calm competence and honest function; the interface itself is the visual content.
Colour tokens (light mode)
#EDE9E1 (warm off-white ground)#F7F4EE (slightly lighter keypad surface)#1C1B18 (near-black display numerals and body text)#2A2925 (calculator chassis and secondary keys)#E8541E (Braun orange — the single signal colour)#8C877C (labels, small caps, hairlines)#D9D3C7Braun orange appears only on the active operator key, the equals key, and the thin status rule above the display — roughly 5% of the surface. No blue, no gradients.
Typography
0.14em tracking at small sizes.-0.02em tracking, clamp(44px, 9vw, 96px), right-aligned in the display panel.Shape language
#D9D3C7 border.Layout and spacing
CALCULATOR · 4 FUNCTION label; right: the calculator).AC ± % ÷ / 7 8 9 × / 4 5 6 − / 1 2 3 + / double-width 0, ., =. Every key aligned to the same grid lines; nothing floats.Imagery
Readability
clamp(...) with its mobile size) to fit. No element covers any part of readable text or a control.The public entry is the instrument itself. On desktop, a warm off-white field holds a single centred calculator slab on the right and, on the left, an oversized stacked wordmark reading CALCULATOR in Archivo 700 at clamp(56px, 11vw, 128px), set flush-left and broken across two lines, with a thin Braun-orange rule under it and a 12px uppercase spec line FOUR FUNCTION · DESK MODEL. The dominant element is the calculator's display panel: a full-width near-black inset with tabular numerals up to 96px, right-aligned. The orange appears exactly twice — the equals key and the status rule.
On mobile the wordmark collapses to a single line above the calculator, still flush-left, and the slab fills the column edge to edge.
The signature moves are: the chassis treated as a physical Braun instrument (20px-radius slab, hairline border, keys with 1px bottom lips and 10px radii that visibly depress on press); type as the hero with no imagery; a near-black display panel with tabular numerals reading like a machined readout; Braun orange reserved as a signal; and small-caps labelled key rows aligned to a visible 4-column grid, with a footer band of hairline operator diagrams in muted grey instead of illustration.
This concept only recomposes the accepted content, states, and controls of the Calculator page — it adds no behavior, page, or destination.
Interaction Model: Static (direction) Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
CALCULATOR wordmark as the type hero.CALCULATOR wordmark with orange hairline rule and uppercase spec line on the left; the calculator slab on the right with display showing 0 and no operator active.prefers-reduced-motion; no content depends on motion to become readable.#1C1B18 text on #F7F4EE/#EDE9E1 surfaces and white numerals on the near-black display panel maintain legible contrast; the orange signal is never the sole carrier of meaning — the active operator is also indicated by its position and the display state.± and % keys behave as their labels state, since they are part of the directed 4×5 keypad layout.AC ± % ÷, 7 8 9 ×, 4 5 6 −, 1 2 3 +, 0 . =).0 and removes any pending operator.#E8541E, reserved for the active operator key, the equals key, and the status rule.
eagle-start
FOUR FUNCTION · DESK MODEL
A four-function desk calculator. Enter a number, choose an operator, press equals.
0
Press = to retry
Fig. 01Four functions

eagle-start
FOUR FUNCTION · DESK MODEL
A four-function desk calculator. Enter a number, choose an operator, press equals.
0
Press = to retry
Fig. 01Four functions
No comments yet. Be the first!