Quote Intake is a drop-in multi-step estimator for agency and studio sites. Visitors pick a project type, set scope with sliders or number fields, choose a timeline (and optional rush), then review an indicative range. Designers own the narrative, formula, and look without touching code.
Lead delivery is explicit and honest: a webhook URL posts structured JSON on final submit; without a URL the flow ends on a success summary. Contact mode adds required email + note when you want the address on the form. Consent is required whenever Contact is on or a webhook is set.
Most “quote widgets” are static price tables or dead forms. Buyers need a calculator that feels alive and actually delivers the lead.
Live range: spring-animated estimate from formula × multipliers
Designer panel: steps, options, formula, webhook, theme, fonts, desktop spacing
Lead hook: optional webhook JSON POST (Formspark / Make / Zapier)
Contact mode: optional email + note when you need them on-form
Honest defaults: no fake email sending — empty webhook = local summary
A11y: labels, errors, radiogroups, focus rings, gated aria-live
Zero external deps: framer + framer-motion only
Quote Intake is a drop-in multi-step estimator for agency and studio sites. Visitors pick a project type, set scope with sliders or number fields, choose a timeline (and optional rush), then review an indicative range. Designers own the narrative, formula, and look without touching code.
Lead delivery is explicit and honest: a webhook URL posts structured JSON on final submit; without a URL the flow ends on a success summary. Contact mode adds required email + note when you want the address on the form. Consent is required whenever Contact is on or a webhook is set.
Most “quote widgets” are static price tables or dead forms. Buyers need a calculator that feels alive and actually delivers the lead.
Live range: spring-animated estimate from formula × multipliers
Designer panel: steps, options, formula, webhook, theme, fonts, desktop spacing
Lead hook: optional webhook JSON POST (Formspark / Make / Zapier)
Contact mode: optional email + note when you need them on-form
Honest defaults: no fake email sending — empty webhook = local summary
A11y: labels, errors, radiogroups, focus rings, gated aria-live
Zero external deps: framer + framer-motion only