sapphire-website is a public website for a retail business. The product intent is a single, publicly accessible web presence that represents a retail business to the general public: a shop-front on the web that introduces the business and presents its information to any visitor, with no account required. The audience is twofold: the retail business owner, who needs the business to have a credible, tasteful public presence online, and the retail shopper or visitor, who arrives cold and wants to learn about the business and what it offers.
The scope is deliberately narrow. The authoritative requirement thread specifies only that this is a website for a retail business, that it is publicly accessible to visitors without an account, and that no further scope, features, or audience details were specified. This document therefore describes exactly one current page — the Landing page — and does not add catalogue browsing, checkout, cart, account, or administrative capabilities that the source did not request.
sapphire-website is delivered as a first-party, publicly reachable website. Its current delivery shape is a custom user interface owned by the application, with a single public entry surface. There is no authenticated area, no account creation, and no provider-owned or external destination in the current scope.
The accepted actors are:
The accepted behavior is: a public Landing page that introduces the retail business and presents its information to visitors without an account. The Landing page is the public entry surface and is reachable anonymously; it is the only page in the current information architecture.
Narrow exclusions: no account creation or sign-in, no shopping cart, no checkout or payment, no order management, no inventory or product administration, no customer accounts, and no private or role-restricted areas. These are excluded because the authoritative source did not request them and the explicit constraint states that no further scope, features, or audience details were specified.
The product is a public storefront website. Everything a visitor needs is available without establishing an identity: the site opens directly onto the Landing page, and the visitor can read the business's public information immediately. Because no accepted journey requires a visitor to privately own, resume, or return to durable actor-specific state, and because no commitment, decision, entitlement, or value transfer must remain bound to a particular participant, no application-owned identity is introduced. Access to the Landing page is anonymous by design and by explicit requirement.
The Retail Business Owner's relationship to the site is that of the party the site represents: the site exists so the business is discoverable and credible online. The current scope covers the public-facing presentation of that business. Any tooling for the owner to edit content, manage products, or administer the site is outside the current delivery boundary and is not described here.
Future work is kept out of the current pages and acceptance criteria; see Section 11 for the labeled future horizon.
No reference directive in this project declares content_source authority, so no source content inventory is included. The authoritative thread supplies no verified factual entities, collections, fields, values, dates, contacts, links, or media references to preserve. Business-specific facts (name, founding year, product names, prices, photography) are not present in the source and must not be invented as authoritative content; where the design direction references such elements, they are treated as presentation placeholders to be filled by the owner, not as verified facts.
The Landing page is the public entry surface of the retail business website. It is reachable without an account and is the only page in the current information architecture. It introduces the retail business and presents its public information to any visitor.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
clamp(40px, 12vw, 180px); stacked in three flush-left lines spanning the viewport width.prefers-reduced-motion it stops and wraps into whole rows.States
FR-1 — Public website for a retail business (provenance: explicit) As a Retail Business Owner, I should have a public website for my retail business so that the business is represented online.
FR-2 — Anonymous public access (provenance: explicit) As a Retail Shopper / Visitor, I should view the business's public information without creating an account so that I can learn about the business immediately.
FR-3 — Business introduction on the public entry (provenance: required_inference) As a Retail Shopper / Visitor, I should see who the business is as soon as the site opens so that I know I am in the right place.
FR-4 — Presentation of the business's public information (provenance: required_inference) As a Retail Shopper / Visitor, I should read the business's public information so that I can decide whether the business is relevant to me.
FR-5 — Product presentation with names and prices (provenance: required_inference) As a Retail Shopper / Visitor, I should see the business's products with their names and prices so that I can learn what the business offers.
FR-6 — "New in" rail with full reachability (provenance: required_inference) As a Retail Shopper / Visitor, I should browse the newest items in a scrolling rail so that I can see what is new without leaving the page.
prefers-reduced-motion the rail stops and lays its items out as whole wrapped rows; alternatively the items sit in a horizontally scrollable row whose further items are reached by scrolling.FR-7 — Product card hover state (provenance: required_inference) As a Retail Shopper / Visitor, I should see a second view of a product when I hover it so that I can inspect it more closely.
Product context. The owner runs a retail business and needs it to exist credibly on the web. The site is the business's public face: it is what a cold visitor finds when they look the business up, and it has to read as a storefront with a point of view rather than a brochure.
Primary goal. The retail business has a working public website that presents it to its audience, so the business is discoverable and credible online.
Distinct accepted responsibilities. The owner is the party the site represents and the party accountable for the site's public-facing content. The owner's recurring responsibility is establishing and maintaining that public-facing content so the business is discoverable and credible online. The owner is not a visitor of the site in this scope, and no content-editing, product-management, or administrative interface is part of the current delivery.
Relevant inputs or decisions. What the business is called, how it positions itself, what it offers, what its products are called, what they cost, and which imagery represents them. These are the owner's inputs; the source does not specify how they reach the site, so no editing surface is claimed.
Interactions with other accepted participants. The owner's work is what the Retail Shopper / Visitor encounters. The owner's success is observable precisely through the visitor's experience: a visitor arriving cold can see the business, read about it, and see its products.
Observable success. A visitor can open the site's public address, immediately see the business's name and positioning, read its public information, and see its products with names and prices — all without an account.
Product context. A member of the public who arrives at the retail business's website cold, typically from a search or a link, with no prior relationship to the site and no intention of creating one. They are evaluating whether this business is worth their attention.
Primary goal. Learn about the business and what it offers, and be able to view the business's public information without needing an account.
Distinct accepted responsibilities. Browsing the site's public pages to find information about the business. The visitor's work is entirely read-oriented and entirely anonymous: there is nothing to sign up for, nothing to configure, and no state to manage.
Relevant inputs or decisions. Whether the business looks credible and interesting enough to keep reading; whether a product's name and price are legible; whether to keep scrolling or leave.
Interactions with other accepted participants. The visitor is the audience for the Retail Business Owner's public presentation. Every element the visitor sees is the owner's representation of the business.
Observable success. The visitor can view the business's public information without needing an account, and can read every product name and price in full at whatever viewport they use.
The creative direction is authoritative for this section. Muse: Tobias van Schneider. Headline: Editorial swagger for a retail house — black-and-bone, one hot vermilion, type at poster scale.
Colour tokens (light mode)
| Role | Hex | Usage |
|---|---|---|
| Background (bone paper) | #F4EFE7 | Carries ~65% of every screen |
| Surface | #FFFFFF | Reserved for product cards and checkout-ish surfaces so goods read as lit objects |
| Text / primary | #0E0E0E | Type, rules, and the full-bleed black bands (~25%) |
| Accent | #E8341C | Single hot accent — at most three times per screen: the primary CTA, the price/"new" flag, and one hairline rule |
| Muted | #8A8175 | Metadata, captions, disabled states |
No blue anywhere. No gradients. No glass.
Typography
-0.03em, leading 0.88, set as full-width poster lines that fill the viewport edge to edge.+0.16em tracking; numbers use tabular figures.clamp(40px, 12vw, 180px) — mobile floor 40px, desktop ceiling 180px.Shape language
#0E0E0E border and a hard 4px vermilion offset edge on hover.Layout
Imagery
Accessibility of the visual system. Readable text and controls stay whole at every viewport. Headlines, wordmarks, labels, numbers, cards' text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, and no other element covers any part of them. Imagery, decoration, and motion may be cropped, bled off an edge, rotated, overlapped, or cut exactly as the direction asks, as long as they cover no readable text or control. Where the direction asks readable text or a control to be cropped or run off an edge, the text or control is kept whole and the gesture is carried by imagery or decoration instead.
The storefront sign.
The public entry is a full-viewport first screen on bone paper #F4EFE7. The dominant element is the wordmark-scale headline set in Archivo Black at clamp(40px, 12vw, 180px), stacked in three flush-left lines that span the entire viewport width and touch both edges. The type is the hero — not a headline above an image. A single vermilion #E8341C hairline rule sits under the last line.
To the right, occupying columns 8–12 and bleeding past the right edge, one tall editorial product photograph cropped at the shoulder. Beneath the type, a single solid-ink rectangular CTA button and a small uppercase kicker in muted taupe #8A8175.
There is no centred stack, no sub-headline paragraph, no blue button, and no gradient blob. The composition reads as a shop sign painted across the front of a building: the business's name at architectural scale, one object of desire beside it, and one instruction.
The concept recomposes only accepted content — the business's name, its positioning line, its primary call to action, and its product imagery. It introduces no new behavior, page, or destination.
Interaction Model: Static Motion Tempo: restrained Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion stops the "new in" rail and lays its items out as whole wrapped rows; the hero headline appears in its final position without the rise-and-stagger reveal. All content remains fully readable and every control remains reachable.NFR-1 — Public accessibility without an account (provenance: explicit) The website is publicly accessible to visitors without an account. No page in the current scope may present a sign-in, registration, or credential step. Rationale: this is an explicit requirement in the authoritative thread.
NFR-2 — Readable text and controls stay whole (provenance: explicit — creative direction) Headlines, wordmarks, labels, numbers, cards' text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, and no other element covers any part of them. Rationale: the creative direction states this rule takes precedence for readable text and controls.
NFR-3 — Moving and scrollable content remains fully reachable (provenance: explicit — creative direction)
Moving and scrollable content may cross the viewport or container edge by design and is judged by whether it actually moves or scrolls and whether every item becomes fully readable as it passes. With prefers-reduced-motion it stops and shows whole items, wrapping into rows or sitting in a horizontally scrollable row whose further items are reached by scrolling. Rationale: the creative direction's reachability rule for the "new in" rail.
NFR-4 — Reduced-motion support (provenance: explicit — creative direction)
The site honors prefers-reduced-motion: the "new in" rail stops and wraps into whole rows, and the hero type reveal is suppressed in favor of the final composed frame. Rationale: the creative direction specifies this behavior.
NFR-5 — No blue, no gradients, no glass (provenance: explicit — creative direction)
The only accent is vermilion #E8341C. No blue, indigo, or violet accent; no white or near-white dominant background; no rounded corners, pill buttons, soft drop shadows, or glassy panels; no gradient blobs, mesh gradients, or blurred colour fields. Rationale: the creative direction's explicit avoid list, and the project-wide prohibition on the generic indigo/blue-on-white SaaS template.
NFR-6 — Typography fidelity (provenance: explicit — creative direction) Headings use Archivo Black; body uses Archivo. Inter, Roboto, Helvetica, Poppins, and system-ui are not used for headings or body. Rationale: the creative direction names the typefaces and excludes the alternatives.
NFR-7 — No invented authoritative content (provenance: explicit — constraint) The source specifies no business name, founding year, product names, prices, or imagery. These are the owner's content and must not be fabricated as verified facts. Rationale: the explicit constraint that no further scope, features, or audience details were specified.
The authoritative thread specifies no technology choices. The following are coherent defaults for a public, statically renderable retail website with the specified editorial design system.
[Default — not specified by user]clamp() for display sizing; media queries for the 375px / 768px / 1280px breakpoints. [Default — not specified by user][Default — not specified by user][Default — not specified by user]No backend, database, authentication provider, or container orchestration is required by the current scope, because the current scope is a single anonymous public page with no durable state and no identity. These are omitted rather than defaulted, since adding them would introduce capability the source did not request.
Constraints (explicit)
Assumptions (narrow, labeled)
[Assumption — not specified by user][Assumption — not specified by user][Assumption — not specified by user]Future horizon (not current scope, not in current pages or acceptance)
These are recorded as a labeled future horizon only. They are not current requirements, do not appear in the current information architecture, and are not part of current acceptance.
#F4EFE7, which carries roughly 65% of every screen.#0E0E0E, used for type, rules, and full-bleed black bands.#E8341C, used at most three times per screen.#8A8175, used for metadata, captions, and disabled states.prefers-reduced-motion — the user preference under which the "new in" rail stops and wraps into whole rows and the hero type reveal is suppressed.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!