urban-simple is a simple calculator delivered as a single page. The product intent is narrow and explicit: one page where a person enters numbers and operators and reads the arithmetic result. There is no account, no navigation, no secondary screen, and no surrounding application shell — the calculator is the product.
The audience is everyday users who need quick arithmetic in a browser. The page must be simple and must feel light, tactile, and optimistic, following a sensual pop-minimalist direction inspired by Karim Rashid: a bubblegum-pink ground, one soft white capsule panel, capsule keys, and a glossy 3D blob floating behind the panel.
This document is the System Requirements Document for the project named urban-simple, requested by Diya Trivedi.
The product is a single public page. It is the public entry surface and the calculator itself: a visitor lands on it, performs arithmetic, and reads the result. No identity, sign-in, account, or session continuity is required or provided — the calculator holds no durable user-specific state, so there is nothing to privately own or resume. The page is reachable anonymously and is fully usable on first load.
All calculation behavior runs in the browser on the single page. The provisioned backend (FastAPI) and database (MariaDB) exist as project infrastructure but carry no calculator domain responsibility: no calculation history, saved expressions, or user records are part of the accepted scope, and none are introduced here. The frontend (React) owns the entire accepted experience.
Everything described in this document is current scope. No future-horizon features have been accepted.
Information and state
Primary actions
0–9 and a decimal point key: append to the current entry.+, −, ×, ÷: mark the chosen operator in pink and begin the second operand.=: pink capsule key; computes and shows the result in the display band.C: lime capsule key; resets the display and any pending operation to the initial zero state.Supporting actions and states
C recovers to the initial zero state.0 on first load.Domain entities
Component responsibilities
#FFE3F0.#FFFFFF capsule panel with soft shadow, holding the display band and the 4×4 key grid.#FF4FA3 for operators and equals, lime #B6FF3C for clear only.States
0.C recovers.C always returns to the initial zero state.FR-1 — Single-page calculator entry (explicit) As a Calculator user, I should open the single Calculator page and immediately see a working calculator, so that I can do arithmetic without any setup.
0, and the 4×4 key grid.FR-2 — Enter numbers (explicit) As a Calculator user, I should press digit keys and a decimal point to build a number, so that I can enter the operands I want to calculate.
0–9, decimal point.C clears the entry back to 0.FR-3 — Choose an operator (explicit)
As a Calculator user, I should press +, −, ×, or ÷ to choose an operation, so that the calculator knows which arithmetic to perform.
C cancels the pending operation.FR-4 — Compute a result (explicit)
As a Calculator user, I should press = after entering the second operand, so that I see the arithmetic result.
C recovers to 0.FR-5 — Clear the calculator (explicit)
As a Calculator user, I should press the lime C key to reset, so that I can start a fresh calculation.
0 and any pending operand/operator is discarded.C is always available and always recovers to the initial state.FR-6 — Tactile key feedback (explicit, from creative direction) As a Calculator user, I should see a soft liquid morph and pink glow when I press a key, so that the calculator feels tactile and responsive.
prefers-reduced-motion, the sheen and morph are suppressed and the calculator remains fully usable.=; clearing with C to start over or recover from an error.= versus C.C resolves.0, and the 4×4 key grid.=; the display band shows the computed result.C to reset to 0 and begin a new calculation, or enter a new operator to continue from the result.=.C key; the display returns to 0 and pending state is discarded.C.0 and any pending operand/operator is discarded.Muse and headline: Karim Rashid — sensual pop minimalism for a simple calculator. A plain tool becomes a soft, glossy object on one warm colour ground.
Mode: light only.
Colour tokens (exact hex by role)
#FFE3F0 (bubblegum pink, full-bleed)#FFFFFF#1E1B2E#FF4FA3#B6FF3C#8A7F92Typography
Shape language: capsule keys, blob-shaped panel edges, glossy highlights; all corners fully round, no sharp edges.
Layout: one centred column; short title flush left above a soft white panel; panel holds the display band and a 4×4 key grid; keys at least 56px tall at 375px.
Imagery: no photos; one glossy 3D blob floats partly off the right edge behind the panel as a soft pink form.
Avoid: blue or indigo accents on white; square keys and sharp corners; grids of identical hover-lift cards; gradient blob heroes with a centred headline and button.
The public entry is the calculator itself: a full-bleed bubblegum-pink ground holding one large white capsule panel with a soft shadow. The display is a wide pink-tinted band at the top of the panel with 64px tabular numerals. A glossy pink 3D blob sits partly off the right edge behind the panel, bleeding past the viewport edge as decoration only. The title sits flush left above the panel, not centred. Capsule keys carry a pink glow on press, and a slow sheen sweeps across the white panel. Readable text and controls — title, display numerals, key labels — remain whole and uncovered at 375px, 768px, and 1280px; the blob and sheen carry the gesture instead.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: webgl
Landing Hero Motion Brief
0, 4×4 capsule keys, blob partly off the right edge.Landing Hero 3D Scene Brief — DIRECTION-DERIVED
One crafted real-time glossy pink blob (soft, rounded, high-gloss material) positioned partly off the right edge behind the panel, with gentle idle drift and a subtle sheen highlight. It must never cover the title, display numerals, or key labels, and it degrades to a static rendered form under prefers-reduced-motion.
clamp(...)) to fit; no element covers readable text or controls.prefers-reduced-motion, the sheen and morph are suppressed and the calculator remains fully usable.frontend, backend, and database services.+, −, ×, ÷) with a decimal point and clear; no scientific functions, memory, or history are in scope.=.
Soft taps, clean numbers. Your everyday arithmetic, right here.
0

Soft taps, clean numbers. Your everyday arithmetic, right here.
0
No comments yet. Be the first!