Atomic Shelf — Design System

Phase 2 — Design System · Step 6

Implementing PRD Section 50

This is a working build of the design language specified in Section 50 of the Master PRD — real CSS custom properties, real components, at the exact values the PRD gives. Where the PRD names a token but doesn't number it, that's called out below rather than guessed silently.

Proof audit note. The Proof Strip component below now demonstrates a range format for the flagged "2,400 downloads" figure — shown as a range tied to retargeting reach, sourced from the 24-month dataset, instead of a single copy-pasted number. This is a formatting decision only. The actual verified range still depends on real campaign data, which stays out of scope here — the PRD and proof-audit.json are untouched.

50.2 – 50.10

Foundations

Colour

Dark editorial base for atmospheric sections, warm light surface for extended reading. Accent used sparingly — never for decoration.

Dark surfaces

bg-dark--color-bg-dark · #0F0E0C
surface-dark--color-surface-dark · #1A1916
border-dark--color-border-dark · #262420

Light surfaces

bg-light--color-bg-light · #F8F6F2
surface-light / -mid--color-surface-light · #EEEAE3
border-light--color-border-light · #E0DBD3

Accent

accent-primary--color-accent-primary · #C8922A
accent-primary-hover#DFA83E
accent-primary-pressed#A67820
accent-secondarytag borders only · #5E7A8A

Text & system

Aa on dark
text-primary-dark#F2EFE9
Aa on light
text-primary-light#1C1A18
successconfirmation only · #3A7D52
errorform errors only · #C0442A

Typography

DM Serif Display for headlines and plan names; Inter for everything functional. Resize the window — every size below is fluid between the PRD's mobile and desktop values.

Build a readership.
Display XL40 → 88px
A system, not a task list.
Display L32 → 64px
Reader lists make it repeatable.
Display M26 → 44px
Short-form video
Heading20 → 28px
We help independent authors find readers and turn attention into sales.
Body L17 → 20px
Standard paragraph copy sits here, comfortable at 60–68 characters per line.
Body16 → 17px
Supporting copy and card descriptions use this size.
Body S14 → 15px
For independent authors
Label11 → 13px · 0.1em tracking
3.2×   $249
Mono / tabularproof + price only

"We commit to doing the work. You give it the time and access it needs to work."

Pull-quote treatment — display serif, italic, reduced weight.

Spacing

Bars scaled to the desktop value of each section-spacing token.

section-xl160px desktop
section-l120px desktop
section-m80px desktop
component40px desktop
inner24–32px desktop

Grid

12 columns / 80px margin at desktop (1280px+), 8 columns / 40px at tablet (768px+), 4 columns / 16–20px at mobile. Resize the browser to see it shift live.

Columns re-flow at the 768px and 1280px breakpoints defined in 50.4.

Motion

Hover each row — every swatch uses the same transform at a different duration token, so the difference in feel is easy to compare directly.

duration-fast120ms · button hover
duration-standard240ms · accordion, nav
duration-slow450ms · scroll fade-in

This page's own scroll-reveal and proof-metric count-up (below) use these same tokens, and both are skipped instantly if your OS has reduced motion turned on — try it with that setting on to confirm the fallback works.

50.5

Components

Navigation desktop + mobile

Shrink the frame below 768px to see the burger menu. Fixed to top, transparent over the hero, gains the dark/blur background after scroll on the real site.

Buttons primary · secondary · ghost
default
disabled
secondary
disabled
ghost / text link

Hover and tab-focus the buttons above to see the real transition and focus-ring states. Sentence case only, one primary CTA per component.

Hero

For independent authors

Build a readership that lasts.

We help independent authors find readers, turn attention into sales, and build an audience that can follow them from one book to the next.

cover
cover
cover
cover

Covers shown as placeholders — the checklist flags this as needing real client covers before sign-off. No video, no abstract shapes, left-aligned text at every width.

Proof Strip count-up on scroll
Average sales lift within 90 days
0 Videos produced for client authors
1,800–2,400 Downloads per newsletter feature Range reflects retargeting reach · 24-month data

Third metric is the resolved format for the flagged single-number issue: a range instead of one figure, with the driver of the variance (retargeting reach) named inline rather than hidden in a footnote. Values here are illustrative — Step 3's real verified range is still pending.

Five-Stage System stage card
01 — DiscoverVideo finds the readers.

Short-form content puts the book in front of genre-relevant audiences.

02 — TrustReviews make the click worthwhile.

ARC campaigns create social proof and reduce uncertainty.

03 — ConvertThe listing earns the sale.

Listing copy, keywords, and storefront presentation turn interest into sales.

04 — RetainReader lists make it repeatable.

ShelfMates and StoryPals build a direct reader relationship.

05 — RepeatThe next book starts here.

