opal-1 is a single-page personal to-do application. Its product intent is deliberately narrow: one person, one screen, one list. The user types a task into an input field, sees it appear in a list, ticks it off when done, and deletes it when it is no longer needed. The interface must be 简洁好看 — calm, spare, and quietly beautiful, closer to a stationery object on a desk than to a productivity dashboard.
The audience is a single anonymous user at a time. There are no accounts, no marketing surface, no data density, and no collaboration. The product exists to make three actions — add, complete, delete — feel fast and considered.
opal-1 is delivered as a single custom page, 待办事项, which is both the anonymous entry surface and the entire working surface of the application. The page contains:
The only active human actor is the 待办事项使用者 (to-do user). There are no other human participants, no counterparties, and no recipients of state changes. The application itself owns task state and its presentation.
Current scope is limited to adding, listing, completing, and deleting tasks, presented in a clean, attractive single-page layout. Nothing else is in scope.
The application is a first-party, single-page web experience. It is reachable anonymously: there is no sign-in, no account creation, and no identity establishment of any kind. The single page 待办事项 is the anonymous entry surface and the complete working surface; no protected destination exists, and no access boundary separates entry from use.
Task state is owned by the application and lives within the single page session. The user's tasks are created, completed, and deleted through the page's own controls, and the page reflects each change immediately. There is no cross-device sync, no sharing, and no server-side account model implied by the requirements.
Everything described in this document is current. No future-horizon capabilities are accepted; suggestions that would add adjacent features (categories, priorities, reminders, collaboration, analytics) are out of scope and are not part of this delivery.
Not applicable. No reference directive supplies a content_source.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
States
FR-1 — Single-page application As a 待办事项使用者, I should use the entire application on one single page, so that I never navigate away from my list.
FR-2 — Add a task via input field As a 待办事项使用者, I should type a task into an input field and submit it, so that it appears in my list.
FR-3 — Display tasks as a list As a 待办事项使用者, I should see all my tasks presented as a list, so that I can review what remains and what is done.
FR-4 — Mark a task complete by checking it As a 待办事项使用者, I should tick a task's completion control, so that I can record it as done.
FR-5 — Delete a task As a 待办事项使用者, I should delete a task I no longer need, so that my list stays clean.
FR-6 — Clean and attractive presentation As a 待办事项使用者, I should experience a simple, beautiful interface, so that using the app feels calm and considered.
Product context. A single anonymous person using opal-1 for themselves, one at a time. They arrive at the page with a small set of things they want to remember to do, and they want to record, track, and clear them without ceremony. There is no team, no shared workspace, and no account.
Primary goal. Quickly capture tasks, see at a glance what remains and what is done, and remove items that no longer matter — all within a single, calm, beautiful screen.
Distinct accepted responsibilities.
Relevant inputs and decisions.
Interactions with other accepted participants. None. The 待办事项使用者 is the only active human actor; no counterparty, recipient, or beneficiary exists. The application itself holds and reflects task state.
Observable success. The user can add a task in one motion, see it appear immediately, tick it off with a single click that visibly paints the row, and delete it with a single click — all on one page that feels spare and considered.
Muse and headline. Peter Saville — one exact spot colour carries the whole identity. The list is the artefact; the empty space is the interface; one exact colour codes completion.
Mode. Light mode only.
Colour tokens (exact hex by role)
| Role | Hex | Use |
|---|---|---|
| Background | #F2F0EB | Warm paper-white ground |
| Surface | #FAF9F6 | Slightly lighter card |
| Text | #111110 | Near-black ink for all type and the primary action |
| Primary | #111110 | Primary action ink |
| Accent | #D93A1E | Single spot red — completion tick, active input caret/underline, count numeral, delete glyph on hover |
| Muted | #8A857B | Metadata and completed-task strikethrough |
Proportion. ~85% paper, 13% ink, 2% red. No second accent colour. No gradients.
Typography. Archivo throughout.
-0.03em, near-flush-left.+0.18em.clamp(40px, 9vw, 72px); section label 11px uppercase tracked; task text 17px / 1.5; metadata 12px; control 14px.Shape language. Sharp corners everywhere — 0px radius on input, rows, buttons, and count chip. Structure from hairline 1px rules in ink at 12% opacity, plus one full-width 1px rule under the header spanning the column edge to edge. The only round element is the 22px completion ring (1.5px ink ring; fills solid #D93A1E with a white tick when done). No shadows, no blobs, no pills.
Layout. Single centred column, max-width 640px, generous top air (~18vh). Order: wordmark "OPAL-1" top-left of the column; large display line "今天要做的"; bare underlined input with right-aligned "添加" text button; hairline rule; list. Each row is a 56px grid: [22px tick] [task text, flush left] [delete glyph, flush right, on hover/focus]. Completed rows drop to muted colour with a 1px red strikethrough. Footer is a single metadata line: "剩余 3 · 已完成 2" in tracked uppercase. Mobile: edge-to-edge with 20px gutters. Desktop: wide margins so the silence reads as intentional.
Imagery. No photography, no illustration. The visual artefact is the typography and the colour code itself — a thin horizontal rule system like the grid on a Factory Records sleeve. Optional single decorative element: a 1px vertical rule with a small spot-red square at its base as a section marker beside the list.
The first screen is a quiet editorial wall, not a SaaS hero. Top-left of a 640px column sits the tiny tracked wordmark OPAL-1 with a 6px spot-red square before it. Below, a single oversized display line 今天要做的 set at clamp(40px, 9vw, 72px) in Archivo 700 with tight tracking, left-aligned, allowed to sit on one line at desktop and wrap to two at 375px. Under it, a bare underlined input spanning the full column with the 添加 text button anchored to the right of the rule; beneath that the list begins immediately.
The dominant element is the whitespace and the display line; the only colour on screen is the red square and the caret. The signature moves are: the 6px spot-red square as the entire brand mark (a colour swatch); the input as a printed line to fill in rather than a box; 56px grid-locked rows with a 22px ink ring that fills solid #D93A1E on completion — the only saturated colour event in the interface; a thin "×" delete glyph that only reaches full ink on hover/focus; and a single uppercase tracked metadata footer treating counts as catalogue data.
Interaction Model: Static (direction) Motion Tempo: still Hero Dimensionality: flat
Landing Hero Motion Brief
clamp(...)) to fit; no other element may cover any part of them. (Provenance: explicit design constraint.)prefers-reduced-motion, all motion collapses to instant state changes while the layout remains fully usable. (Provenance: explicit design constraint.)clamp() for the display line).access_requirement: none.)#D93A1E, used only as a code for completion, active input, count numeral, and delete-on-hover.
OPAL-1
回复工作室的邮件
把 Factory Records 的唱片归档
预约周四的牙医
读完《Unknown Pleasures》内页
给植物浇水

OPAL-1
回复工作室的邮件
把 Factory Records 的唱片归档
预约周四的牙医
读完《Unknown Pleasures》内页
给植物浇水
No comments yet. Be the first!