autumn-simple is a single-page browser calculator. The product intent, taken directly from the authoritative requirement thread, is to create a simple single-page calculator design: one page, one arithmetic object, nothing else. The user asked for a design of a calculator, and the accepted scope is exactly that — a four-function calculator delivered as a single page.
The audience is anyone who needs four-function arithmetic in under five seconds: students, shoppers, cooks, engineers checking a figure. The tool is a utility object, not a product. It should feel like a well-made household object the visitor already knows how to use, not an application that wants to be noticed. The project name autumn-simple supplies a warm, restrained, seasonal register — paper, unbleached cotton, a single fallen-leaf accent — without becoming decorative.
This document specifies the calculator's behavior, its single page, its one accepted persona, its visual language, and its delivery boundary.
autumn-simple is a client-side, single-page calculator. The visitor arrives at the page, sees a calculator object on a warm paper ground, enters numbers and operators, reads the running expression and the computed result, and clears the current calculation to begin a new one. There is no navigation bar, no footer columns, no marketing sections, and no additional pages.
Actors
Accepted behavior
Ownership
All accepted behavior is owned by the application's single page. There is no provider-owned surface, no external destination, and no headless delivery. Arithmetic is computed in the browser; no server round-trip is required for any accepted capability.
Narrow exclusions
Delivery. autumn-simple is delivered as a single first-party page rendered in the browser. The calculator object is the whole page. There is no separate backend service, no API, and no server-side computation: the arithmetic is performed by the browser runtime as the visitor interacts with the object. Nothing about the accepted behavior requires a network call, a database, or a background worker.
Access. The page is openly reachable. No identity is established, no sign-in is required, and no protected state exists. The visitor's calculation lives only in the page's memory for the duration of the visit; reloading the page clears it. Because no durable, actor-specific state, commitment, entitlement, or value transfer is created, application-owned identity is neither required nor introduced.
Current boundary. Everything specified in this document is current: the single page, the calculator object, the four functions, the two-tier readout, the keypad, the keyboard support, the hint strip, and the tactile feedback.
Future boundary. Nothing in the authoritative requirement thread asks for a future capability. No future section is created, because inventing one would add scope the user did not request.
Not applicable. No reference directive in this request declares a content_source, so no source content inventory is produced.
The page contract is exact and contains one page. It is represented once below.
The single page of autumn-simple. It is the public entry surface and the calculator itself; there is no separate entry screen, no gate, and no second destination. The visitor arriving at the root lands directly on the calculator object.
Information and state
AUTUMN · CALCULATOR, 18px, Jost 300–400, wide-tracked small caps. Sits above the object.Four functions, one page, nothing else. One line of body copy beneath the wordmark.128 ÷ 4), right-aligned, muted (#8C857A), small. Empty on first load.clamp(40px, 9vw, 72px), ink (#2A2723). Shows 0 on first load.Primary actions
0 with an empty expression line.Supporting actions
., +, -, *, /, Enter, and Escape on a physical keyboard; these map to the same behavior as the corresponding keys.Domain entities
Component responsibilities
0 18px 40px rgba(42,39,35,0.08)).AC ± % ÷ / 7 8 9 × / 4 5 6 − / 1 2 3 + / 0 spanning two columns, decimal, equals. Keys at 16px radius; the equals key is the single full capsule and the only saturated element on the page.States
0, expression line is empty, no operator is armed.Each requirement is a distinct story point with its provenance and observable acceptance.
FR-1 — Single-page delivery (explicit) As a Calculator User, I should reach the calculator on one page with no other pages, so that the tool is exactly as simple as it was asked to be.
FR-2 — Digit entry (explicit) As a Calculator User, I should press digit keys 0–9 to build the number I want to calculate with.
FR-3 — Decimal entry (required_inference) As a Calculator User, I should press the decimal key to enter a fractional number.
. key.FR-4 — Operator selection and armed state (explicit) As a Calculator User, I should press one of ÷, ×, −, + to choose the operation, and see which operator is armed.
FR-5 — Evaluation with equals (explicit) As a Calculator User, I should press equals to compute the result of my expression.
Enter key.FR-6 — Two-tier readout (explicit) As a Calculator User, I should see a small muted expression line above a large result numeral, so that I can read both what I asked and what came back.
0.FR-7 — Clear the calculation (explicit) As a Calculator User, I should clear the current calculation to begin a new one.
Escape key.0, the expression line empties, and no operator remains armed.FR-8 — Sign change (explicit) As a Calculator User, I should press ± to change the sign of the current entry.
FR-9 — Percent (explicit) As a Calculator User, I should press % to apply percent to the current entry.
FR-10 — Keyboard support (explicit) As a Calculator User, I should be able to use my physical keyboard instead of the on-screen keys.
., +, -, *, /, Enter, and Escape.FR-11 — Tactile key feedback (explicit) As a Calculator User, I should feel a key respond when I press it, so that the object feels like a physical thing.
prefers-reduced-motion, the depression is replaced by a 1px border-colour change and the cross-fade becomes an instant swap; the calculator remains fully usable.FR-12 — Hint strip (explicit) As a Calculator User, I should see the three quiet hints beneath the object so I know what the page supports.
FR-13 — In-memory calculation state (required_inference) As a Calculator User, I should have my current calculation held for the life of the page and discarded when I reload.
Product context. The Calculator User arrives at the page with a number in mind and a small piece of arithmetic to do. They are not shopping for a tool, not evaluating a product, and not looking for a workspace. They want the answer in seconds and then they want to leave. The page is a tabletop with one object on it.
Primary goal. Perform a four-function calculation quickly and read a result that matches the arithmetic they intended.
Distinct accepted responsibilities. This persona is the only active human actor, and their work is narrow and complete: enter digits and a decimal point to build an operand; select one of ÷, ×, −, + and see which operator is armed; press equals to evaluate; read the two-tier readout; use ± and % on the current entry; clear the calculation with AC or Esc to start again; and use the physical keyboard instead of the on-screen keys when that is faster.
Relevant inputs and decisions. The digits and operators they press or type; whether to correct an entry with AC or continue from the current result; whether to use the keyboard or the pointer. Their one real decision is whether the displayed result is the answer they wanted.
Interactions with other accepted participants. There are no other accepted human participants. The Calculator User's only counterpart is the browser runtime, which evaluates the expression and holds the calculation state for the life of the page. No handoff to another person, provider, or external service occurs.
Observable success. The result numeral shows the value the visitor intended, the expression line shows what was evaluated, and the calculation can be cleared and restarted without friction. The visitor's work is complete when they have read the answer; nothing is saved, sent, or shared.
What makes this role different. The role is defined by speed and disappearance. There is no account, no history to manage, no collaboration, and no configuration. The measure of success is that the visitor never has to think about the tool at all.
AUTUMN · CALCULATOR and the line Four functions, one page, nothing else. sit above it; the result numeral shows 0 and the expression line is empty.1, 2, 8. Each key depresses 1px and returns; the result numeral updates to 128.÷. The key fills with the burnt-sienna accent and stays filled; the expression line shows 128 ÷ and the operator is armed.4. The accent fill clears as the new number is entered; the result numeral shows 4.32 and the expression line shows 128 ÷ 4.32 and the expression that produced it.32 or presses AC to begin again.Escape on the keyboard. The result numeral returns to 0, the expression line empties, and no operator remains armed.9, *, 7, Enter.* arms multiplication and fills the × key with the accent, and Enter evaluates.63 and the expression line shows 9 × 7.Escape to clear, or continues typing.250 and wants ten percent off.%. The current entry is converted to its percent value and the result numeral reflects the change.±. The sign of the current entry toggles and the result numeral reflects the change.% or ± with no entry leaves the state unchanged rather than producing an error.8, presses ÷, enters 0, and presses equals.8 ÷ 0.Escape and begins a new calculation.0, empty expression line, no armed operator.The creative direction is authoritative for this section. It names Naoto Fukasawa and his super normal language as the muse, with the headline idea that a browser calculator is a utility object, not a product: an object whose design disappears into use, with obvious affordances, calm proportions, and no styling for its own sake. The project name autumn-simple adds a warm, seasonal, restrained register — paper, unbleached cotton, a single fallen-leaf accent — without becoming decorative.
Palette (light mode)
| Role | Hex | Use |
|---|---|---|
| Background | #F4F1EA | Unbleached paper ground; fills the viewport |
| Surface | #FBF9F4 | The calculator body, sitting on the paper like a physical tile |
| Text | #2A2723 | Ink: display numerals and the result |
| Primary | #3A3733 | Soft dark blocks for the digit keys |
| Accent | #C25A2E | Burnt sienna; the equals key and the one live operator state — nowhere else |
| Muted | #8C857A | Secondary labels, the expression line, hairline rules |
Proportion. 70% paper ground, 20% ink/dark key blocks, 8% light surface, 2% accent. The accent is the only saturated colour on the page.
Typography
CALCULATOR), never shouting.clamp(40px, 9vw, 72px); key numerals 26px; wordmark 18px; label 12px caps with 0.14em tracking; body 16px / 1.6.Shape language. Rounded blocks with continuous curves: keys at 16px radius, the calculator body at 28px, the display tray at 20px. No blobs. No pills except the single equals key, which is a full capsule. Soft 1px borders in a warm grey, and a single low, wide shadow under the calculator body — 0 18px 40px rgba(42,39,35,0.08) — so it sits on the paper like an object, not a floating card.
Layout. A single centred column on the paper ground. The calculator object is the whole page: a 360px-wide body at 375px viewport, 420px at 768px, 460px at 1280px, vertically centred with generous breathing room above and below. Inside: the display tray at the top (right-aligned running expression in muted, large result beneath in ink), then a 4-column keypad grid with 12px gutters in a fixed order — AC ± % ÷ / 7 8 9 × / 4 5 6 − / 1 2 3 + / 0 spanning two columns, decimal, equals. Above the object, a single wide-tracked wordmark AUTUMN · CALCULATOR and one line of quiet copy; below it, three tiny hairline-separated hints. No navigation bar, no footer columns, no marketing sections.
Imagery. None. The interface is the image. The only visual incident is the paper texture of the ground (a very faint 2% noise, or nothing at all) and the single burnt-sienna accent on the equals key. No illustrations, no icons beyond the four operator glyphs and the ± and % characters set in the same type as the numerals.
Avoid. Any blue or indigo primary or accent (#0057FF, #2563EB, #4F46E5, #6366F1, #7C3AED and neighbours) on a white ground; Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, or system-ui for headings or numerals; gradient-blob backgrounds, glassmorphism panels, frosted cards, and hover-lift tiles; a centred marketing hero with a headline, subheadline, and coloured CTA above the calculator; neumorphic soft-extruded keys, drop-shadowed circular buttons, and skeuomorphic LCD textures; dark mode by default, neon accents, or more than one saturated colour anywhere on the page; entrance animations, counting-number flourishes, parallax, or any motion beyond the 1px key press; additional pages, navigation bars, footers, or any section that is not the calculator object and its hint strip.
Readable text and controls. Headlines, the wordmark, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Decoration and motion may be cropped or bled off an edge as the direction asks, as long as they cover no readable text or control.
The tabletop. The first screen is not a hero in the marketing sense — it is a tabletop. A warm unbleached-paper ground (#F4F1EA) fills the viewport. Dead centre sits one rounded calculator object, 360–460px wide, softly shadowed, its display tray showing 0 in 40–72px Jost Light, right-aligned, with an empty muted expression line above it. The wordmark AUTUMN · CALCULATOR sits above the object in 18px wide-tracked caps, and a single line of body copy — Four functions, one page, nothing else. — sits beneath it. The equals key is the only saturated element on the screen: a burnt-sienna capsule at the bottom-right of the grid. There is no gradient, no blob, no centred marketing headline, no blue button; the composition reads as a photographed object on a sheet of paper.
Signature moves
128 ÷ 4) above a large Jost Light result numeral with tabular figures, right-aligned like an instrument, not a headline.Interaction Model: Static (direction) Motion Tempo: still Hero Dimensionality: flat
The creative direction sets the tempo at the muse's ceiling: still, with only tactile key feedback. This section copies that tempo rather than re-deciding it.
Landing Hero Motion Brief
0 in Jost Light with an empty muted expression line above it; the keypad in its fixed order with the burnt-sienna equals capsule at the bottom-right; the three-line hint strip beneath.prefers-reduced-motion, the key depression is replaced by a 1px border-colour change and the result cross-fade becomes an instant swap. The calculator remains fully usable and the composition is unchanged.No 3D or WebGL scene is requested by the user and the direction's hero dimensionality is flat, so no Canvas, R3F, or Drei requirement is introduced.
NFR-1 — Single-page constraint (explicit) The design must be a single page. The product is delivered as one page with no additional pages, navigation bars, footers, or any section that is not the calculator object and its hint strip.
NFR-2 — Responsive integrity (explicit) Headlines, the wordmark, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no other element covering any part of them.
NFR-3 — Reduced motion (explicit)
With prefers-reduced-motion, the key depression is replaced by a 1px border-colour change and the result cross-fade becomes an instant swap, with the calculator fully usable.
NFR-4 — No persistence (explicit) The calculation is held in page memory only and is cleared on reload. No storage, no account, and no server-side state is used.
NFR-5 — No network dependency for arithmetic (required_inference) The four functions are computed in the browser; no server round-trip is required for any accepted capability.
NFR-6 — Accessibility of the readout and keys (required_inference) The result numeral and expression line are readable text, and every key is an operable control with a visible pressed state; keyboard input is a first-class alternative to pointer input.
NFR-7 — No saturated colour beyond the accent (explicit)
The burnt sienna (#C25A2E) is the only saturated colour on the page, used only on the equals key and the one live operator state.
The authoritative requirement thread does not name a technology. The following are the minimal, coherent choices for a single-page client-side calculator, labelled as defaults.
[Default — not specified by user][Default — not specified by user][Default — not specified by user][Default — not specified by user]No backend service, queue worker, container orchestration, or additional infrastructure is introduced, because no accepted capability requires server-side behavior.
Assumptions
clamp(), and prefers-reduced-motion. [Default — not specified by user][Default — not specified by user]Constraints
0 with an empty expression line and no armed operator. Equivalent to the Escape key.128 ÷ 4.AC ± % ÷ / 7 8 9 × / 4 5 6 − / 1 2 3 + / 0 spanning two columns, decimal, equals.No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!