Skip to content
Website Sections

ContactFlow

A contact form taken one step at a time. The card reshapes to fit each step, focus moves with you, and the sent state draws a tick.

Download
  • React
  • Tailwind CSS v4
  • motion

Props

NameTypeDefaultWhat it does
topicsstring[]—The choices on the first step.
onSubmit(data) => void | Promise<void>—Sends the message: topic, name, email, message. Throw or reject to show the error line.
titlestring—Heading beside the form.
eyebrowstring—Small line above the title.
subtitlestring—Line under the title.
channels{ label, value, href? }[]—Other ways to reach you, beside the form.
labelsobjectEnglishEvery word in the form. Give only the ones to change.
colorstring"#a78bfa"Colour of the bar, the choice and the main button.
inkstring"#0b0a14"Text colour on that colour.
tilestring"#15122a"Card colour.
headingAsElementType"h2"Heading tag.
classNamestring"bg-[#0b0a14] px-5 py-16 text-white"Set padding and colours here.