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.
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:
<link rel="stylesheet" href="/colors_and_type.css">
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.
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.
| Token | Value | Use |
|---|---|---|
| --p-bone | #FCFAF8 | Page background |
| --p-cream | #F2EDE4 | System surface · all product still-lifes |
| --p-linen | #E3DDCC | Secondary neutral · hairline rules |
| --p-charcoal | #2A2820 | All type · logotype · ink |
| --p-moody-plum | #4F4050 | Secondary dark bg · pairs with lilac |
| --p-warm-straw | #E8DB84 | TTC / Conception hero fill |
| --p-mid-lilac | #E3CBE3 | Pregnancy mid (2nd Trimester) |
| --p-melon | #FF8080 | Motherhood mid · Mom Multi · Women's Daily |
| --p-petal | #FFCECA | Motherhood light · Postpartum tint |
| --p-sage-light | #E7EDE9 | E-comm top-nav wayfinding |
| --p-clay | #EE857D | Motherhood deep · coral accent fill |
| --p-highlight-yellow | #F5D000 | TTC pop · digital-only · charcoal type |
| --p-highlight-lilac | #E6A6E6 | Pregnancy pop · digital-only · charcoal type |
| --p-highlight-coral | #FF5C7A | Motherhood pop · digital-only · cream type |
| --p-highlight-sage | #6FEDBF | Wellness pop · digital-only · charcoal type |
| --font-serif | Tobias, Cormorant Garamond, Iowan Old Style, Georgia, serif | Headlines · statistical numerals |
| --font-sans | Haffer, Inter, Helvetica Neue, Arial, sans-serif | Body · UI · CTAs · wayfinding |
| --font-mono | PP Neue Montreal Mono, JetBrains Mono, ui-monospace, SF Mono, Menlo, monospace | Eyebrows · badges · metadata · codes |
| --s-4 | 16px | Default spacing unit (8-point scale) |
| --r-md | 4px | Default border-radius (system is mostly square) |
Full list lives in Foundations · Color, Typography, and Spacing & Radii. Print/production reference is on Production Swatches.
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.
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.
- All componentscomponents/index.html — thumbnail index, 12 entries
- Buttonscomponents/buttons.html — primary, ghost, color CTAs, tags, pills, links
- Section Headercomponents/section-header.html — eyebrow + rule + title pattern
- Product Cardcomponents/product-card.html — SKU tile with Benefit List rollover
- Quick Viewcomponents/quick-view.html — PLP overlay drawer
- Subscribe & Savecomponents/subscribe-save.html — PDP price-variant toggle
- What's Insidecomponents/whats-inside.html — mobile-first ingredient module
- PDP Trust Stripcomponents/pdp-trust-strip.html — four-badge below-the-fold strip
- Benefit Listcomponents/benefits.html — packaging-front benefit column
- Doctor's Notecomponents/doctors-note.html — clinical hairline-grid template
- Prompting Cardscomponents/prompting-cards.html — playing-card chassis (capture + present modes)
- Timeline Carouselcomponents/timeline-carousel.html — LifeArcTimeline (migrated from the retired Web UI Kit)
- Mega Navcomponents/mega-nav.html — top-level navigation panel
- Info Cardscomponents/info-cards.html — clinical / editorial card patterns
- Formscomponents/forms.html — input, select, checkbox, prescription-pad motif
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>/.
- Globaliconography/global.html — UI affordances, arrows, dots
- Benefit Iconsiconography/benefit.html — 87 marks, claim ↔ SKU mapped
- Product Iconsiconography/product-icons.html — 32 SKU-level glyphs
- Trust & Value Badgesiconography/trust.html — 10 commerce badges (PDP minis + compact tag-pills for mobile)
- Standards Iconsiconography/standards.html — six stage-disc markers (OB/GYN-formulated, 3rd-party tested, etc.)
- Ingredient Indicatorsiconography/ingredient.html — 7 allergen / dietary cues
- Instructional Iconsiconography/instructional.html — 11 dose / timing / mode glyphs
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.
- Stat Ring · Stack · Splitdataviz/stat-ring.html · stat-stack.html · stat-split.html
- Bar · Line · Radialbar-chart.html · line-chart.html · radial.html
- Venn · Infographic · Spec Tablevenn.html · infographic.html · spec-table.html
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.
- Hero Blockskits/email-heroes.html — full-bleed and split treatments per stage
- Stat Blockskits/email-stats.html — large-numeral RCT callouts
- Editorial Blockskits/email-editorial.html — long-form magazine layouts
- Product Blockskits/email-products.html — SKU cards, comparison rows
- Lifecycle Blockskits/email-lifecycle.html — welcome series, win-back, replenishment
- Utility Blockskits/email-utility.html — order receipts, shipping notifications, footers
- Sample 01 / 02email-sample-01.html · email-sample-02.html — fully-composed reference emails
Kits per medium.
Composed UI surfaces—useful as a quick reference for how the components stack together on a real page or asset.
- Collection Page UXkits/shop-all.html — PLP / shop-all composition
- Product Page UXkits/pdp.html — full PDP stack, sticky add-to-cart, RCT cards
- Clinicalkits/clinical.html — doctor's-note variants, ID tags, story covers
- Socialkits/social.html — 1:1 and 4:5 frames
- Adskits/ads.html — paid-media frames per stage
- Co-brandkits/campaign.html — partnership campaign layouts
- Presentationkits/presentation.html — slide templates for internal + stakeholder decks
Packaging is documented separately at Packaging (Daily Pill Packs live; Bottles, Gussets, and Jars locked until comps land).
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.
- Brand Housebrand-voice/brand-house.html — values, promise, vocabulary
- Personabrand-voice/persona.html — who Perelel sounds like
- Tone of Voicebrand-voice/tone-of-voice.html — do / don't pairs
- In Practicebrand-voice/in-practice.html — worked examples on real surfaces