Primary dark. Headlines, body text, dark bands and the footer.
Style sheet · v1
Unhurried, beautiful care.
Boutique hospitality, not a clinic. Warm linen grounds, deep juniper for trust, terracotta used sparingly, and arches borrowed from the 1920s house itself.
Color in use
Contrast ratios are computed from the tokens, not typed in.
The page ground — never pure white. Linen 50 raises bands and cards.
Accent for display type (24px+), icons, berries and rules. Never small text.
The darker terracotta that carries buttons, links and eyebrows at small sizes.
Linen grounds every page; juniper carries trust in a few deep bands; terracotta is the single call to action, so it stays under a tenth of the screen. Terracotta itself (#B5654A) is 3.7:1 on linen, which is why small text and buttons use Terracotta Ink instead.
Type
Newsreader for headlines: a bookish serif with a warm italic, set light (300–450) and slightly tight. Instrument Sans for everything you read to act on. Both load through next/font.
Every size is fluid: it sits at the mobile value at 390px, the desktop value at 1440px, and moves smoothly in between — no jumps at tablet widths.
A calmer kind of vet.
Your pet’s doctor, by name.
Here for the season?
Senior & comfort care
Now she barely notices.
Appointments are never rushed, and your pet always sees their own doctor.
Exams, vaccines, nutrition and parasite prevention, planned around your pet’s age and way of life.
What a visit is likeCaptions and meta, 14px
- text-feature · House-call headline60 / 38
- text-title · Booking headline48 / 32
- text-statement · Footer statement34 / 26
- text-numeral · Pillar figures64 / 40
Sizes shown desktop / mobile, in px. Line height tightens as size grows.
Spacing & grid
12 columns · 24 gutter · 120 margin · 1200 content · sections 104
4 columns · 16 gutter · 24 margin · sections 64 · touch targets ≥ 44
Margin (gutter) and section rhythm (section) are fluid tokens, so a 1024px tablet gets 82px margins and 88px section spacing rather than either extreme.
Shape language

Key components

Dr. Priya Raman
Feline & Senior Care
Loves the patients other people call “difficult”.
Recovery suites
Quiet private rooms, updates by text and photo.A few quiet, private rooms for post-surgical stays, with updates by text and photo.
All done. Pepper was a model patient, apart from the singing.
“Our cat used to hide for a day after every vet visit. Now she barely notices.”
Ready when you are.
Online, by phone, or by text.
Next.js App Router + Tailwind CSS v4. Tokens live in brands/juniper-house/theme.css as @theme variables, so every class on this page — bg-juniper, text-h1, py-section — is generated from them.
@theme {
--color-juniper: #23372f; --color-linen: #f3ede3;
--color-terracotta: #b5654a; --color-terracotta-ink: #9a4f37;
--text-display: clamp(2.75rem, calc(2.75rem + 32 * (100vw - 390px) / 1050), 4.75rem);
--spacing-gutter: clamp(1.5rem, calc(1.5rem + 96 * (100vw - 390px) / 1050), 7.5rem);
--radius-panel: clamp(1.5rem, …, 1.75rem);
}
@custom-variant hovered { @media (hover: hover) { &:hover { @slot } } &[data-state="hover"] { @slot } }