Marketing

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

We only use your email to reply to you.

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.