Here you get one of Drupal's own contact forms rendered in the middle of a page, as a paragraph you can style.
Two modules do the work
The Contact sub-module declares three dependencies: the parent project, Drupal core's contact module, and the contributed Contact Formatter module. That third one is the part that matters. The paragraph field references a contact form configuration entity, and without a formatter that knows how to build the form, a reference field would render nothing more useful than the form's label.
How it renders
The bundle's view display sets the reference field to the contact field formatter, which turns the referenced contact form into a working, submittable form inside the paragraph. The bundle itself is spare on purpose: a Content Title and the contact form reference in the Content tab, and the standard appearance controls in the Display tab.
Setting one up
- Create or choose a contact form in Drupal's contact settings.
- Install Contact Formatter, then enable the W3CSS Paragraphs Contact Form sub-module.
- Allow the Contact bundle on your content type's paragraph field.
- Add the paragraph, select the form, then set colour, width and padding in the Display tab.
The W3CSS Paragraphs module page shows the alternatives if you need a more elaborate form.
Contact form or Webform
Core contact forms are the light option and need no extra form builder. The suite also ships a Webform bundle for sites that already run Webform and need conditional logic or handlers. Both bundles install on Drupal 10, 11 and 12, while the newer Paragraphs Bundles project requires Drupal 11.3 or later.
Need someone to own the whole build rather than one region of it? Drupal architecture services — or get in touch.