mirror of
https://github.com/VoltAgent/awesome-design-md.git
synced 2026-06-09 16:17:00 +08:00
650 lines
38 KiB
Markdown
650 lines
38 KiB
Markdown
---
|
||
version: alpha
|
||
name: Nintendo.com (2001) Analysis
|
||
description: An analysis of Nintendo.com's 2001 design language — a brushed-periwinkle "console chrome" interface where every panel is a beveled metal plate, navigation glows amber over a halftone-dotted carbon bar, and bold outlined display type sits on circuit-board hero fields. A Y2K hardware aesthetic that treats the web page like the faceplate of a game system.
|
||
|
||
colors:
|
||
primary: "#e60012" # Nintendo Red — racetrack logo, alert
|
||
signal: "#f68d1f" # Signal Orange — forward cues, submit, "Play It On"
|
||
amber: "#ecab37" # Amber — utility buttons, info-box tabs, badges
|
||
nav-gold: "#e48600" # Nav Gold — top-nav menu links
|
||
canvas: "#7a8aba" # Periwinkle metallic — primary interface body
|
||
canvas-soft: "#9fbee7" # Pale Sky — secondary-nav strip, light inset panels
|
||
sky: "#9fbee7" # Pale Sky alias
|
||
lavender: "#acace7" # Pale Lavender — home hero field
|
||
ice: "#c0d5e6" # Pale Ice — news hero field
|
||
periwinkle: "#8ba1d4" # Light Periwinkle — raised mid panels
|
||
chrome-indigo: "#3d4f97" # Chrome Indigo — beveled borders, tab edges
|
||
muted-indigo: "#60619c" # Muted Indigo — inactive tabs, secondary chrome
|
||
platinum: "#dedede" # Platinum Gray — list-row / inset content surface
|
||
surface: "#ffffff" # White — content cards, list-row highlight
|
||
carbon: "#21242e" # Carbon Navy — nav bar, dark buttons, footer, ink
|
||
hairline: "#5a5f8c" # blended bevel divider
|
||
ink: "#21242e" # primary text on light
|
||
ink-soft: "#3d4f97" # secondary text / chrome labels
|
||
on-primary: "#ffffff" # text on dark/red/orange chrome
|
||
systems-teal: "#206479" # Systems hero circuit-board cyan
|
||
games-red: "#a7282b" # Games F-1 racing hero
|
||
error: "#e60012" # validation / destructive (shares brand red)
|
||
|
||
typography:
|
||
nav-link:
|
||
fontFamily: Arial
|
||
fontSize: 13px
|
||
fontWeight: 700
|
||
lineHeight: 1
|
||
letterSpacing: 0.5px
|
||
ui-label:
|
||
fontFamily: Arial
|
||
fontSize: 11px
|
||
fontWeight: 700
|
||
lineHeight: 1.1
|
||
letterSpacing: 0.5px
|
||
display:
|
||
fontFamily: Arial Black
|
||
fontSize: 44px
|
||
fontWeight: 900
|
||
lineHeight: 1
|
||
letterSpacing: 0
|
||
hero-tagline:
|
||
fontFamily: Arial
|
||
fontSize: 15px
|
||
fontWeight: 700
|
||
lineHeight: 1.3
|
||
letterSpacing: 0
|
||
body:
|
||
fontFamily: Arial
|
||
fontSize: 12px
|
||
fontWeight: 400
|
||
lineHeight: 1.4
|
||
letterSpacing: 0
|
||
link:
|
||
fontFamily: Arial
|
||
fontSize: 12px
|
||
fontWeight: 700
|
||
lineHeight: 1.4
|
||
letterSpacing: 0
|
||
micro:
|
||
fontFamily: Arial
|
||
fontSize: 10px
|
||
fontWeight: 400
|
||
lineHeight: 1.3
|
||
letterSpacing: 0
|
||
|
||
rounded:
|
||
none: 0px
|
||
xs: 2px
|
||
sm: 4px
|
||
md: 6px
|
||
lg: 10px
|
||
full: 9999px
|
||
|
||
spacing:
|
||
xxs: 2px
|
||
xs: 4px
|
||
sm: 8px
|
||
md: 12px
|
||
lg: 16px
|
||
xl: 24px
|
||
xxl: 32px
|
||
section: 48px
|
||
|
||
components:
|
||
nav-bar:
|
||
backgroundColor: "{colors.carbon}"
|
||
textColor: "{colors.nav-gold}"
|
||
typography: "{typography.nav-link}"
|
||
rounded: "{rounded.none}"
|
||
padding: "{spacing.sm}"
|
||
height: 28px
|
||
subnav-strip:
|
||
backgroundColor: "{colors.canvas-soft}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.none}"
|
||
padding: "{spacing.xs}"
|
||
logo-pill:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.primary}"
|
||
typography: "{typography.display}"
|
||
rounded: "{rounded.full}"
|
||
padding: "{spacing.xs}"
|
||
button-primary:
|
||
backgroundColor: "{colors.amber}"
|
||
textColor: "{colors.carbon}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.xs}"
|
||
padding: "{spacing.md}"
|
||
button-primary-pressed:
|
||
backgroundColor: "{colors.nav-gold}"
|
||
textColor: "{colors.carbon}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.xs}"
|
||
padding: "{spacing.md}"
|
||
button-submit:
|
||
backgroundColor: "{colors.signal}"
|
||
textColor: "{colors.on-primary}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.xs}"
|
||
padding: "{spacing.lg}"
|
||
button-secondary:
|
||
backgroundColor: "{colors.carbon}"
|
||
textColor: "{colors.on-primary}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.none}"
|
||
padding: "{spacing.md}"
|
||
button-icon-arrow:
|
||
backgroundColor: "{colors.signal}"
|
||
textColor: "{colors.on-primary}"
|
||
rounded: "{rounded.full}"
|
||
size: 22px
|
||
button-arrow-chip:
|
||
backgroundColor: "{colors.signal}"
|
||
textColor: "{colors.on-primary}"
|
||
rounded: "{rounded.xs}"
|
||
padding: "{spacing.xs}"
|
||
size: 18px
|
||
search-field:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.body}"
|
||
rounded: "{rounded.xs}"
|
||
padding: "{spacing.xs}"
|
||
height: 20px
|
||
text-input:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.body}"
|
||
rounded: "{rounded.xs}"
|
||
padding: "{spacing.xs}"
|
||
height: 20px
|
||
select-dropdown:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.body}"
|
||
rounded: "{rounded.xs}"
|
||
padding: "{spacing.xs}"
|
||
height: 24px
|
||
field-label:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.link}"
|
||
rounded: "{rounded.none}"
|
||
padding: "{spacing.xxs}"
|
||
form-panel:
|
||
backgroundColor: "{colors.platinum}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.body}"
|
||
rounded: "{rounded.md}"
|
||
padding: "{spacing.lg}"
|
||
dotted-divider:
|
||
backgroundColor: "{colors.muted-indigo}"
|
||
textColor: "{colors.muted-indigo}"
|
||
rounded: "{rounded.none}"
|
||
height: 1px
|
||
hero-panel:
|
||
backgroundColor: "{colors.lavender}"
|
||
textColor: "{colors.surface}"
|
||
typography: "{typography.display}"
|
||
rounded: "{rounded.md}"
|
||
padding: "{spacing.lg}"
|
||
section-label-bar:
|
||
backgroundColor: "{colors.canvas}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.none}"
|
||
padding: "{spacing.sm}"
|
||
news-row:
|
||
backgroundColor: "{colors.platinum}"
|
||
textColor: "{colors.ink-soft}"
|
||
typography: "{typography.link}"
|
||
rounded: "{rounded.sm}"
|
||
padding: "{spacing.sm}"
|
||
featured-tile:
|
||
backgroundColor: "{colors.carbon}"
|
||
textColor: "{colors.on-primary}"
|
||
typography: "{typography.micro}"
|
||
rounded: "{rounded.sm}"
|
||
padding: "{spacing.xxs}"
|
||
poll-panel:
|
||
backgroundColor: "{colors.periwinkle}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.body}"
|
||
rounded: "{rounded.md}"
|
||
padding: "{spacing.md}"
|
||
radio-option:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.body}"
|
||
rounded: "{rounded.full}"
|
||
size: 12px
|
||
info-box:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.body}"
|
||
rounded: "{rounded.sm}"
|
||
padding: "{spacing.md}"
|
||
promo-card:
|
||
backgroundColor: "{colors.lavender}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.display}"
|
||
rounded: "{rounded.sm}"
|
||
padding: "{spacing.md}"
|
||
system-tile:
|
||
backgroundColor: "{colors.periwinkle}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.sm}"
|
||
padding: "{spacing.sm}"
|
||
link-row-card:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.body}"
|
||
rounded: "{rounded.sm}"
|
||
padding: "{spacing.sm}"
|
||
calendar-widget:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.ink}"
|
||
typography: "{typography.micro}"
|
||
rounded: "{rounded.sm}"
|
||
padding: "{spacing.sm}"
|
||
left-rail-tab:
|
||
backgroundColor: "{colors.carbon}"
|
||
textColor: "{colors.canvas-soft}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.none}"
|
||
padding: "{spacing.xs}"
|
||
footer-bar:
|
||
backgroundColor: "{colors.carbon}"
|
||
textColor: "{colors.canvas-soft}"
|
||
typography: "{typography.micro}"
|
||
rounded: "{rounded.none}"
|
||
padding: "{spacing.lg}"
|
||
esrb-badge:
|
||
backgroundColor: "{colors.amber}"
|
||
textColor: "{colors.carbon}"
|
||
typography: "{typography.micro}"
|
||
rounded: "{rounded.xs}"
|
||
padding: "{spacing.xxs}"
|
||
esrb-rating-square:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.carbon}"
|
||
typography: "{typography.ui-label}"
|
||
rounded: "{rounded.xs}"
|
||
size: 20px
|
||
mascot-bubble:
|
||
backgroundColor: "{colors.surface}"
|
||
textColor: "{colors.carbon}"
|
||
typography: "{typography.micro}"
|
||
rounded: "{rounded.lg}"
|
||
padding: "{spacing.sm}"
|
||
|
||
# ─── Examples (illustrative) — kit-mirror demonstration surfaces ───
|
||
ex-pricing-tier:
|
||
description: "Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface."
|
||
backgroundColor: "{colors.canvas-soft}"
|
||
textColor: "{colors.ink}"
|
||
borderColor: "{colors.hairline}"
|
||
rounded: "{rounded.lg}"
|
||
padding: "{spacing.md}"
|
||
ex-pricing-tier-featured:
|
||
description: "Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode)."
|
||
backgroundColor: "{colors.ink}"
|
||
textColor: "{colors.on-primary}"
|
||
rounded: "{rounded.lg}"
|
||
padding: "{spacing.md}"
|
||
ex-product-selector:
|
||
description: "What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery)."
|
||
backgroundColor: "{colors.surface}"
|
||
rounded: "{rounded.lg}"
|
||
padding: "{spacing.md}"
|
||
ex-cart-drawer:
|
||
description: "Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart)."
|
||
backgroundColor: "{colors.surface}"
|
||
rounded: "{rounded.lg}"
|
||
padding: "{spacing.md}"
|
||
item-divider: "{colors.hairline}"
|
||
ex-app-shell-row:
|
||
description: "Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator."
|
||
backgroundColor: "{colors.canvas}"
|
||
activeIndicator: "{colors.primary}"
|
||
rounded: "{rounded.sm}"
|
||
padding: "{spacing.sm} {spacing.md}"
|
||
ex-data-table-cell:
|
||
description: "Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm."
|
||
headerBackground: "{colors.canvas-soft}"
|
||
headerTypography: "{typography.ui-label}"
|
||
bodyTypography: "{typography.body}"
|
||
cellPadding: "{spacing.xs} {spacing.sm}"
|
||
rowBorder: "{colors.hairline}"
|
||
ex-auth-form-card:
|
||
description: "Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside."
|
||
backgroundColor: "{colors.surface}"
|
||
rounded: "{rounded.lg}"
|
||
padding: "{spacing.md}"
|
||
ex-modal-card:
|
||
description: "Modal dialog surface — same chrome as feature-card with elevated shadow."
|
||
backgroundColor: "{colors.surface}"
|
||
rounded: "{rounded.lg}"
|
||
padding: "{spacing.md}"
|
||
ex-empty-state-card:
|
||
description: "Empty-state illustration frame."
|
||
backgroundColor: "{colors.canvas-soft}"
|
||
rounded: "{rounded.lg}"
|
||
padding: "{spacing.xl}"
|
||
captionTypography: "{typography.body}"
|
||
ex-toast:
|
||
description: "Toast notification surface — feature-card shape + medium shadow."
|
||
backgroundColor: "{colors.surface}"
|
||
rounded: "{rounded.md}"
|
||
padding: "{spacing.sm} {spacing.md}"
|
||
typography: "{typography.body}"
|
||
|
||
---
|
||
|
||
|
||
## Overview
|
||
|
||
Nintendo.com circa 2001 is the web rendered as **console hardware**. Where most sites of the era reached for either grunge texture or corporate gradients, this interface builds itself out of **brushed-periwinkle metal plates** — every region is a discrete beveled panel, edge-lit with a brighter highlight on top and a `{colors.chrome-indigo}` shadow line beneath, as if stamped from the same injection-molded plastic as a Game Boy. The whole page reads as one machine faceplate: a body of `{colors.canvas}` periwinkle chrome carrying inset modules, with the corners of the largest panels physically **chamfered** (cut at 45°) rather than rounded, reinforcing the manufactured-object feeling.
|
||
|
||
The system runs on a tight three-voice contrast. The structural voice is the cool periwinkle-to-indigo chrome (`{colors.canvas}`, `{colors.periwinkle}`, `{colors.chrome-indigo}`). The authority voice is `{colors.carbon}` carbon-navy — the top navigation bar, the right-rail action buttons, and the footer, all near-black slabs printed with a faint **halftone dot-matrix texture** that evokes a speaker grille. The energy voice is warm and reserved for one job only: telling you where to go. `{colors.nav-gold}` lights the primary menu words, `{colors.amber}` fills the utility chips and badges, and `{colors.signal}` orange marks every "forward" cue — the round arrow buttons, the chevron chips beside each headline, the Submit button. Warmth in this system always means *action*; the cool chrome never carries it.
|
||
|
||
Atmosphere comes from the **hero fields**, which break the periwinkle calm with full-bleed product photography over textured backdrops — a circuit-board cyan on Systems, a motion-blurred racetrack red on Games, a soft lavender wash on Home — each topped with chunky `{typography.display}` wordmarks rendered in white with a heavy outline and hard drop shadow, the visual signature of game-box cover type. A pixel-eared Mario leans in from the masthead with a "Welcome to Nintendo.com!" speech bubble, anchoring the entire machine to the brand's playful character voice.
|
||
|
||
**Key Characteristics:**
|
||
- Every UI region is a **beveled metal plate** in `{colors.canvas}` periwinkle, edge-lit on top and shadow-lined with `{colors.chrome-indigo}` below — the page is assembled, not laid out.
|
||
- **Chamfered (cut-corner) panel geometry** on the largest modules; most chrome is sharp-edged (`{rounded.none}`), with rounding reserved for the logo pill, radio dots, and circle-arrow badges (`{rounded.full}`).
|
||
- A **carbon-navy command layer** (`{colors.carbon}`) with halftone-dot texture carries the top nav, right-rail buttons, and footer.
|
||
- Warmth is rationed as **directional signal only**: `{colors.nav-gold}` for menu words, `{colors.amber}` for utility chips/badges, `{colors.signal}` for every forward/Submit cue.
|
||
- **Photographic hero fields** cycle a page-specific accent tint (`{colors.lavender}` home → `{colors.systems-teal}` systems → `{colors.games-red}` games) under outlined `{typography.display}` box-art wordmarks.
|
||
- A dense, **modular grid** — masthead, dual nav bars, hero, then a two-thirds content column of stacked list/feature panels beside a one-third right action rail — packed with minimal whitespace.
|
||
- **Character-led**: the Mario mascot speech-bubble masthead and ESRB badge frame the chrome with brand personality and regulatory trust marks.
|
||
|
||
## Colors
|
||
|
||
The palette is a **cool metallic chassis with rationed warm signal**. Read it as three layers: the periwinkle chrome that everything is built from, the carbon command slabs, and the warm wayfinding accents that are the only saturated color in the steady-state interface.
|
||
|
||
### Brand & Accent
|
||
- **Nintendo Red** (`{colors.primary}` — #e60012): The racetrack logo wordmark and the brand's anchor hue. Used sparingly as pure brand identity and doubled as the validation/alert color. Never a surface fill outside the logo plate.
|
||
- **Signal Orange** (`{colors.signal}` — #f68d1f): The "go forward" color. Fills every round arrow button, every chevron chip beside a headline, the Submit button, and the "Play It On" platform badges. If something advances you, it is orange.
|
||
- **Amber** (`{colors.amber}` — #ecab37): Utility energy. Fills the Code Bank / Game Finder / Go chips, the info-box header tabs, the sweepstakes stars, and the ESRB Privacy-Certified badge. Distinguished from Signal Orange by being more golden and reserved for *tools and marks* rather than *forward motion*.
|
||
- **Nav Gold** (`{colors.nav-gold}` — #e48600): The deeper orange-gold reserved exclusively for the primary navigation words (Games, Systems, News, Nsider, Downloads) glowing on the carbon bar.
|
||
|
||
### Surface
|
||
- **Periwinkle Metallic** (`{colors.canvas}` — #7a8aba): The primary interface body — the brushed-metal chrome that every module is inset into.
|
||
- **Light Periwinkle** (`{colors.periwinkle}` — #8ba1d4): Raised mid panels (poll panel, system tiles) — one step brighter than canvas for elevation.
|
||
- **Pale Sky** (`{colors.sky}` / `{colors.canvas-soft}` — #9fbee7): The secondary-nav strip and light inset panel fills.
|
||
- **Pale Lavender** (`{colors.lavender}` — #acace7): The home hero field and side promo cards.
|
||
- **Pale Ice** (`{colors.ice}` — #c0d5e6): The News hero panel field.
|
||
- **Chrome Indigo** (`{colors.chrome-indigo}` — #3d4f97): The beveled border / shadow line under every plate, and the leading angled edge of nav tabs.
|
||
- **Muted Indigo** (`{colors.muted-indigo}` — #60619c): Inactive tabs and recessed chrome.
|
||
- **Platinum Gray** (`{colors.platinum}` — #dedede): The list-row and inset content surface — news headlines and archive rows sit on this cool platinum.
|
||
- **White** (`{colors.surface}` — #ffffff): Content cards, form fields, the logo pill, and list-row highlight.
|
||
|
||
### Text
|
||
- **Carbon Navy** (`{colors.ink}` — #21242e): Primary text on light chrome, and the fill of the dark command layer (nav bar, rail buttons, footer).
|
||
- **Chrome Indigo** (`{colors.ink-soft}` — #3d4f97): Secondary text and small-caps chrome labels.
|
||
- **White** (`{colors.on-primary}` — #ffffff): Text on carbon, red, and orange chrome.
|
||
|
||
### Semantic
|
||
- **Error / Alert** (`{colors.error}` — #e60012): Validation and destructive states reuse the brand red.
|
||
- **Systems Teal** (`{colors.systems-teal}` — #206479): Page-accent tint — the Systems hero's circuit-board cyan field.
|
||
- **Games Red** (`{colors.games-red}` — #a7282b): Page-accent tint — the Games hero's motion-blurred racetrack field.
|
||
|
||
## Typography
|
||
|
||
### Font Family
|
||
The era's web-safe reality is **Arial / Helvetica** throughout — there are no webfonts. The system gets its character not from typeface choice but from *treatment*: tight uppercase tracking on every chrome label, and a heavy outlined-and-shadowed display style for hero wordmarks that mimics console box-art logotype. Body copy is plain small Arial; links are the same family at bold weight in `{colors.ink-soft}`.
|
||
|
||
The micro-labels (vertical left-rail tabs, footer fine print) render with the soft pixelation characteristic of small bitmap-rendered Arial of the period — for a faithful reproduction, pair Arial with a pixel face such as **Silkscreen** or **VT323** at the 10–11px label sizes.
|
||
|
||
### Hierarchy
|
||
|
||
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|
||
|---|---|---|---|---|---|
|
||
| `{typography.display}` | 44px | 900 | 1 | 0 | Hero box-art wordmarks (white, heavy outline + hard drop shadow) |
|
||
| `{typography.hero-tagline}` | 15px | 700 | 1.3 | 0 | Hero supporting line ("Gorgeous graphics, great sound…") |
|
||
| `{typography.nav-link}` | 13px | 700 | 1 | 0.5px | Primary nav menu words, uppercase |
|
||
| `{typography.ui-label}` | 11px | 700 | 1.1 | 0.5px | Section header labels, panel titles, button text — uppercase |
|
||
| `{typography.link}` | 12px | 700 | 1.4 | 0 | News headline links, "Read More" |
|
||
| `{typography.body}` | 12px | 400 | 1.4 | 0 | Descriptions, poll text, info-box copy |
|
||
| `{typography.micro}` | 10px | 400 | 1.3 | 0 | Footer copyright, calendar cells, fine print |
|
||
|
||
### Principles
|
||
- **Uppercase + tracking is the chrome voice.** Every structural label — nav words, panel headers ("Official News", "Featured Sites", "Player's Poll"), button text — is uppercase Arial Bold with a half-pixel of tracking. It reads like silkscreened legends on a controller.
|
||
- **Display type is outlined, never flat.** Hero wordmarks always carry a thick contrasting outline and a hard offset shadow so they pop off the photographic field — the box-art convention.
|
||
- **Body stays small and quiet.** At 12px, descriptive copy never competes with the chrome; the hierarchy is carried entirely by the labels and the photography.
|
||
|
||
### Note on Font Substitutes
|
||
Arial is freely available system-wide and needs no substitute. To recreate the period bitmap rendering of micro-labels, layer a pixel font (**Silkscreen**, **VT323**, or **Press Start 2P** for the chunkiest legends) at 10–11px and disable anti-aliasing. The display wordmarks are bespoke logotypes; the closest open substitute is **Archivo Black** (italicized) or **Arial Black** with a CSS text-stroke outline and `text-shadow` offset.
|
||
|
||
## Layout
|
||
|
||
### Spacing System
|
||
- **Base unit**: 8px (`{spacing.sm}`) — the gutter rhythm between list rows and grid cells.
|
||
- **Tokens**: `{spacing.xxs}` 2px · `{spacing.xs}` 4px · `{spacing.sm}` 8px · `{spacing.md}` 12px · `{spacing.lg}` 16px · `{spacing.xl}` 24px · `{spacing.xxl}` 32px · `{spacing.section}` 48px
|
||
- Panels carry **12px interior padding** (`{spacing.md}`); larger content modules use **16px** (`{spacing.lg}`). Inter-module gaps run 16–24px. The layout is deliberately dense — whitespace is a structural seam between plates, not a luxury.
|
||
|
||
### Grid & Container
|
||
- **Fixed-width canvas** ~780–830px wide (a desktop-era fixed table layout, centered). No fluid scaling — the interface is sized to a single target window like an application.
|
||
- **Masthead row**: Mario mascot + speech bubble (left) and search module (right) float above the chrome.
|
||
- **Dual nav bars**: a carbon primary bar (logo + 5 section words + Code Bank / Game Finder utility chips) stacked over a periwinkle secondary strip (Parents, Customer Service, Corporate, Global, Privacy, Store, Contact).
|
||
- **Body**: a full-width hero panel, then a **two-column split** — a ~two-thirds content column of stacked panels (Official News list, Featured Sites 2×2 grid, etc.) beside a ~one-third **right action rail** (Login / Subscribe / Newsletter / Help buttons, an info box, a side promo card).
|
||
- **Left rail**: a thin vertical strip of rotated tabs (Top Ten, Top Rentals, Player's Choice, ESRB Ratings) clipped to the chrome edge.
|
||
|
||
### Whitespace Philosophy
|
||
Empty space is **engineered seam**, not breathing room. Modules butt against each other separated by thin `{colors.chrome-indigo}` bevel lines and a few pixels of canvas, so the eye reads grouped plates. The density is intentional: it makes the page feel like a packed control panel where everything is one click away.
|
||
|
||
### Responsive Strategy
|
||
|
||
#### Breakpoints
|
||
| Name | Width | Key Changes |
|
||
|---|---|---|
|
||
| Desktop (only) | ~780–830px fixed | The native, sole target — a fixed-width application-style layout |
|
||
| Narrow window | < 780px | Horizontal scroll (no reflow); the table layout does not collapse |
|
||
|
||
This is a **pre-responsive, fixed-canvas** design. It was authored for a single desktop window size and does not reflow. A faithful *modern* re-implementation would preserve the fixed chrome metaphor on desktop and, below ~720px, stack the right action rail beneath the content column and collapse the dual nav bars into a single carbon bar with a disclosure toggle.
|
||
|
||
#### Touch Targets
|
||
Not a consideration in the original (mouse-only era); buttons and chips are 18–28px tall. A modern port must enlarge the `{components.button-primary}`, `{components.button-icon-arrow}`, and `{components.radio-option}` hit areas to a 44×44px minimum.
|
||
|
||
#### Collapsing Strategy
|
||
On a modern narrow viewport: dual nav bars → single carbon bar + menu disclosure; two-column body → single stacked column with the right rail moving below content; the left rotated-tab strip → a horizontal scroll chip row or removed; fixed hero → fluid full-bleed hero retaining the outlined wordmark.
|
||
|
||
#### Image Behavior
|
||
Hero fields are **full-bleed photographic plates** clipped to the panel's beveled rectangle; featured-site and game tiles are fixed-pixel thumbnails (~95×60px) in a tight grid. No lazy loading (era predates it). Product renders sit on textured backdrops rather than transparent cutouts.
|
||
|
||
## Elevation & Depth
|
||
|
||
Depth in this system is **physical bevel simulation**, not soft shadow. There is no blurred drop-shadow vocabulary; instead every plate is given the illusion of being a raised piece of molded plastic.
|
||
|
||
| Level | Treatment | Use |
|
||
|---|---|---|
|
||
| 0 — Inset | Recessed into canvas; darker `{colors.chrome-indigo}` top edge, lighter bottom edge | List rows, form fields, the canvas body itself |
|
||
| 1 — Plate | Flush panel; lighter top highlight, `{colors.chrome-indigo}` shadow line beneath | Content panels, system tiles, info box |
|
||
| 2 — Raised chip | Beveled button with bright top edge + hard bottom shadow | Utility chips, Go/Submit buttons, nav tabs |
|
||
| 3 — Command slab | `{colors.carbon}` near-black with halftone texture, sits "above" the chrome | Top nav bar, right-rail buttons, footer |
|
||
|
||
### Decorative Depth
|
||
Depth is also carried by **texture and photography**: the halftone dot-matrix on carbon slabs reads as a recessed speaker grille; hero fields use motion-blur, circuit-board patterns, and product renders with their own cast shadows to create literal pictorial depth; chamfered corners on the outer chrome suggest a machined faceplate edge. The left-rail rotated tabs appear to tuck *behind* the main chrome, a small but effective layered cue.
|
||
|
||
## Shapes
|
||
|
||
### Border Radius Scale
|
||
|
||
| Token | Value | Use |
|
||
|---|---|---|
|
||
| `{rounded.none}` | 0px | The default — nav bar, footer, most chrome plates (sharp / chamfered, not rounded) |
|
||
| `{rounded.xs}` | 2px | Utility buttons, form fields, badges |
|
||
| `{rounded.sm}` | 4px | Small panels, featured tiles, list rows |
|
||
| `{rounded.md}` | 6px | Content panels, hero panel |
|
||
| `{rounded.lg}` | 10px | Outer section panels, mascot bubble |
|
||
| `{rounded.full}` | 9999px | Logo racetrack pill, radio dots, circle-arrow badges |
|
||
|
||
The signature is **sharpness with rationed roundness**. The chrome is hard-edged and frequently *chamfered* (corners cut at 45° rather than curved) — this is the manufactured-faceplate look. Roundness appears only where it signals a physical control: the fully-pill logo, the round radio buttons, and the round Signal-Orange arrow badges. A modern reproduction should resist the urge to soften every corner; the tension between sharp plates and the few pill elements is the whole character.
|
||
|
||
### Photography Geometry
|
||
Hero photography fills beveled rectangles at roughly 4:1 (banner) and 16:9 proportions, full-bleed within the panel. Featured-site and game thumbnails are near-4:3 fixed tiles (~95×60px) framed by a 1–2px `{colors.chrome-indigo}` edge with `{rounded.sm}` corners. The mascot is a transparent cutout overlapping the masthead, breaking the rectangular grid for personality.
|
||
|
||
## Components
|
||
|
||
> No hover states are documented. Each spec below covers Default and (where extracted) Pressed/Active. Variants live as separate `components:` entries.
|
||
|
||
### Navigation
|
||
|
||
**`nav-bar`** — Primary top navigation
|
||
- `{colors.carbon}` slab with a faint halftone-dot texture, ~28px tall, carrying the `{components.logo-pill}` at left, the five `{colors.nav-gold}` section words in `{typography.nav-link}` uppercase, and the amber Code Bank / Game Finder utility chips at right. Sharp corners (`{rounded.none}`), `{spacing.sm}` padding.
|
||
|
||
**`subnav-strip`** — Secondary navigation
|
||
- A `{colors.canvas-soft}` pale-sky strip directly beneath the nav bar, carrying utility links (Parents, Customer Service, Corporate, Global, Privacy, Store, Contact) in `{typography.ui-label}` `{colors.ink}`, separated by thin dividers. Sharp, `{spacing.xs}` padding.
|
||
|
||
**`left-rail-tab`** — Rotated section tabs
|
||
- A thin vertical strip of `{colors.carbon}` tabs (Top Ten, Top Rentals, Player's Choice, ESRB Ratings) with vertically-rotated `{typography.ui-label}` text in `{colors.canvas-soft}`, clipped to the left chrome edge. Sharp corners, `{spacing.xs}` padding.
|
||
|
||
### Brand & Masthead
|
||
|
||
**`logo-pill`** — Nintendo racetrack logo
|
||
- The wordmark in `{colors.primary}` red set inside a white `{rounded.full}` racetrack pill, outlined. Sits at the left of the nav bar. `{spacing.xs}` padding.
|
||
|
||
**`mascot-bubble`** — Mario welcome speech bubble
|
||
- A white `{rounded.lg}` rounded-rectangle speech bubble with a tail, carrying "Welcome to Nintendo.com!" in `{typography.micro}` `{colors.carbon}`, paired with the Mario cutout in the masthead. `{spacing.sm}` padding.
|
||
|
||
### Buttons
|
||
|
||
**`button-primary`** — Amber utility / Go chip
|
||
- `{colors.amber}` fill, `{colors.carbon}` text in `{typography.ui-label}`, `{rounded.xs}` corners, `{spacing.md}` padding, with a beveled top highlight. The everyday tool button (Code Bank, Game Finder, Go).
|
||
- Pressed state in **`button-primary-pressed`** — fill deepens to `{colors.nav-gold}`.
|
||
|
||
**`button-submit`** — Forward / Submit
|
||
- `{colors.signal}` orange fill, `{colors.on-primary}` white text in `{typography.ui-label}`, `{rounded.xs}`, `{spacing.lg}` padding. The "commit" action (poll Submit, Go on archives).
|
||
|
||
**`button-secondary`** — Right-rail action button
|
||
- `{colors.carbon}` near-black slab, `{colors.on-primary}` white text in `{typography.ui-label}`, sharp `{rounded.none}` corners, `{spacing.md}` padding, with a small leading icon. Used for Login / Subscribe / Newsletter / Help in the right rail.
|
||
|
||
**`button-icon-arrow`** — Round forward arrow
|
||
- A 22px `{colors.signal}` orange `{rounded.full}` disc with a white chevron — the primary "go" affordance on hero panels and section links.
|
||
|
||
**`button-arrow-chip`** — Headline chevron chip
|
||
- An 18px `{colors.signal}` orange `{rounded.xs}` chip with a white forward chevron, sitting at the right end of each `{components.news-row}` to advance to the article.
|
||
|
||
### Inputs & Forms
|
||
|
||
**`search-field`** — Masthead search input
|
||
- White `{colors.surface}` field, `{colors.ink}` text in `{typography.body}`, `{rounded.xs}` corners, 1px `{colors.hairline}` border, ~20px tall, paired with an "All" category dropdown and an amber Go chip.
|
||
|
||
**`text-input`** — Generic text field
|
||
- Same chassis as `search-field`: white fill, `{colors.ink}` text, `{rounded.xs}`, `{colors.hairline}` 1px border, `{spacing.xs}` padding. Used in the Login form (Username / Password / E-mail), news-archive keyword, and date fields.
|
||
|
||
**`select-dropdown`** — Native select ("Click to choose")
|
||
- A white `{colors.surface}` field with `{colors.ink}` text in `{typography.body}`, `{rounded.xs}` corners, and a hard 1px `{colors.carbon}` border (sharper than the inputs) closing on a beveled native dropdown-chevron button at the right edge. ~24px tall, `{spacing.xs}` padding. Used for the Register form's Month / Year pickers.
|
||
|
||
**`field-label`** — Inline form label
|
||
- A bold `{colors.ink}` label in `{typography.link}` (Arial Bold 12px) sitting left of its input (Username, Password, E-mail, Month, Year). `{rounded.none}`, `{spacing.xxs}` padding.
|
||
|
||
**`radio-option`** — Poll radio button
|
||
- A 12px white `{rounded.full}` radio dot with a `{colors.hairline}` ring, paired with `{typography.body}` option text. Used in the Player's Poll.
|
||
|
||
**`form-panel`** — Form container (Login / Register)
|
||
- A `{colors.platinum}` light-gray `{rounded.md}` panel holding a form, capped by a `{components.section-label-bar}` header (≡ LOG IN / ≡ REGISTER). `{spacing.lg}` interior. The Login page pairs two side by side.
|
||
|
||
**`dotted-divider`** — Dotted hairline rule
|
||
- A 1px dotted `{colors.muted-indigo}` separator rule used between form sub-sections (the "Note:" line, "Forgot Your Password?"). A recurring Y2K-chrome detail — dotted rather than solid.
|
||
|
||
### Cards & Panels
|
||
|
||
**`hero-panel`** — Photographic hero plate
|
||
- A `{rounded.md}` beveled rectangle filled with full-bleed product photography over a page-tinted field (`{colors.lavender}` / `{colors.systems-teal}` / `{colors.games-red}`), topped with an outlined `{typography.display}` wordmark and a `{components.button-icon-arrow}` call-to-action. `{spacing.lg}` interior.
|
||
|
||
**`section-label-bar`** — Panel header
|
||
- A `{colors.canvas}` header strip with a small grid/list glyph and an uppercase `{typography.ui-label}` title ("Official News", "Featured Sites", "Player's Poll"). Sharp corners, `{spacing.sm}` padding. Caps every content module.
|
||
|
||
**`news-row`** — Headline list row
|
||
- A `{colors.platinum}` `{rounded.sm}` row with a small category icon, a `{typography.link}` headline in `{colors.ink-soft}`, and a trailing `{components.button-arrow-chip}`. `{spacing.sm}` padding. Stacked into the Official News / Other Headlines lists.
|
||
|
||
**`featured-tile`** — Featured-site thumbnail
|
||
- A `{colors.carbon}`-framed `{rounded.sm}` tile (~95×60px) holding a screenshot thumbnail with a `{typography.micro}` URL caption (e.g. www.pokemon.com). Tight `{spacing.xxs}` padding, arranged in a 2×2 grid.
|
||
|
||
**`poll-panel`** — Player's Poll module
|
||
- A `{colors.periwinkle}` raised `{rounded.md}` panel posing a question, listing `{components.radio-option}` choices, and closing with a `{components.button-submit}`. `{spacing.md}` interior.
|
||
|
||
**`info-box`** — "What Is" explainer card
|
||
- A white `{colors.surface}` `{rounded.sm}` card with an amber header tab ("What Is — Game Finder") and `{typography.body}` explanatory copy. `{spacing.md}` padding. Sits in the right rail.
|
||
|
||
**`promo-card`** — Side product promo
|
||
- A `{colors.lavender}` `{rounded.sm}` card carrying an outlined product wordmark (e.g. Game Boy Advance) over a small product render, in the right rail. `{spacing.md}` padding.
|
||
|
||
**`system-tile`** — Hardware grid tile (Systems page)
|
||
- A `{colors.periwinkle}` `{rounded.sm}` tile holding a console render over a circuit-board backdrop with an outlined system name (Nintendo 64, Super Nintendo, Game Boy). `{spacing.sm}` padding, arranged in a 2×3 grid.
|
||
|
||
**`link-row-card`** — Utility link card (Systems page)
|
||
- A white `{rounded.sm}` card with an amber label tab (Technical Help, Store Locator, Online Store), a character icon, and a one-line `{typography.body}` description. `{spacing.sm}` padding.
|
||
|
||
**`calendar-widget`** — Month calendar (News page)
|
||
- A white `{rounded.sm}` grid calendar in `{typography.micro}`, with a `{colors.carbon}` caption header (e.g. "June 01"), highlighted event dates, and a month-select dropdown. `{spacing.sm}` padding.
|
||
|
||
### Badges & Footer
|
||
|
||
**`esrb-badge`** — ESRB Privacy-Certified mark
|
||
- A small `{colors.amber}` `{rounded.xs}` badge reading "ESRB — Privacy Certified" in `{typography.micro}` `{colors.carbon}`, pinned in the footer.
|
||
|
||
**`esrb-rating-square`** — Game content-rating square
|
||
- A 20px white `{rounded.xs}` square stamping the content-rating letter (E, T) in `{typography.ui-label}` `{colors.carbon}`, on each game card.
|
||
|
||
**`footer-bar`** — Page footer
|
||
- A `{colors.carbon}` chamfered slab with the "©1997–2001 Nintendo…" copyright in `{typography.micro}` `{colors.canvas-soft}`, the ESRB badge, and a privacy link. Sharp corners, `{spacing.lg}` padding.
|
||
|
||
### Examples (illustrative)
|
||
|
||
> Kit-mirror demonstration surfaces. Each `ex-*` entry references brand-native primitives so downstream consumers (`/preview-design`, `/generate-kit`) re-skin the same 10 surfaces consistently.
|
||
|
||
**`ex-pricing-tier`** — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.
|
||
- Properties: `backgroundColor`, `textColor`, `borderColor`, `rounded`, `padding`
|
||
|
||
**`ex-pricing-tier-featured`** — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
|
||
- Properties: `backgroundColor`, `textColor`, `rounded`, `padding`
|
||
|
||
**`ex-product-selector`** — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).
|
||
- Properties: `backgroundColor`, `rounded`, `padding`
|
||
|
||
**`ex-cart-drawer`** — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).
|
||
- Properties: `backgroundColor`, `rounded`, `padding`, `item-divider`
|
||
|
||
**`ex-app-shell-row`** — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
|
||
- Properties: `backgroundColor`, `activeIndicator`, `rounded`, `padding`
|
||
|
||
**`ex-data-table-cell`** — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
|
||
- Properties: `headerBackground`, `headerTypography`, `bodyTypography`, `cellPadding`, `rowBorder`
|
||
|
||
**`ex-auth-form-card`** — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
|
||
- Properties: `backgroundColor`, `rounded`, `padding`
|
||
|
||
**`ex-modal-card`** — Modal dialog surface — same chrome as feature-card with elevated shadow.
|
||
- Properties: `backgroundColor`, `rounded`, `padding`
|
||
|
||
**`ex-empty-state-card`** — Empty-state illustration frame.
|
||
- Properties: `backgroundColor`, `rounded`, `padding`, `captionTypography`
|
||
|
||
**`ex-toast`** — Toast notification surface — feature-card shape + medium shadow.
|
||
- Properties: `backgroundColor`, `rounded`, `padding`, `typography`
|
||
|
||
|
||
## Do's and Don'ts
|
||
|
||
### Do
|
||
- Build every region as a **beveled plate**: a `{colors.canvas}` body with a brighter top edge and a `{colors.chrome-indigo}` shadow line beneath. The "assembled machine" feel depends on it.
|
||
- Reserve warm color for **wayfinding only** — `{colors.nav-gold}` for nav words, `{colors.amber}` for utility/badges, `{colors.signal}` for forward/Submit. Cool chrome never carries action color.
|
||
- Keep structural labels **uppercase Arial Bold with 0.5px tracking** (`{typography.ui-label}`) — it is the silkscreen-legend voice of the whole system.
|
||
- Render hero wordmarks as **outlined + drop-shadowed `{typography.display}`** over full-bleed photographic fields tinted per page.
|
||
- Use `{colors.carbon}` with halftone texture for the **command layer** (nav, right rail, footer) to separate "system controls" from "content."
|
||
- Let panels **butt together** with thin bevel seams; density is the intended texture.
|
||
- Default corners to **sharp/chamfered** (`{rounded.none}`); spend roundness only on the logo pill, radio dots, and circle-arrow badges.
|
||
|
||
### Don't
|
||
- Don't soften every corner — turning the sharp chrome into a uniformly rounded card system erases the manufactured-faceplate identity.
|
||
- Don't introduce a **soft blurred drop-shadow** elevation language; depth here is hard bevels and pictorial photography, not Material elevation.
|
||
- Don't let `{colors.signal}` and `{colors.amber}` bleed into decorative use — warm color must always mean "act here."
|
||
- Don't add accent colors outside the page-tint heroes (`{colors.systems-teal}`, `{colors.games-red}`); the steady-state chrome is strictly cool periwinkle + carbon.
|
||
- Don't widen body copy or whitespace into an airy modern layout; the packed, fixed-canvas density is the brand.
|
||
- Don't flatten the dual-nav structure (gold primary words over the pale secondary strip) into one bar — the layered command hierarchy is signature.
|
||
- Don't render hero or system wordmarks as flat text; without the outline + shadow they lose the box-art reference entirely.
|