Files
scan-receipts/DESIGN (1).md
Timo 84b9987c49 Add full application: receipt scanning, auth, billing, and account deletion
Brings the working codebase (Next.js app, auth system, Stripe billing,
Docker/deploy config, tests, docs) into version control on top of the
placeholder initial commit, and adds account self-deletion (Danger Zone
in Settings, password + typed-email confirmation, cascading DB cleanup,
Stripe cancellation) per GDPR right-to-erasure.

Excludes local build caches, node_modules, and internal agent scratch
files; .gitignore hardened to keep those out going forward.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 20:59:04 +02:00

7.1 KiB

name, colors, typography, spacing
name colors typography spacing
Zenith Silver
surface surface-dim surface-bright surface-container-lowest surface-container-low surface-container surface-container-high surface-container-highest on-surface on-surface-variant inverse-surface inverse-on-surface outline outline-variant surface-tint primary on-primary primary-container on-primary-container inverse-primary secondary on-secondary secondary-container on-secondary-container tertiary on-tertiary tertiary-container on-tertiary-container error on-error error-container on-error-container primary-fixed primary-fixed-dim on-primary-fixed on-primary-fixed-variant secondary-fixed secondary-fixed-dim on-secondary-fixed on-secondary-fixed-variant tertiary-fixed tertiary-fixed-dim on-tertiary-fixed on-tertiary-fixed-variant background on-background surface-variant
#f6f9ff #d4dbe2 #f6f9ff #ffffff #eef4fc #e8eef6 #e3e9f1 #dde3eb #161c22 #444749 #2b3137 #ebf1f9 #747779 #c4c7c9 #5c5f61 #5c5f61 #ffffff #f5f7f9 #6e7173 #c4c7c9 #5e5e5e #ffffff #e2e2e2 #646464 #515f74 #ffffff #f5f7ff #647287 #ba1a1a #ffffff #ffdad6 #93000a #e0e3e5 #c4c7c9 #191c1e #444749 #e2e2e2 #c6c6c6 #1b1b1b #474747 #d5e3fc #b9c7df #0d1c2e #3a485b #f6f9ff #161c22 #dde3eb
display-lg headline-lg headline-lg-mobile headline-md body-lg body-md label-caps label-md
fontFamily fontSize fontWeight lineHeight letterSpacing
Hanken Grotesk 72px 700 80px -0.04em
fontFamily fontSize fontWeight lineHeight letterSpacing
Hanken Grotesk 48px 600 56px -0.02em
fontFamily fontSize fontWeight lineHeight letterSpacing
Hanken Grotesk 32px 600 40px -0.02em
fontFamily fontSize fontWeight lineHeight letterSpacing
Hanken Grotesk 24px 500 32px -0.01em
fontFamily fontSize fontWeight lineHeight letterSpacing
Inter 18px 400 28px 0em
fontFamily fontSize fontWeight lineHeight letterSpacing
Inter 16px 400 24px 0em
fontFamily fontSize fontWeight lineHeight letterSpacing
JetBrains Mono 12px 500 16px 0.1em
fontFamily fontSize fontWeight lineHeight letterSpacing
JetBrains Mono 14px 400 20px 0em
unit container-max gutter margin-mobile margin-desktop stack-sm stack-md stack-lg stack-xl
4px 1440px 24px 16px 64px 8px 24px 48px 80px

Brand & Style

The design system embodies a premium, gallery-like aesthetic that prioritizes clarity, structural integrity, and negative space. The brand personality is "Architectural Minimalist"—sophisticated, cold, and intentional. It is designed for high-end SaaS, luxury editorial, or architectural portfolios where the content is elevated by a rigorous, unadorned framework.

The style is a fusion of Modern Minimalism and Swiss International Style. It avoids decorative flourishes like gradients or organic shapes, instead relying on strict alignment, razor-sharp edges, and a monochromatic palette to evoke an atmosphere of precision and quiet luxury.

Colors

The palette is rooted in a monochromatic "Zenith Silver" foundation.

  • Primary (#F5F7F9): The "Zenith Silver" base. Used for large surface areas and page backgrounds to create an airy, expansive feel.
  • Secondary (#000000): Pure black. Used exclusively for typography and structural strokes to provide aggressive contrast against the silver base.
  • Tertiary (#475569): Slate Blue-Grey. Used for subtle accents, secondary actions, and metadata to soften the binary contrast of black and silver where necessary.
  • Neutral (#E2E8F0): A mid-tone silver used for borders, dividers, and disabled states.

Do not use gradients. Transparency should only be used for overlays, maintaining a solid color logic elsewhere.

Typography

Typography is the primary driver of the visual hierarchy. This design system utilizes a trio of fonts to delineate roles:

  • Hanken Grotesk is used for headlines. It should be set with tight tracking in larger sizes to create a "locked" architectural feel.
  • Inter provides high legibility for body copy and long-form text, maintaining a neutral, professional tone.
  • JetBrains Mono is used for labels, captions, and technical data. It introduces a subtle "precision" layer reminiscent of blueprints and architectural annotations.

All labels should default to uppercase when using the label-caps role to reinforce the structured, gallery aesthetic.

Layout & Spacing

The layout follows a Fixed Grid philosophy for desktop to maintain a "frame" around the content, and a fluid 4-column system for mobile.

  • Desktop (1440px+): 12-column grid with a 1200px max-width container, 24px gutters, and 64px outer margins.
  • Tablet (768px - 1439px): 8-column grid with 24px gutters and 32px margins.
  • Mobile (Up to 767px): 4-column fluid grid with 16px gutters and 16px margins.

Spacing follows a strict 4px base unit. Use large vertical stacks (stack-xl) between major sections to emphasize the "Airy" nature of the brand. Alignment should be rigorous; elements should always snap to the grid lines, never floating arbitrarily.

Elevation & Depth

This design system rejects traditional shadows and depth. It uses Low-contrast Outlines and Tonal Layering to create hierarchy.

  • Level 0 (Background): Zenith Silver (#F5F7F9).
  • Level 1 (Cards/Containers): White (#FFFFFF) with a 1px solid border in Neutral (#E2E8F0).
  • Interactive States: On hover, elements do not lift; they shift color (e.g., a button fill turns from Black to Slate Blue-Grey) or thickness (a border moves from 1px to 2px).

Depth is implied through overlapping planes and high-contrast typography rather than lighting effects.

Shapes

The shape language is strictly Sharp. All UI elements—including buttons, input fields, and cards—must have a 0px radius. This reinforces the architectural and precision-engineered feel of the system.

Photography should be treated as "windows" within the grid, always rectangular and never cropped with rounded corners.

Components

  • Buttons: Solid #000000 background with #FFFFFF text for primary actions. 1px solid #000000 border with no fill for secondary. All buttons are rectangular with no padding-inline under 24px.
  • Input Fields: 1px solid #E2E8F0 bottom-border only (minimalist style) or full 1px border. Use label-caps for field labels placed strictly above the input.
  • Cards: White backgrounds with 1px borders in #E2E8F0. No shadows. Content within cards should follow the 24px internal padding rule.
  • Chips/Tags: Using label-md typography, these are small rectangular boxes with #F5F7F9 fills and no borders.
  • Lists: Separated by 1px horizontal dividers in #E2E8F0. No bullets; use JetBrains Mono numbers (01, 02, 03) for ordered lists.
  • Photography Placeholders: Use large-scale imagery with desaturated or high-contrast treatments. Images should span multiple columns to act as structural anchors for the text.