tidal-single is a simple single calculator. It exists so one everyday person can do basic arithmetic — entering numbers and operations and reading the result — on one calm, uncluttered calculator. The product is deliberately small: a single calculator, one user, basic arithmetic. There is no account, no history, no multi-calculator management, and no adjacent productivity tooling.
The audience is the everyday user who wants to add, subtract, multiply, and divide without a technical or device-panel feel. The interface is designed to read like a warm printed page rather than a piece of hardware.
This document is the System Requirements Document for tidal-single, written for the requester Diya Trivedi.
tidal-single is delivered as a small web application with two first-party pages: a public Landing page that introduces the simple single calculator, and a Calculator page where the user performs arithmetic and reads the current result. Both pages are anonymously reachable; no account, sign-in, or identity establishment is required or offered.
The active human actor is the Calculator user, who enters numbers and operations and reads the result. There are no other human personas. The application backend supports the calculator's arithmetic evaluation; the frontend renders the Landing and Calculator pages.
Current delivery is limited to: one calculator, basic arithmetic, a result display, and the two pages above. Nothing else is in scope.
The product is a single calculator for basic arithmetic. The user arrives at the Landing page, which explains the simple single calculator in plain language, and moves to the Calculator to do arithmetic. The Calculator is the working surface: the user enters numbers and operators, and the current result is shown.
Both pages are public and anonymous. The product does not establish accounts, does not persist a user's calculations as a durable history, and does not offer multiple calculators or saved sessions. The calculator's working state lives in the current page session; there is no cross-session continuity requirement.
Arithmetic evaluation is supported by the shared application backend. The backend exists to serve the calculator's evaluation needs; it does not introduce user accounts, saved data, or additional product capabilities.
Nothing beyond the simple single calculator is planned for the current delivery. No future capabilities are committed.
FR-1 — Simple single calculator (explicit) As a Calculator user, I should have one simple calculator available, so that I can do basic arithmetic in one place.
FR-2 — Basic arithmetic (explicit) As a Calculator user, I should be able to perform basic arithmetic — addition, subtraction, multiplication, and division — so that I can compute a result from entered numbers.
FR-3 — Enter numbers and operations and read the result (explicit) As a Calculator user, I should be able to enter numbers and operations and read the current result, so that I can see the outcome of my calculation.
FR-4 — Open the Landing page and start the Calculator (required_inference) As a Calculator user, I should open the Landing page and start the Calculator from it, so that I can reach the calculator from the product's entry point.
FR-5 — Clear and correct the current entry (required_inference) As a Calculator user, I should be able to clear or correct my current entry, so that I can recover from a mistake without reloading.
The creative direction is authoritative: warm editorial calm after Frank Chimero. The calculator should feel like a printed page, not a device panel.
Palette (light mode only; no dark mode):
#F4EEDF — fills roughly 60% of the screen.#FFFDF7 — holds the calculator keys and panel.#221E1A — all text and the 1px rules.#A6472B — the one hot accent: the equals key fill and focus states.#C98A2E — operator key outlines.#8A7F6E — labels and rules.Typography:
Shape language: Soft 10px radii on keys, 4px on panels. Thin 1px ink rules divide sections. No shadows and no gloss.
Layout: One centred column with a 680px measure. The Landing page places a large sentence above a single ink rule, then the calculator panel below, offset left of centre. Keys sit in a 4×5 grid with wide gaps.
Imagery: Small hand-drawn rust spot drawings beside section openers. No photographs and no 3D.
Avoid: No gradient blobs or glass panels; no blue or indigo accents; no grid of identical hover-lift cards; no Inter, Roboto, or system fonts; no dark mode or neon glow; no 3D or WebGL scenes.
Readable text and controls stay whole at every viewport (375px, 768px, 1280px), wrapping or scaling (for example font-size: clamp(...)) to fit, with no other element covering them. Decoration and motion may be cropped, bled, rotated, or overlapped as the direction asks, as long as they cover no readable text or control.
The public entry is a cream page with one oversized Literata sentence spanning the full 680px measure, set at 56px to 96px, with a rust hand-drawn underline beneath one word. A single 1px ink rule sits below the sentence. Below the rule, the paper calculator panel — a card with a 1px ink border, no shadow, 4px panel radius, and 10px key radii — is set off-centre to the left, with its result number in tabular Literata numerals at 72px to 128px, right-aligned above the keys. The equals key is solid rust #A6472B with cream text; operator keys are mustard #C98A2E outlines. A small rust hand-drawn spot drawing sits at the section opener. The composition reads as a printed page introducing a small, humane tool.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, provide a usable static arrangement; fades resolve immediately and the key press offset is removed.#A6472B.
tidal-single
Add, subtract, multiply and divide on a single page. Nothing to set up.
Open the calculatorKeys are a preview. The working calculator lives on its own page.

tidal-single
Add, subtract, multiply and divide on a single page. Nothing to set up.
Open the calculatorKeys are a preview. The working calculator lives on its own page.
No comments yet. Be the first!