orbit-start is a simple calculator delivered as a single page. The product intent is narrow and explicit: give everyday users one page where they can enter numbers, choose an arithmetic operation, and read the result. The design must be simple, and the product must remain a single page — no additional destinations, accounts, or surrounding application shell are part of the current scope.
The audience is the everyday calculator user who wants quick, precise arithmetic without setup, sign-in, or navigation. The page opens directly into the working calculator.
orbit-start is a single-page web calculator. The page presents a keypad for number entry and operation selection, a live expression display, and a result display. All interaction happens on that one page; there is no navigation, no account, and no persisted history.
Current delivery consists of a React frontend serving the single Calculator page, a shared FastAPI backend process available for application APIs and domain modules, and a MariaDB database provisioned for application-owned persistent data. The calculator's arithmetic is performed in the page itself; the provisioned backend and database do not by themselves introduce stored calculator data, user records, or authentication.
Actors:
Narrow exclusions: no multi-page navigation, no user accounts or sign-in, no saved calculation history, no scientific or programmer modes, no unit conversion, and no sharing or export of results.
Removed from scope
orbit-start is delivered as one first-party page, the Calculator, reachable directly with no access requirement. The page is public and ephemeral: a visitor opens it, performs arithmetic, and reads the result. Nothing about the accepted behavior requires the user to be identified, to resume prior state, or to have a result bound to them across visits, so no identity establishment, session, or account surface exists.
The calculator's working state — the current expression and the displayed result — lives in the page for the duration of the visit. The provisioned FastAPI backend and MariaDB database remain part of the deployment inventory and are available for future application APIs and application-owned data, but the current accepted calculator behavior does not depend on them and does not create stored calculator records.
Everything described in this document is current scope. No future-horizon features are accepted.
The single page of the product. It holds number entry, operation selection, the live expression, and the result.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
clamp(40px, 9vw, 96px).States
FR-1 — Enter digits As a Calculator user, I should press digit keys to enter numbers so that I can build the operands of my calculation.
FR-2 — Enter a decimal point As a Calculator user, I should press the decimal point key to enter fractional numbers so that I can calculate with non-integers.
FR-3 — Select an arithmetic operation As a Calculator user, I should press an operator key to choose addition, subtraction, multiplication, or division so that the calculator knows which operation to perform.
FR-4 — Evaluate the expression As a Calculator user, I should press the equals key to compute the result so that I can read the answer to my calculation.
FR-5 — Read the live expression As a Calculator user, I should see my expression build up as I press keys so that I can confirm what I have entered before evaluating.
FR-6 — Clear the calculation As a Calculator user, I should press the clear key to reset the calculator so that I can start a new calculation.
FR-7 — Continue from a result As a Calculator user, I should be able to use a result as the first operand of a new operation so that I can chain calculations.
Product context. The Calculator user arrives at orbit-start to do a quick piece of everyday arithmetic — a sum, a difference, a product, or a quotient. They have no account, no prior state, and no expectation of anything beyond a working calculator on the page in front of them. The page opens directly into the keypad and the expression panel.
Primary goal. Enter a calculation and read its result quickly and precisely, with confidence that what they typed is what will be evaluated.
Distinct accepted responsibilities.
Relevant inputs and decisions. Which digits and decimal point to enter; which operator to choose; when the expression is complete enough to evaluate; whether to continue from a result or clear and start over.
Interactions with other accepted participants. None. The Calculator user is the only active human participant; the frontend application renders the page and evaluates the arithmetic on the user's behalf, and no other persona receives, approves, or is affected by the calculation.
Observable success. The result line shows the correct evaluated value in accent orange after pressing equals, and the expression line shows exactly the expression the user entered.
Failure and recovery. If the user presses equals with an incomplete expression, nothing happens and the expression remains visible. If the expression divides by zero, the result line shows an error indication while the expression stays visible; the user presses clear to reset or corrects the entry.
Continuation. The user completes the corrected calculation and reads the result.
Alternative. If the user presses a digit key after a result instead of an operator, a fresh expression begins with that digit.
Muse and headline. Adham Dannaway — dual-nature craft: one half keypad, one half live expression. The feeling is clear, quick, and precise.
Mode. Light mode.
Colour tokens (exact hex by role)
#F4F1EA#FFFFFF#15181D#15181D#E4572E#6E7278#15181D with light text on it.Typography
clamp(40px, 9vw, 96px).Shape language. Sharp corners on the two panels; 8px radius on keys; 8-pt spacing rhythm; hairline 1px ink borders separating the two halves and the key rows.
Layout. Two equal halves on desktop: keypad left, expression and result right. Stacked halves on mobile: keypad below the result. Readable text and controls stay whole inside the viewport and their containers at 375px, 768px, and 1280px, wrapping or scaling to fit.
Imagery style. No photos. The interface is the image: the charcoal code panel shows the live expression as monospace text.
Avoid. Blue or indigo accents on white; gradient blobs or glass panels; rounded pill buttons and soft offset shadows; icon illustrations or stock photos.
The public entry is the Calculator page itself, composed as a full-viewport split screen on warm paper (#F4F1EA).
#15181D) with the live expression in JetBrains Mono and the result in large Space Grotesk bold, tight tracking.#E4572E) key in the grid, and the result is the only accent-orange text.The concept recomposes only accepted content and controls: the keypad, the expression line, the result line, and the clear and equals keys. It introduces no new behavior or destination.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, key press feedback and expression typing become instant state changes with no transition; the split layout, keypad, expression line, and result line remain fully usable and readable.prefers-reduced-motion, provide a usable static arrangement with instant state changes. (explicit, from the creative direction)frontend, backend, and database services as provisioned.
Expression
Press a key to begin
Result
—

Expression
Press a key to begin
Result
—
No comments yet. Be the first!