Design Reference

Brand Guide

Living reference for every visual decision on the West Over Woods Construction website. Check this page before styling any component or page.

Logo

West Over Woods Construction logo
West Over Woods Construction logo on dark

Source: src/assets/images/branding/West-Over-Woods-Construction-logo.png

Brand Colors

Primary

#43a942 var(--color-primary)

Primary green — hover states, active states. Not for text on light backgrounds (fails WCAG).

Secondary

#107139 var(--color-secondary)

Dark green — button backgrounds, eyebrow text, links, emphasis. Passes WCAG AA on all light backgrounds.

Accent

#012104 var(--color-accent)

Deepest green — headings, dark sections, high contrast

Light

#EAF7EB var(--color-light)

Tinted background — hero sections, navbar, light fills

Border

#D0EBCF var(--color-border)

Pale sage — borders, dividers, subtle separation

Dark

#151716 var(--color-dark)

Near-black — body text, dark UI elements

Neutral Palette

Neutral

#f9f9f9 var(--color-neutral)

Off-white — footer, alternating section backgrounds

Base 100

#ffffff var(--color-base-100)

White — primary page background

Base 200

#f2f2f2 var(--color-base-200)

Light gray — hover states, code backgrounds

Base 300

#e5e5e5 var(--color-base-300)

Mid gray — borders, disabled states

Typography

Headings

Montserrat

'Montserrat', sans-serif

Bold (700) — all h1–h5 elements

Body

Lato

'Lato', sans-serif

Regular (400) — body text, line-height 1.8

UI / Buttons

Source Sans 3

'Source Sans 3', sans-serif

Semibold (600) — buttons, nav, eyebrows, h6

Type Scale

Heading 1
4.1rem / 70px · 700

Expert Residential Construction

Heading 2
2.94rem / 50px · 700

Rooted in the Willamette Valley

Heading 3
1.88rem / 32px · 700

Direct & Accountable Management

Heading 4
1.64rem / 28px · 700

Build Smarter, Waste Less

Heading 5
1.41rem / 24px · 700

The Master's Eye for Detail

H6 / Eyebrow
0.94rem / 16px · 600
Core Values
Body
1.0625rem / 17px · 400

West Over Woods Construction is a certified, family-run business serving the greater Willamette Valley and the Northern Coast.

Buttons

Primary

Schedule A Consultation .btn .btn-primary

Background: var(--color-secondary) → hover: var(--color-primary)

Outline

View Project Gallery .btn .btn-outline

Ghost

Ghost Button .btn .btn-ghost

White (for dark sections)

Start Your Project .btn .btn-white

Light (for image overlays)

Start Your Project .btn .btn-light

Background: var(--color-light) → hover: white. Used in CtaFooter on photo backgrounds.

Button Specs

  • Font: Source Sans 3, 600 weight, 1.05rem
  • Padding: 15px 30px
  • Border-radius: 8px
  • Transition: background-color, border-color, color — 200ms ease-in-out
  • States: hover, focus-visible (2px outline), active

Section Backgrounds

.section-light — var(--color-light) #EAF7EB — hero, CTA sections
.section-neutral — var(--color-neutral) #f9f9f9 — about, alternating sections
.section-dark — var(--color-accent) #012104 — values, quotes
.bg-base-100 — #ffffff — default content sections

Components

Eyebrow

Core Values

.eyebrow

Source Sans 3, 600, uppercase, 0.08em tracking, var(--color-secondary). On dark sections, override with !text-primary.

Card

Card Title

Cards use bg-base-100 with a subtle border (var(--color-border)) and shadow-card. Padding: 2rem. Border-radius: 0.75rem.

.card

background + border + shadow-card + rounded-xl + p-8

Process Card

Used inside the ProcessSection component on every service page. Section background is bg-secondary, card background is bg-light, number badge is bg-secondary, heading is text-accent.

1

Design & Planning

We discuss your vision, develop detailed plans, and handle permits so every phase of the project meets Oregon code.

2

Execution

We execute the work with owner oversight, keeping you informed at every step and protecting your home throughout.

Service Card

Link card for a service. Square image flush to the left edge, label and arrow on the right. Image is sourced from the centralized SERVICE_IMAGES map in src/data/service-images.ts, keyed by the service slug. Updating a service page's hero image updates every card that links to it. Used on the About page services grid, in the RelatedServices block, and anywhere a service needs to be surfaced with imagery.

<ServiceCard label="Kitchen Remodeling" href="/services/kitchen-remodeling/" />

Props: label (string), href (string, must be a key in SERVICE_IMAGES), alt (optional override), imageSize (optional, default 112px).

Separator


.separator

3rem wide, 3px tall, var(--color-primary)

Article / Prose Image

All images inside article prose (tips, guides, case studies) use rounded-xl corners and shadow-lifted. Applied globally via .prose img in global.css. The same treatment applies to the tip/article hero image rendered above the prose block.

Example article image — NW Corvallis kitchen remodel by West Over Woods Construction
/* global.css — auto-applied to all prose images */ .prose img { border-radius: 0.75rem; box-shadow: var(--shadow-lifted); width: 100%; } /* Astro Image component — hero image above article */ class="rounded-xl shadow-lifted w-full object-cover aspect-[16/9]"

Shadows

shadow-soft

Dropdowns, subtle depth

shadow-card

Cards, content blocks

shadow-lifted

Images, featured content

shadow-deep

Modals, overlays

Contrast Reference (WCAG AA)

Minimum 4.5:1 for normal text, 3.0:1 for large/bold text. All pairings below pass AA.

On Light Backgrounds (Light, Border, White)

  • Eyebrow text: var(--color-secondary) #107139 — 5.5:1+ on all light surfaces
  • Headings: var(--color-accent) #012104 — 15.6:1+
  • Body text: var(--color-dark) #151716 — 9.7:1+
  • Avoid: var(--color-primary) #43a942 for text — only 2.7:1 on light backgrounds

On Dark Sections (Accent #012104)

  • Eyebrow text: var(--color-primary) #43a942 — 5.7:1
  • Headings / body: white — 15.6:1+
  • Muted text: white/80 minimum for body, white/60 for tertiary info

Footer (Secondary #107139 bg)

  • Section headings: white/90 — 4.9:1
  • Body / links: white/80 — 3.8:1 (passes for bold/semibold text)
  • Muted / copyright: white/70 — 2.9:1 (acceptable for decorative, not critical info)

Spacing & Layout

  • Max container width: 1200px
  • Section padding: 5rem top/bottom (80px), 1rem sides (scales to 2.5rem on desktop)
  • Content padding: px-4 (mobile) → md:px-10 (desktop)
  • Grid gaps: gap-6 (images), gap-8 (cards/values), gap-12 (two-column layouts)
  • Bottom margins: mb-4 (tight), mb-6 (standard), mb-8 (generous), mb-12 (section intros)