pearl-page is a simple calculator delivered as a single-page design. The product intent is narrow and explicit: one page on which a person can perform everyday arithmetic — entering numbers and operators, seeing the running expression and the result, and clearing the calculation to start over — without leaving the page.
The audience is anyone who needs quick arithmetic in a browser: a single anonymous visitor who opens the page, calculates, and is done. There is no account, no saved history, and no second destination. The design treats this familiar object with a deliberate industrial, labeled aesthetic (see Sections 6–8), but the product behavior itself remains a plain calculator.
The requester is Diya Trivedi (IN). The project name is pearl-page.
pearl-page is a single-page web calculator. The entire product surface is one page, Calculator, which is the anonymous public entry and owns number and operator entry, the running expression and result display, and clearing the calculation.
Current delivery consists of:
Actors: the single active human persona, Calculator User. There are no other human personas, no provider-owned surfaces, and no external destinations in the accepted scope.
Removed from scope
pearl-page is delivered as a first-party, single-page web application. The Calculator page is publicly reachable and anonymous: a visitor opens it and can immediately calculate. No identity establishment, sign-in, session continuity, or account management is part of the product, because nothing in the accepted scope requires a visitor to privately own or resume durable state — each calculation is ephemeral and lives only in the page.
All accepted behavior — digit entry, operator selection, evaluation, clearing, and the display of the running expression and result — is owned by the Calculator page. Arithmetic is computed in the browser; the shared backend and database are provisioned infrastructure that the current requirements do not exercise for calculation or persistence. There is no future-horizon requirement in the accepted thread; the product is complete at one page.
The design language (industrial labeled-object aesthetic, quoted micro-labels, hazard-tape stripes, oversized wordmark) is presentation only and adds no behavior, page, or destination.
The single page of the product. Anonymous public entry; no navigation, no other destinations.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
States
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.
FR-2 — Number entry (explicit) As a Calculator User, I should enter digits (0–9) and a decimal point, so that I can build the number I want to calculate with.
FR-3 — Operator selection (explicit) As a Calculator User, I should select an operator (+, −, ×, ÷), so that I can combine numbers in an expression.
FR-4 — Evaluation (explicit) As a Calculator User, I should press equals to evaluate my expression, so that I get the correct result.
FR-5 — Clear current entry (explicit) As a Calculator User, I should press clear (C) to clear the current entry, so that I can correct a mistyped number without losing the rest of the calculation.
FR-6 — All-clear reset (explicit) As a Calculator User, I should press all-clear (AC) to reset the whole calculation, so that I can start over from a clean state.
FR-7 — Running expression and result display (explicit) As a Calculator User, I should see both the running expression and the current result, so that I can confirm what I have entered and what it evaluates to.
Product context. A visitor who opens pearl-page to do quick, everyday arithmetic in a browser. They arrive with no account and no prior state; the page is the whole product.
Primary goal. Get a correct arithmetic result quickly on a single page, without leaving it or signing in.
Distinct accepted responsibilities.
Relevant inputs and decisions. Which digits to type, which operator to apply, when to evaluate, and whether to correct (C) or restart (AC). The user decides when a calculation is finished.
Interactions with other participants. None. The Calculator User is the only active human persona; there is no counterparty, recipient, or approver in the accepted scope. Arithmetic is computed in the page.
Observable success. The result line shows the correct evaluated value for the entered expression, the expression line reflects what was entered, and the user can clear and start a new calculation at any time — all without leaving the page.
Failure/recovery. If the user enters an incomplete expression (for example a trailing operator) and presses equals, the page does not crash; the display shows a valid state or error indication, and the user continues by entering a number or pressing AC to reset.
Failure/recovery. Pressing clear on an empty entry leaves the display in a valid state; the user simply continues.
Failure/recovery. If the display showed an error (for example division by zero), AC restores a usable calculator and the user proceeds.
The creative direction is authoritative for this section: Remixed familiarity for a calculator that feels like a labeled object, muse Virgil Abloh — a utilitarian tool treated as an industrial, labeled object rather than a generic rounded-keypad app.
Mode: dark.
Colour tokens (exact hex by role)
#1B1B1B (charcoal ground)#2A2A2A (raised keypad surface / calculator plate)#F4F2ED (ink-white for digits and labels)#FF4B00 (safety orange — the single hot accent, reserved for the equals key, operator row, and the tape stripe)#FFD400 (hazard yellow — only in quoted micro-labels and the ticker)#8C8C8C (secondary metadata)Orange and yellow together occupy under 10% of the frame; the page is mostly dark industrial grey so the accents read as warning-tape signals.
Typography
0.08em tracking, used for the oversized quoted wordmark and section labels.clamp(48px, 12vw, 144px); keypad numerals clamp(22px, 4vw, 32px); micro-labels 12px uppercase.Shape language. Industrial hard edges with 2px corners. Keys are flat rectangular plates with 1px hairline borders and no shadow; the equals key is a solid orange block. Hazard-tape stripes (diagonal orange/black) frame the keypad. Exposed grid lines and a thin bounding frame around the whole calculator make it read as a labeled, manufactured object.
Layout. Single page, centred vertical stack on dark ground. Top-left is a small quoted brand tag 'PEARL-PAGE'. The hero is an oversized two-line wordmark 'CALCULATOR' set flush-left, with a ticker tape beneath it. The calculator itself is a wide plate on the right of the desktop grid (stacked below on mobile), with a full-width display strip showing the running expression on top and the result in large numerals below, then a 4-column keypad. Everything sits inside a visible 1px frame with corner registration marks.
Imagery. No photography. The visuals are the type itself, hazard-tape stripes, exposed grid lines, registration marks, and quoted labels — an industrial packaging aesthetic. The calculator plate is the hero object, treated like a product on concrete.
Avoid. Rounded pill buttons and soft drop shadows; blue or indigo accents on a white ground; gradient blobs or glassmorphism panels; Inter, Roboto, Poppins, or system-ui; bouncy spring animations; photographic hero imagery; identical hover-lift cards in a grid; decorative illustration or clip art. The generic indigo/blue-on-white SaaS template is forbidden.
Readability constraint. Headlines, wordmarks, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example clamp(...) with its mobile size) to fit; no other element covers any part of them. Decoration and motion may be cropped or bled off an edge, but never over readable text or controls.
The public entry is a dark industrial first screen built around the calculator as a labeled object.
#F4F2ED) spans the viewport width flush-left, with the word repeated as a hazard-striped ticker tape running edge-to-edge directly beneath it.#2A2A2A) rectangle with a 1px hairline frame, corner registration marks, and a small quoted 'PEARL-PAGE' tag top-left.#FF4B00) equals key anchors the bottom-right as the only hot block.'+', 'C', 'AC') as a quoted-label motif.No centred headline, no gradient, no blue button. The concept recomposes only accepted content and controls — the display, the keypad, and the labels — and introduces no new behavior or destination.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, the ticker becomes a static wrapped row and key presses only change colour (no 1px depression, no vertical slide), keeping every item fully readable.prefers-reduced-motion with a usable static arrangement (ticker as a static wrapped row; key presses change colour only).backend (FastAPI), database (MariaDB), frontend (React).

No comments yet. Be the first!