imagex/recipe-layout

Layout Builder modules and config for ImageX.

Maintainers

Package info

bitbucket.org/ixm/recipe-layout

Type:drupal-recipe

pkg:composer/imagex/recipe-layout

Transparency log

Statistics

Installs: 1 626

Dependents: 0

Suggesters: 0

1.0.0-rc3 2026-08-06 16:06 UTC

This package is auto-updated.

Last update: 2026-08-07 21:39:13 UTC


README

Layout building tools for ImageX Drupal builds: Bootstrap Layout Builder, the IXM custom blocks library, and the Section Library, plus a Layout Builder-enabled Landing Page content type.

Recipes Included

  • core/recipes/administrator_role
  • core/recipes/content_editor_role

Modules Installed

Configuration Highlights

  • Defines a landing_page content type with Layout Builder overrides enabled per node, so editors can build one-off page layouts.
  • Imports Bootstrap Layout Builder's default breakpoints and column layouts (1-column, and 2-column with 25/75, 75/25, full-width, and equal-width options).
  • Sets the Layout Builder Modal width to 85%.
  • Grants the content_editor and administrator roles the layout-override, custom-block, IXM block, and Section Library permissions needed to build and manage landing pages.

IXM Blocks field-type fixes

ixm_blocks ships some field config that conflicts with, or is internally inconsistent with, the shared field storages it depends on:

  • field.storage.block_content.body is shared by every custom block type. ImageX's basic_block_type (from recipe-base) installs it as text_long; ixm_blocks ships its own copy as text_with_summary. Since the "summary" capability isn't actually used anywhere in ixm_blocks_accordion (no template reads it), this recipe keeps the text_long storage and overrides ixm_blocks_accordion's own body field instance and form-display widget to match it (config/field.field.block_content.ixm_blocks_accordion.body.yml and config/core.entity_form_display.block_content.ixm_blocks_accordion.default.yml).
  • ixm_blocks_ping_pong_item's field_body paragraph field ships with field_type: text_long, even though its own storage (field.storage.paragraph.field_body) and its own form widget both expect text_with_summary. This recipe overrides the field instance (config/field.field.paragraph.ixm_blocks_ping_pong_item.field_body.yml) to correct the type.

Without these overrides, adding an Accordion or Ping Pong block throws InvalidArgumentException: Property summary is unknown. the first time the block's edit form is built. If ixm_blocks is ever updated upstream to fix these inconsistencies itself, these three override files can be removed.

Installation

Add the recipe to a project with Composer:

composer require imagex/recipe-layout

Then apply it:

drush recipe:apply recipes/recipe-layout

Notes

This recipe uses strict: false, so it only creates configuration that doesn't already exist — it's safe to reapply on a site that already has some of this configuration in place. It depends on recipe-standard (and transitively recipe-base) for the roles, content types, and permissions groundwork it builds on top of.