Contact Form
Name, email, an optional subject and the message, validated on the client, with a success panel and a hidden honeypot field named website.
import { ContactForm } from "pleate/marketing/contact";Talk to the team
Talk to the Plate team
Questions about plans, partnerships or a booking that went wrong. We answer within a working day.
- Emailhello@plate.app
- HoursMon to Fri, 9 to 18 CET
- OfficeVia Tortona 31, Milan
Props
- onSubmit
website is the honeypot: drop submissions where it isn't empty.
({ name, email, subject?, message, website }) => void | Promise- showSubject / minMessageLength / maxMessageLength
Fields and rules.
boolean / number / numberdefault true / 10 / 2000- loading / error / fieldErrors
Server state.
boolean / string / object- sent / onSentChange / footnote
Success panel control; a note under the button.
boolean / (sent) => void / ReactNode- labels
Every visible string, for your wording or translation.
object
Accessibility
- Labels, descriptions and errors are linked to each field; the first invalid field gets focus on submit.
- The honeypot is out of the tab order and hidden from screen readers.
- The success panel is a status region.