---
version: alpha
name: NFC Haul
description: "Light interface measured from nfchaul.com: Plus Jakarta Sans type, blue accents, tonal surfaces and pill-shaped controls."
colors:
  background: "#F5F8FF"
  surface: "#F5F8FF"
  on-surface: "#3A455E"
  on-background: "#3A455E"
  on-surface-strong: "#0B1633"
  on-surface-variant: "#6B7590"
  surface-container-low: "#E6F8F0"
  surface-container: "#FFFFFFEB"
  surface-container-high: "#FFFFFF"
  surface-container-highest: "#E8EFFF"
  overlay: "#FFFFFF14"
  outline: "#E1E7F2"
  outline-variant: "#FFFFFFCC"
  primary: "#1E4BD2"
  on-primary: "#FFFFFF"
  secondary: "#1539A8"
  success: "#0B8A5A"
typography:
  headline-display:
    fontFamily: Plus Jakarta Sans
    fontSize: 80px
    fontWeight: 800
    lineHeight: 0.98
    letterSpacing: -0.035em
  headline-lg:
    fontFamily: Plus Jakarta Sans
    fontSize: 43px
    fontWeight: 800
    lineHeight: 1.06
    letterSpacing: -0.025em
  headline-md:
    fontFamily: Plus Jakarta Sans
    fontSize: 38.5px
    fontWeight: 800
    lineHeight: 1.12
    letterSpacing: -0.02em
  body-md:
    fontFamily: Plus Jakarta Sans
    fontSize: 15px
    fontWeight: 400
    lineHeight: 1.6
  body-lg:
    fontFamily: Plus Jakarta Sans
    fontSize: 16px
    fontWeight: 700
    lineHeight: 1.35
    letterSpacing: -0.02em
  body-sm:
    fontFamily: Plus Jakarta Sans
    fontSize: 13px
    fontWeight: 400
    lineHeight: 1.6
  label-lg:
    fontFamily: Plus Jakarta Sans
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.6
  label-md:
    fontFamily: Plus Jakarta Sans
    fontSize: 15px
    fontWeight: 700
    lineHeight: 1.6
  label-sm:
    fontFamily: Plus Jakarta Sans
    fontSize: 14px
    fontWeight: 600
    lineHeight: 1.6
  headline-display-mobile:
    fontFamily: Plus Jakarta Sans
    fontSize: 44px
    fontWeight: 800
    lineHeight: 0.98
    letterSpacing: -0.035em
  headline-lg-mobile:
    fontFamily: Plus Jakarta Sans
    fontSize: 28px
    fontWeight: 800
    lineHeight: 1.06
    letterSpacing: -0.025em
rounded:
  xs: 8px
  sm: 10px
  md: 12px
  lg: 16px
  xl: 22px
  full: 9999px
spacing:
  xs: 2px
  sm: 8px
  md: 10px
  lg: 18px
  xl: 43.34px
  gutter: 10px
  section: 104px
components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-primary}"
    typography: "{typography.body-sm}"
    rounded: "{rounded.sm}"
    padding: 0px 18px
    height: 44px
  button-primary-hover:
    backgroundColor: "{colors.secondary}"
  button-outline:
    backgroundColor: "{colors.surface-container-high}"
    textColor: "{colors.primary}"
    typography: "{typography.body-lg}"
    rounded: "{rounded.md}"
    padding: 0px 28px
    height: 60px
  button-ghost:
    backgroundColor: "#F7F9FF"
    textColor: "{colors.on-surface-strong}"
    typography: "{typography.label-lg}"
    rounded: "{rounded.full}"
    padding: 7px 18px 7px 8px
    height: 62px
  card:
    backgroundColor: "{colors.surface-container-high}"
    textColor: "{colors.on-surface}"
    typography: "{typography.label-lg}"
    rounded: "{rounded.xl}"
    padding: 22px
  link:
    textColor: "{colors.on-surface}"
---

# NFC Haul Design System

