omega-start is a simple calculator delivered as a single-page design. The product exists so that anyone doing quick everyday arithmetic can enter numbers and arithmetic operators, see the current entry and the computed result on the page, and clear the calculator to begin a new calculation. The audience is the general Calculator User: a person who wants a fast, exact arithmetic surface with no account, no setup, and no surrounding application.
This document is the System Requirements Document for omega-start. It specifies the single page, the calculator behavior, the visual system, and the delivery boundary for the current release.
omega-start is a one-page web calculator. The page is anonymously reachable and hosts the entire product experience: a display showing the current entry and the computed result, a keypad for entering numbers and arithmetic operators, and a clear control that resets the calculator to begin a new calculation. There is no navigation beyond this page, no account, and no persisted history.
The current delivery comprises a React frontend that renders the Calculator page, a shared FastAPI backend process for application APIs and domain modules, and a MariaDB database provisioned as application-owned persistent storage. The calculator's arithmetic and display state are a client-side interaction on the single page; the provisioned backend and database are available infrastructure and do not by themselves introduce domain entities, authentication, or stored calculation history.
Actors: the Calculator User (the only active human persona) interacts with the Calculator page. The backend and database are non-persona system services.
Removed from scope
The product is a single, publicly reachable page. A visitor opens the Calculator page and immediately has a working calculator: no sign-in, no onboarding, no account creation, and no personal data. Because no accepted behavior requires durable actor-specific state, private ownership, or a commitment bound to an identified participant, the product establishes no application identity and no session continuity. The calculator's working state (current entry, pending expression, computed result) lives for the duration of the visit and is reset by the clear control.
Everything the Calculator User does — entering digits and operators, reading the result, clearing — happens on the one Calculator page. The backend and database are provisioned infrastructure for the application; they do not add user-facing surfaces, and no current requirement depends on server-side persistence of calculations. Future extensions are out of scope for this release and are not represented on the page.
The single page of the product, anonymously reachable, hosting the complete calculator experience.
FR-1 — Single-page calculator delivery (explicit) As a Calculator User, I should reach the entire calculator on one page, so that I can do arithmetic without navigating anywhere else.
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 to compute.
FR-3 — View current entry and computed result (explicit) As a Calculator User, I should view the current entry and the computed result on the page, so that I can confirm what I have entered and what the calculator computed.
FR-4 — Clear to begin a new calculation (explicit) As a Calculator User, I should clear the calculator, so that I can start a fresh calculation.
The visual system follows the supplied creative direction: Swiss geometric rigour, one grid, one pure accent, numbers as poster. Muse: Josef Müller-Brockmann.
#F4F2ED (warm paper-white ground)#FFFFFF (keypad tiles)#111111 (black type at full strength)#E2231A (signal red — equals key and active operator state only)#F2C200 (pure yellow — clear/all-clear key and the single horizontal rule marking the display)#8C8C86 (secondary labels and thin grid rules)clamp(40px, 9vw, 112px); display result clamp(48px, 13vw, 128px) tabular; key labels clamp(20px, 4.5vw, 30px); section labels 12px uppercase tracked; helper copy 16/24. Only four sizes in use; hierarchy carried by weight and rules.clamp(...) to fit; no other element covers any part of them. Decoration may be cropped or bled off an edge but never covers readable text or controls.The first screen is a printed poster, not an app hero. A warm paper ground (#F4F2ED) carries a full-width hairline-ruled header band: "CALCULATOR" in heavy Archivo flush left spanning roughly 40% of the viewport width, with a small uppercase label pinned to the right edge of the same rule. Beneath it, the composition splits asymmetrically: the live display occupies the left seven columns with the running expression in small tracked caps and the result in enormous tabular Archivo (clamp(48px, 13vw, 128px)) flush left, underlined by a 2px black rule; the square keypad fills the right five columns as a visible grid of white tiles with 1px black gaps, the red equals block and yellow clear block the only colour. A quarter-circle of signal red bleeds off the top-right viewport edge as the single geometric gesture. No centred stack, no gradient, no button pill. The number is the poster image.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, the press flash is removed entirely and state colour alone communicates the press; digits update without the opacity transition. The static poster arrangement remains fully usable.prefers-reduced-motion removes the press flash and relies on state colour only.frontend, backend, and database services.
omega-start
Type digits, decimal point, plus, minus, asterisk or slash to calculate. Press Enter to evaluate, Backspace to delete, Escape or C to clear.

omega-start
Type digits, decimal point, plus, minus, asterisk or slash to calculate. Press Enter to evaluate, Backspace to delete, Escape or C to clear.
No comments yet. Be the first!