The objective is an increasingly valuable readership, not one sale.

No icons — stage numbers carry the identity, exactly as 50.5 specifies. Hover a stage to see the lift + accent-colour name change.

Service Cards

Short-form video

Genre-targeted video content built to put your book in front of readers actively looking for it.

DiscoverSpark and up

ARC review campaigns

Structured advance-reader recruitment that builds real reviews before or at launch.

TrustFoundation and up

Hover lifts the card 2–3px with a shadow only — no colour change, no scale, per spec.

Pricing Cards + commitment selector

Live toggle, built from the current plan prices. Spark and Foundation support all four commitments; Momentum and Growth don't offer a 3-month tier — the card states that plainly instead of hiding the option.

Audience Selector "Where are you right now?"

I need more readers.

For authors who have a book but need discovery.

Sales are inconsistent.

For authors who need a stronger system around existing attention.

I have a launch coming.

For authors who need coordinated pre-launch and launch support.

Horizontal scroll on mobile (try narrowing the frame), 3-column grid from 900px. Text carries the meaning — no icons.

Case Study Card
Sample — case studies deferred (Step 5)
cover

A. Reyes — The Salt Line

Literary fiction

150K–2,400

impressions → clicks, 90-day window

40 videos produced across a 90-day window, paired with an ARC push ahead of a backlist relaunch.

"It felt like the first time the marketing actually matched the book."

Marked as a sample layout, not a real client — case studies were intentionally deferred at Step 5 (schema only, no entries yet). Output → activity → indicator → business result hierarchy, per Section 15.

CTA Section standalone

Ready to build a readership that lasts?

Vocabulary pulled straight from Section 28 — no invented button phrases.

FAQ Accordion

Longer commitments are prepaid savings — we have more time to compound the work, and predictable planning lets us offer better economics.

No — we don't guarantee a specific rank, sales number, or viral event. We commit to doing the agreed work, measuring what happens, and staying accountable for the outcome.

Money-back applies where delivery was demonstrably zero. Outside that, underperformance is treated as time-based — we diagnose, adjust, and keep working toward the target.

Click a question — height transition only, no fade, accent colour on the open state.

Guarantee / Commitment Block

We don't promise that every book will explode overnight. Publishing doesn't work that way — and neither does building a readership.

What we do promise is that we'll do the work we've committed to, measure what happens, and stay accountable for the outcome. If we fall short of our commitments, we'll make it right — at our cost.


"We commit to doing the work. You give it the time and access it needs to work."

No badge, no shield icon, no animation — this section is meant to feel still and deliberate, per 50.5.

90-Day Journey
Days 1–30

Build the foundation

  • Establish positioning
  • Prepare content
  • Begin discovery
Days 31–60

Build momentum

  • Identify what resonates
  • Strengthen social proof
  • Expand reader acquisition
Days 61–90

Measure what works

  • Compare against baseline
  • Improve weak points
  • Set next growth priorities

"The first month establishes the foundation. The following months give the work enough time to learn, compound, and improve."

Background can flex dark or light depending on surrounding rhythm — shown light here since it follows the FAQ (light) in the homepage order.

Footer

50.11 — Phase 2 Exit Criterion

Where this leaves the checklist

Self-assessed honestly: green means built and testable on this page right now; grey means it still needs a real asset, a formal audit, or a human sign-off this page can't provide.

Foundations

Colour tokens defined and documented
Both typefaces selected — DM Serif Display + Inter chosen from the PRD's own candidate list; licensing confirmation and web-performance testing (sub-40kb subset) still needed
Type scale implemented and fluid across breakpoints
Spacing scale implemented
Grid system implemented — tested live at 320/375/768/1280px, resize the frame above to confirm
Motion tokens defined; reduced-motion behaviour implemented and testable via OS setting

Components

Navigation (desktop + mobile + scroll behaviour)
Buttons — primary, secondary, ghost, all states
Hero section
Proof strip — including the resolved range-format metric
Stage card
Service card
Pricing card + commitment selector — live-wired to real plan prices
Audience selector card
Case study card
CTA section (standalone)
FAQ accordion
Guarantee/commitment block
90-day journey timeline
Footer

Visual review

Dark/light sections side-by-side — visible throughout this page, but a formal contrast pass hasn't been run
Book cover presentation with real covers — this page uses placeholders only
All components reviewed mobile-first (this page is built and should be reviewed narrow before wide)
WCAG AA contrast ratios formally verified for every text/background pair
Reduced-motion mode — implemented globally, testable via OS setting

Handoff

All tokens exported — as CSS custom properties in this file's :root, ready to lift into the actual site build
Component states documented beyond what's demoed here (edge cases, error states)
Typography specimens provided
Spacing and grid documented
Motion specifications documented with duration and easing values