Paragraphs

Paragraphs is a contributed module that adds the paragraph entity: a small, typed content item with its own fields, owned by one parent entity.

Learn DrupalDrupal glossary Last updated

Paragraphs is a contributed Drupal module that lets editors build a page from stackable, typed pieces instead of one large body field. Each piece is a paragraph: a small entity with its own fields, such as an image with a caption or a pull quote. A paragraph field on a node holds an ordered list of them.

How it works in Drupal 11

Paragraphs depends on Entity Reference Revisions, and release 8.x-1.23 declares Drupal ^10.3 or ^11. A paragraph is an entity with the ID paragraph. Its bundle is a Paragraphs type, a configuration entity with the ID paragraphs_type. Paragraphs are revisionable: the entity class declares its own revision tables.

A site builder creates the types at Structure › Paragraph types (path /admin/structure/paragraphs_type) and adds fields to each, in the same way as for a content type. Then they add a field to a content type, choosing Reference and then Paragraph (revisions), and tick which paragraph types the field allows. The permission administer paragraphs types guards the type list. The optional Paragraphs Type Permissions submodule adds permissions for individual types.

On the edit form, the editor adds paragraphs, picks a type, fills in its fields and drags paragraphs into a new order. The stable widget also offers duplication and a drag and drop mode that can move a paragraph, with its children, into another paragraph. Each type renders with its own template: Paragraphs suggests paragraph--[type].html.twig and a variant per view mode.

Example

A landing page needs a flexible body. Go to Structure › Paragraph types › Add paragraph type and create Text with image, with an image field and a long text field. Create Quote, with a quote and an attribution. Then open Structure › Content types › Landing page › Manage fields, add a Paragraph (revisions) reference field called Sections, and allow those two types. An editor can now stack any mix of text blocks and quotes in any order on each landing page.

Common mistakes

  • Trusting old widget names. On 26 October 2026 the project page still describes a Classic widget and an Experimental widget with major changes expected. In 8.x-1.23 the README calls them Legacy (formerly Classic) and Stable (formerly Experimental), and the form display lists Paragraphs Legacy and Paragraphs (stable).
  • Expecting shared content. A paragraph belongs to one parent. If several pages need the same block, use the Paragraphs Library submodule or a separate content type.
  • Expecting Paragraphs to design the page. A paragraph type defines fields and a display. The arrangement on the page still comes from templates, the type's view modes or another tool.

For marketing and content teams

Paragraphs gives editors a menu of approved building blocks. You add what a page needs, in the order you want, without touching HTML. Ask your developer for the list of paragraph types, and request a new type when a block keeps being faked with formatting in a text field. Because each type has named fields, the content stays structured and can be restyled later. The editor works in a form, not on the finished page. See also Layout Builder for controlling how a page is arranged.

With DXPR

DXPR's comparison with Paragraphs, reviewed on 24 September 2026, says DXPR Builder can be introduced on selected fields or content types while existing Paragraphs pages stay in place. It also says that converting existing content is a separate decision and not an automatic effect of installing DXPR Builder.

Sources

Questions about Paragraphs

No. It is a contributed module that you add with Composer. Release 8.x-1.23 declares support for Drupal ^10.3 or ^11 and depends on the Entity Reference Revisions module. The drupal.org project page, checked on 26 October 2026, lists 8.x-1.23 as the latest release, dated 5 August 2026.

Paragraphs (stable). The 8.x-1.23 README calls it the default and recommended widget, and a new Paragraph field made in Field UI gets it. The README also warns that changes between versions are to be expected. Paragraphs Legacy has limited features and, per the README, will not be changed or updated.

Not by default. Each paragraph stores its parent's entity type, ID and field name, so it belongs to one parent. The Paragraphs Library submodule, which needs Entity Usage and Views, adds a library of reusable paragraphs for this purpose.

Paragraphs shapes the content you enter: each paragraph type has its own fields on the edit form. Layout Builder, a core module, shapes how stored content is displayed, by arranging fields and blocks in sections.

Cite this definition

"Paragraphs." DXPR Drupal glossary, https://dxpr.com/hc/documentation/learn-drupal/drupal-glossary/paragraphs. Last updated October 26, 2026.

Related terms

All Drupal terms from A to Z