## Overview

NFC Haul describes itself as: “Tap-to-review NFC cards for your counter. One tap opens your Google review page — no app, no QR code. Boxes of 20 to 200 with tracked worldwide shipping.” The interface is light, built on **Cool Snow (#F5F8FF)** with **Dark Blue (#3A455E)** text, and **Blue (#1E4BD2)** as the main accent.

Type is set in **Plus Jakarta Sans**. Headlines run large with tight negative tracking; body text is 15px. Depth comes from soft drop shadows. Controls are pill-shaped.

Measured from [nfchaul.com](https://nfchaul.com/) on November 7, 2026 at 1440×900 and 390×844 from 398 rendered elements. Values are computed styles from the live page, not the original source files.

## Colors

The palette has 15 roles, plus gradient stops #E8EFFF, #E4ECFF, #1E4BD2, #2A5BE0.

- **Cool Snow (#F5F8FF):** Page background, seen 6 times. Token `background`, CSS `--tint`.
- **Dark Blue (#3A455E):** Primary text and headings, seen 37 times. Token `on-surface`, CSS `--text`.
- **Deep Blue (#0B1633):** Headings and emphasis, seen 61 times. Token `on-surface-strong`, CSS `--ink`.
- **Blue (#6B7590):** Secondary text, seen 15 times. Token `on-surface-variant`, CSS `--muted`.
- **Pale Teal (#E6F8F0):** Raised areas one step from the page, seen 3 times. Token `surface-container-low`, CSS `--green-bg`.
- **White 92% (#FFFFFFEB):** Cards and panels, seen 4 times. Token `surface-container`.
- **White (#FFFFFF):** Hover and pressed fills, seen 38 times. Token `surface-container-high`, CSS `--white`.
- **Pale Blue (#E8EFFF):** Highest raised elements, seen 9 times. Token `surface-container-highest`, CSS `--soft`.
- **White 8% (#FFFFFF14):** Translucent fill for cards and controls, seen 1 time. Token `overlay`.
- **Cool Mist (#E1E7F2):** Borders and dividers, seen 41 times. Token `outline`, CSS `--line`.
- **White 80% (#FFFFFFCC):** Secondary dividers, seen 3 times. Token `outline-variant`.
- **Blue (#1E4BD2):** Primary buttons and calls to action, seen 52 times. Token `primary`, CSS `--blue`.
- **White (#FFFFFF):** Text and icons on primary. Token `on-primary`.
- **Dark Blue (#1539A8):** Accent, seen 1 time. Token `secondary`, CSS `--blue-d`.
- **Dark Teal (#0B8A5A):** Success and positive states, seen 3 times. Token `success`, CSS `--green-d`.

## Typography

**Plus Jakarta Sans** carries the whole interface. Fallback stack: `Plus Jakarta Sans, system-ui, -apple-system, Segoe UI`.

- **headline-display:** Plus Jakarta Sans 80px at weight 800, line height 0.98, tracking -0.035em (44px on mobile). Page title (h1).
- **headline-lg:** Plus Jakarta Sans 43px at weight 800, line height 1.06, tracking -0.025em (28px on mobile). Section headings (h2).
- **headline-md:** Plus Jakarta Sans 38.5px at weight 800, line height 1.12, tracking -0.02em. Sub-section headings.
- **body-md:** Plus Jakarta Sans 15px at weight 400, line height 1.6. Body text.
- **body-lg:** Plus Jakarta Sans 16px at weight 700, line height 1.35, tracking -0.02em. Lead paragraphs.
- **body-sm:** Plus Jakarta Sans 13px at weight 400, line height 1.6. Secondary and small text.
- **label-lg:** Plus Jakarta Sans 16px at weight 400, line height 1.6. Large buttons and tabs.
- **label-md:** Plus Jakarta Sans 15px at weight 700, line height 1.6. Buttons, navigation and labels.
- **label-sm:** Plus Jakarta Sans 14px at weight 600, line height 1.6. Small labels and badges.

## Layout

Spacing does not follow a strict grid: 33% of measured values are multiples of 4px, so match the measured steps rather than rounding to a grid.

- **Scale:** xs 2px, sm 8px, md 10px, lg 18px, xl 43.34px.
- **Sections:** 104px vertical padding between major sections.
- **Gaps:** 10px is the most common gap in flex and grid layouts.
- **Breakpoints:** 360px, 420px, 640px, 720px, 760px, 767px, 900px, 901px, 1024px, 1040px, 1140px.

## Elevation & Depth

Raised elements use soft drop shadows. The most used recipes:

- `rgba(11, 22, 51, 0.04) 0px 1px 2px 0px`
- `rgba(30, 75, 210, 0.08) 0px 10px 30px 0px`
- `rgba(30, 75, 210, 0.28) 0px 10px 24px 0px`

Hairline rings and inset highlights also appear: `rgba(30, 75, 210, 0.12) 0px 0px 0px 4px`.

## Shapes

Interactive controls are pill-shaped. Measured radii, most used first:

- **full (9999px):** 104 elements.
- **xl (22px):** 72 elements.
- **md (12px):** 44 elements.
- **lg (16px):** 28 elements.
- **xs (8px):** 24 elements.
- **sm (10px):** 12 elements.

## Components

Measured from the rendered page. Token values reference the tokens above.

- **button-primary (“SHOP NOW”):** #1E4BD2 fill, #FFFFFF text, 12.8px/800, 10px radius, padding 0px 18px, border 2px solid #1E4BD2, shadow `rgba(30, 75, 210, 0.22) 0px 6px 16px 0px`.
- **button-primary-hover:** background #1539A8, text #FFFFFF on hover.
- **button-outline (“SEE IT WORK”):** #FFFFFF fill, #1E4BD2 text, 16px/800, 12px radius, padding 0px 28px, border 2px solid #DCE7FF.
- **button-ghost (“Google Review from €24,00”):** #F7F9FF fill, #0B1633 text, 16px/400, 999px radius, padding 7px 18px 7px 8px, border 2px solid #1E4BD2, shadow `rgba(30, 75, 210, 0.12) 0px 0px 0px 4px`.
- **card:** #FFFFFF fill, #3A455E text, 16px/400, 22px radius, padding 22px, border 1px solid #E1E7F2, shadow `rgba(11, 22, 51, 0.04) 0px 1px 2px 0px`.
- **link:** transparent fill, #3A455E text, padding 0px.

## Do's and Don'ts

- Do use #F5F8FF for the page and lift surfaces in small steps: #E6F8F0, #FFFFFFEB, #FFFFFF, #E8EFFF.
- Do keep text in 3 levels: #3A455E, #0B1633, #6B7590.
- Do reserve #1E4BD2 for primary actions and key highlights.
- Do set headlines in Plus Jakarta Sans with tight tracking (-0.035em).
- Do reuse the measured spacing steps (8px, 10px, 18px).
- Do make buttons and chips fully rounded (9999px); most other elements use 22px corners.
- Don't use #6B7590 for body text; it reaches 4.32:1 on #F5F8FF. Keep it for large text or metadata.
- Don't introduce new font families beyond Plus Jakarta Sans.
- Don't use #1E4BD2 for large backgrounds or body text.
- Don't make interface transitions slower than 0.6s.

## Motion

Interface transitions are quick: 0.2s, 0.35s, 0.18s, 0.28s. Longer ambient animations run 0.7s, 7s.

- **Easing:** `cubic-bezier(0.2, 0.7, 0.2, 1)`, `ease`, `cubic-bezier(0.16, 0.84, 0.32, 1)`.
- **Reduced motion:** the page responds to `prefers-reduced-motion`.

Generated by [Sitepeel](https://sitepeel.dev/design-md/nfchaul.com/), the free DESIGN.md generator (engine 2026.10.29+b828a475ee10).
