mammoth-start is a simple, single-page calculator design. The product intent is a small, self-contained arithmetic utility presented as one page: a visitor opens the page, enters numbers and operations, and sees the computed result. The design is deliberately simple and confined to a single page.
The audience is anyone who needs quick arithmetic — students, shoppers, freelancers, and curious tinkerers — arriving casually and expecting fast, legible, unambiguous numeric entry. The page is a public, anonymous utility: no account, no sign-in, no saved history is required by the source.
The visual intent is a colour-saturated poster rather than a conventional utility widget: a hot-pink calculator card on a warm apricot ground, oversized Archivo Black numerals, and a lime accent reserved for the equals key and the live operator chip.
mammoth-start is delivered as a single custom page, Calculator, which is the anonymous public entry surface and the only page in the product. The page owns number entry, operator selection, computation, and display of the result.
Actors
Accepted behavior
Narrow exclusions
The product is a first-party, browser-delivered single page. Access is anonymous and public: the Calculator page is reachable without identity establishment, and no protected state exists, so no sign-in, invitation, or provisioning flow is part of the product. All arithmetic state is transient within the page session; nothing is stored or resumed across visits.
The current delivery horizon contains only the single-page calculator described above. Nothing in the source establishes future features; no future section is therefore required, and no adjacent calculator capabilities are in scope.
Not applicable — no reference directive supplies a content_source.
The single page of the product, and the anonymous public entry. It presents the calculator as a poster-like object and owns all arithmetic interaction.
Information and state
Primary actions
Supporting actions and elements
Domain entities
Component responsibilities
clamp(64px, 18vw, 176px); scales or wraps so no digit leaves the card at 375px, 768px, or 1280px.prefers-reduced-motion; indicates the live operator.States
0; no operator chip active; keypad ready.0 state so the user can continue. (Required inference: a visible, recoverable error state is indispensable for a usable calculator.)FR-1 — Single-page calculator presentation (explicit) As a Calculator User, I should see the calculator presented on one page, so that I can perform arithmetic without navigating anywhere.
FR-2 — Simple design (explicit) As a Calculator User, I should encounter a simple design, so that the calculator is immediately understandable and fast to use.
FR-3 — Digit entry (required_inference) As a Calculator User, I should press digit keys 0–9 to enter a number, so that I can build the operand I want to calculate.
0.FR-4 — Decimal entry (required_inference) As a Calculator User, I should press the decimal point key to enter fractional values, so that I can calculate with non-integers.
FR-5 — Operator selection (required_inference) As a Calculator User, I should select an operator (÷, ×, −, +, %), so that I can specify the operation to perform.
FR-6 — Compute and display result (required_inference) As a Calculator User, I should press the equals key to compute the result, so that I see the answer to my arithmetic.
0.FR-7 — Clear and reset (required_inference) As a Calculator User, I should press the Clear key to reset the calculator, so that I can start over after a mistake or a completed calculation.
0; the pending operator and live operator chip are cleared.FR-8 — Live operator indication (required_inference) As a Calculator User, I should see the currently selected operator highlighted in the chip rail, so that I know which operation is pending.
Product context. A casual, everyday user — a student checking a sum, a shopper totalling a basket, a freelancer working out a rate, or a curious tinkerer — who arrives at the page with a quick arithmetic need and no intention of creating an account or returning to saved work.
Primary goal. Enter numbers and an operation and see the correct computed result quickly and unambiguously.
Distinct accepted responsibilities.
Relevant inputs and decisions. Which digits to enter, which operator applies, and whether to continue from a result or clear and start again. The user decides when a calculation is complete.
Interactions with other participants. None — the Calculator User is the only active human participant, and computation happens within the page. There is no counterparty, recipient, or beneficiary whose state changes.
Observable success. The display shows the entered digits as they are pressed, the live operator chip reflects the selected operation, and the computed result appears in the oversized display. A mistake is recoverable via Clear, and the calculator remains usable at 375px, 768px, and 1280px with all digits, labels, and keys fully visible.
What makes this role distinct. The role is defined by direct, transient numeric manipulation with immediate visual feedback — there is no data to manage, no other party to coordinate with, and no state that outlives the page session.
0 and no operator chip is active.0 and start again.0 and the pending operator and live operator chip are cleared.0 state with no pending operator.clamp so no digit leaves the card.prefers-reduced-motion enabled, the chip rail wraps into a static row and all animation collapses to a static arrangement; entry and computation behave identically.Muse and headline. Jessica Walsh — Arithmetic with swagger: a calculator that feels like a colour-saturated poster.
Mode. Light mode only.
Colour tokens (exact hex by role)
#FFE9D6 (warm apricot-cream)#FF6FB5 (hot pink)#1A1033 (near-black plum)#FF6FB5 (hot pink)#C6F24E (lime) — reserved exclusively for the equals key and the live operator chip#FF8A3D (tangerine) — only as a flat colour block behind the display and as the offset shadow behind the card#7A6A85Contrast rules. Text on pink is plum at ≥7:1; text on cream is plum at ≥12:1; the lime equals key uses plum type, never white. No violet, no blue, no gradients.
Typography
clamp(64px, 18vw, 176px); wordmark clamp(28px, 6vw, 56px) (hero wordmark clamp(56px, 12vw, 140px)); key labels clamp(20px, 4.5vw, 28px); body clamp(15px, 1.6vw, 17px); micro-label 12px uppercase with +0.14em tracking. 1.25 rhythm between steps.Shape language. Fat rounded rectangles and pill keys with 28–40px radii; one oversized organic blob bleeding off the top-right; hard flat colour fields with no gradients; sticker-like circular operator chips overlapping the display's bottom edge by 12px; a chunky 3px plum outline on the calculator shell instead of a shadow.
Layout. Asymmetric two-zone composition on desktop: left column with the oversized wordmark, the one-line promise "start counting", and the operator chip rail; right column with the calculator as a single tall pink card (max-width 420px) with display on top and a 4×5 keypad beneath. On tablet the zones stack with the wordmark above the card. On mobile (375px) the calculator becomes the page: wordmark shrinks to a single line above the card, keys stay ≥56px tall with 10px gutters, and the display numeral scales via clamp so no digit leaves the card. Nothing overlaps readable text or any key at any width.
Imagery style. No photography. Typographic and geometric only: a single oversized flat hot-pink blob on the apricot ground bleeding off the top-right; a lime sticker circle with a hand-drawn asterisk near the wordmark; a tangerine rectangle peeking 14px from behind the calculator card as an offset colour-block shadow. All decoration sits behind or beside content and never covers digits, labels, or keys.
The first screen is a colour-blocked poster, not a SaaS hero. A hot-pink calculator card (max-width 420px on desktop, full-bleed within 16px gutters on mobile) is anchored to the right third of the viewport, outlined in 3px plum ink, sitting on a warm apricot ground. To its left, an Archivo Black wordmark MAMMOTH set at clamp(56px, 12vw, 140px) runs edge-to-edge in plum, with the line "start counting" in Syne beneath it and a lime equals-sticker circle overlapping the wordmark's final letter. A giant hot-pink blob bleeds off the top-right corner behind the card; a tangerine block peeks out 14px to the card's left. There is no centred headline, no subtext stack, and no blue button — the calculator itself is the hero, presented like a printed poster object.
The signature moves are: the oversized Archivo Black wordmark with its lime asterisk sticker; the calculator as a single fat pink card with a 3px plum outline and a 14px offset tangerine colour-block shadow; the display numeral in Archivo Black at clamp(64px, 18vw, 176px) with tabular figures as the loudest element on the page; the slow marquee rail of lime operator chips (÷ × − + %) above the keypad acting as both decoration and live operator indicator; and the giant hot-pink blob drifting behind the card.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
Landing Hero Motion Brief
0 are all fully composed and legible; the blob sits behind the card at the top-right; the chip rail is mid-marquee above the keypad.prefers-reduced-motion, everything collapses to a static arrangement: the blob stops drifting, the chip rail wraps into a static row instead of scrolling, and key presses and result swaps occur without animation. All content remains fully readable and every key remains usable.clamp(...) to fit. No element covers any part of readable text or a control. Decoration may bleed, crop, or overlap only imagery and decoration.prefers-reduced-motion, a usable static arrangement is provided: the chip rail wraps into a row and all animation is removed.clamp() type scale, and prefers-reduced-motion media queries. (Default — not specified by user.)No database, queue worker, or Kubernetes deployment is required by the accepted scope.
Constraints (explicit)
Assumptions (narrow, labeled)
Out of scope


No comments yet. Be the first!