Resources · Handoff

Developer handoff.

Everything an engineer needs to ship a Perelel surface: the token file, the font setup, copy-paste snippets per component, and the brand-side rules that can't be enforced by CSS alone. No build step, no JSX dependency—every page in this system ships as vanilla HTML/CSS you can lift directly.

01 · Setup

Drop in the token file.

Copy colors_and_type.css and the /fonts directory into your project. Then link the stylesheet from your HTML head:

HTML · <head>

That's it. colors_and_type.css declares @font-face for every weight of Tobias, Haffer, and PP Neue Montreal Mono, plus the four hand-rendered display faces used in editorial accents (La Frenchie, Mark My Words, The Secret Things, Miss Confidential). All paths are relative to /fonts.

Font licensing. Tobias and Haffer are licensed from Klim Type Foundry via Displaay. PP Neue Montreal Mono is licensed from Pangram Pangram Foundry. The hand-rendered faces ship with individual licenses—confirm domain coverage on every face before deploying to production.
02 · Tokens

Use variables, not values.

Reference tokens by name. If a value isn't tokenized, add it to colors_and_type.css rather than hardcoding inline. The table below is the at-a-glance set—the full token list (~60 entries) lives on the foundation pages.

TokenValueUse
--p-bone#FCFAF8Page background
--p-cream#F2EDE4System surface · all product still-lifes
--p-linen#E3DDCCSecondary neutral · hairline rules
--p-charcoal#2A2820All type · logotype · ink
--p-moody-plum#4F4050Secondary dark bg · pairs with lilac
--p-warm-straw#E8DB84TTC / Conception hero fill
--p-mid-lilac#E3CBE3Pregnancy mid (2nd Trimester)
--p-melon#FF8080Motherhood mid · Mom Multi · Women's Daily
--p-petal#FFCECAMotherhood light · Postpartum tint
--p-sage-light#E7EDE9E-comm top-nav wayfinding
--p-clay#EE857DMotherhood deep · coral accent fill
--p-highlight-yellow#F5D000TTC pop · digital-only · charcoal type
--p-highlight-lilac#E6A6E6Pregnancy pop · digital-only · charcoal type
--p-highlight-coral#FF5C7AMotherhood pop · digital-only · cream type
--p-highlight-sage#6FEDBFWellness pop · digital-only · charcoal type
--font-serifTobias, Cormorant Garamond, Iowan Old Style, Georgia, serifHeadlines · statistical numerals
--font-sansHaffer, Inter, Helvetica Neue, Arial, sans-serifBody · UI · CTAs · wayfinding
--font-monoPP Neue Montreal Mono, JetBrains Mono, ui-monospace, SF Mono, Menlo, monospaceEyebrows · badges · metadata · codes
--s-416pxDefault spacing unit (8-point scale)
--r-md4pxDefault border-radius (system is mostly square)

Full list lives in Foundations · Color, Typography, and Spacing & Radii. Print/production reference is on Production Swatches.

03 · Hard rules

The non-negotiables.

These can't be enforced by CSS alone. Reach the visual outcome the system asks for—if a snippet you're using looks like it violates one of these, that's a bug. The full list with rationale lives in the README hard-rules section.

Buttons

Title Case, Haffer 500, square corners.

No all-caps, no sentence case, no rounded pills, never Neue Montreal Mono. Port the canonical .btn chassis from Components · Buttons.

Color on coral

Charcoal text on coral. Always.

Coral life-stage grounds (--p-petal, --p-melon, --p-clay) take --p-charcoal type. The one exception: --p-highlight-coral (the digital-only Motherhood pop, #FF5C7A) is dark enough to take --p-cream. Cream type otherwise reserves itself for charcoal and moody-plum grounds.

Product surfaces

Products sit on brand beige.

--p-cream / --p-bone / --p-ivory are the default surface for any product still-life. Stage-tinted fields are for editorial moments, not product presentations. Reach for *_Box.png / *_Bottle.png before *_Sachet.png.

Mono restraint

Mono is not wayfinding.

PP Neue Montreal Mono is allowed in eyebrows-as-tags, badges, metadata, step labels, codes. Not button labels, CTAs, inline action links, navigation, headlines, body—anything the eye treats as a way to act or move uses Haffer.

Eyebrows over text

Filled tag pill, not bare mono.

"Pack Your Bag" above a hero, "Postpartum Routine" above an article headline—use the .pill chassis from Buttons. Rounded pill, mono caps, hairline border or solid fill. Never bare uppercase mono floating in space.

Stage swap

Content + photo + palette as a set.

When a block toggles between TTC / Pregnancy / Motherhood / Wellness, copy, photography, and product references change with the palette. Build with a per-stage content map keyed by stage; resolve at runtime from a ?stage= param or attribute.

04 · Components

Copy-paste snippets.

Every component page has a Source tab with the full HTML/CSS. There's no JSX wrapper or framework dependency—drop the markup into whatever you're shipping (Next.js, Liquid, Astro, plain HTML). Listed roughly in order of how often you'll reach for them.

The open-checkbox is intentional. The 12px hairline outlined square (no fill) is a brand motif borrowed from a doctor's prescription pad. Preserve it where you see it; add filled variants alongside if you need a checked state, rather than replacing.
05 · Iconography

SVG glyphs, sized to context.

Six families ship as inline SVG with charcoal strokes. Two sizing rules apply across the system:

  • PDP / e-comm30 × 30 viewBox at 1.25px stroke — legibility wins over elegance in commerce contexts
  • Storytelling / social / email48 × 48 viewBox at 1px stroke — lighter, more editorial

The Benefit Icons page has a live toggle to compare both modes side-by-side. Source SVGs are linked per-tile; right-click to inspect or grab from /assets/<family>/.

No literal wellness symbology. No leaves, droplets, ribbons, flowers, brain icons. When a glyph is needed, the answer is typographic or geometric, not literal.
06 · Data viz

Stat blocks & charts.

Nine canonical chart types live under dataviz/. They share a common stylesheet (dataviz.css) and a small behavior layer (dataviz.js) for hover, count-up, and stage-color swap. Each page has source you can lift.

07 · Email

Block library for ESPs.

Email blocks ship as table-based HTML compatible with major ESPs (Klaviyo, Postscript, Iterable). The Email Overview stitches the system together; the six block libraries below give you per-purpose drop-ins.

08 · Other surfaces

Kits per medium.

Composed UI surfaces—useful as a quick reference for how the components stack together on a real page or asset.

Packaging is documented separately at Packaging (Daily Pill Packs live; Bottles, Gussets, and Jars locked until comps land).

09 · Voice

The copy half.

If you're writing UI copy, microcopy, or any string that ships—read the brand-voice pages first. The system carries voice patterns that aren't visible in code but are easy to violate without realizing.

Em-dash restraint. In body copy, reach for colons, commas, or periods first. The em-dash earns its place only when no other punctuation carries the rhythm. When one is right, close it up—no surrounding spaces.