ContactForm

Full-featured contact form that reads URL params (?service and ?city) to personalise the H1, intro paragraph, and "what happens next" line. Validates required fields, pre-fills dropdowns from params, and shows one of two confirmation screens based on whether the visitor opts into a consultation call.

  • dynamicStates — required · map of service keys → { none, withCity } copy objects
  • variant?"light" (default) | "dark" | "brand"

URL param examples — try these on the real /contact/ page:

  • /contact?service=custom-build&city=burlington
  • /contact?service=renovation&city=oakville
  • /contact?service=adu&city=mississauga
  • /contact?service=adu — service only, no city token
1 — variant="light" · default copy (no URL params)

Get in Touch

Would you like to book a consultation call? *

Licensed Builder CHBA Member Tarion Registered Fully Insured
2 — variant="dark" · default copy

Get in Touch

Would you like to book a consultation call? *

Licensed Builder CHBA Member Tarion Registered Fully Insured
3 — variant="brand" · default copy

Get in Touch

Would you like to book a consultation call? *

Licensed Builder CHBA Member Tarion Registered Fully Insured