The Front Porch styleguide
Block Party design system reference. Every primitive on this page is a real component imported from @/components/ — what you see here is what ships.
Marks, wordmark, ornaments

Surfaces, ink, accents
Surfaces
Ink
Bunting accents
Category roles
Each seller category maps to one accent. These aliases are what domain code references — never reach for the raw accent token inside a category-aware component.
Five families, one voice
One 24×24 family
Hand-drawn on a 24×24 grid, 1.6 stroke, currentColor. Pass size and color via props. Add new icons to components/brand/icons.tsxonly — they're family members, not independent assets.
The reusable interface
Button
Card variants
Eyebrow labels
StatusPill (semantic)
OpenBadge
Porch components
PorchCheck trust badge
StandStatusPill (event status)
BadgesRow
GoalChalkboard (kid-only)
Pin colors (map)
The signature moves
Bunting strip
Five colors strung from a sagging line. Hero gets a long one; section headers can use a short 3–5-flag fragment. Don't repeat it more than twice per screen.
Wordmark lockup
the in serif italic, Front Porch in Allura. Never set the script word in another typeface.
“Open” door badge
Round badge mimicking a bakery door hanger. Reserved for the featured-shop and shop-detail status hero. Live listings use the small StatusPill, not this.
Leaf flourish
Simple line + two-petal leaf. Use as a section divider or to close a quiet section. One flourish per screen, max — let the script type and bunting do the rest of the talking.
How it sounds
Say · don't say
- ✓porch shopstorefront
- ✓from my homebusiness
- ✓pick it up at the porchcheckout
- ✓neighborscustomers
- ✓list your porchcreate a listing
- ✓pay directprocess payment
- ✓a real person reviewsautomated review
- ✓free, foreverfreemium
Tone rules
- Second person. "Your block," "your neighbors," "your porch." Never "users."
- Concrete, not abstract. Name the actual things: sourdough, lemonade, candles, eggs. Parallel lists.
- Short sentences. Then longer ones. Mix the rhythm — don't pile on clauses.
- Avoid commerce words. No "merchant," "vendor," "transaction," "checkout," "platform." Triggers the wrong mental and legal frame.
- Don’t certify compliance. Sellers self-attest. We’re educational, not advisory. Never say "you’re compliant."
- Privacy notes are matter-of-fact. "Address hidden by default" is a feature, not an alarm.
From the old stack → Block Party
The earlier production app used a different type stack and a sage-leaning palette. Below is the direct swap table — search-and-replace through globals.css and per-component style props in that order.