Allows modules or themes to register layouts by simply providing a YAML file and some templates, and for other modules to list the available layouts and render them.

This is an API module to hold the Drupal 8 plugin manager for layouts. On it's own, it doesn't do anything - you'll need to install a module which (1) uses layout plugins to render something, (2) provides some layouts or (3) both.

There are a couple sub-modules that do just that for example purposes:

  • Example layouts: It registers a few example layouts. You can use this for testing or as a demonstration for how to register your own layouts.
  • Block Page (with Layout plugin integration): Provides a display variant for Page Manager which works just like "Block Page" except it uses a layout registered with Layout Plugin.

The goal is to have one layout plugin type that can be shared between multiple projects, for example, both Panels and Display Suite use layouts registered with Layout Plugin.

We'd eventually like to see this merged into Drupal core: #2296423: Implement layout plugin type in core

How to register new layouts?

Check out our documentation on how to register new layouts!

This is how you make new layouts available to Display Suite and Panels, and any other module that uses Layout Plugin.

Modules that use Layout Plugin

  • Panels: Uses layouts from Layout Plugin to render pages, and provides a couple layouts of its own.
  • Display Suite: Uses layouts from Layout Plugin to render view modes, and provides a couple layouts of its own.
  • Radix Layouts: Provides a library of useful layouts based on the Bootstrap 3 grid system (used in Panopoly).
  • Bootstrap Layouts: Provides a library of useful layouts based on the Bootstrap 3 grid system.

Project Information

Downloads