| Understand what Plus Suite is and how it differs from core Layout Builder |
Overview |
Use Plus Suite when you need a WYSIWYG page builder on top of core Layout Builder with drag-and-drop, inline editing, and nested layouts. Use core Layout Builder when you only need basic block placement via the sidebar form. |
| Install Plus Suite on a new or existing site |
Installation & Setup |
Use the DDEV install script for new projects and evaluation. Use manual module installation for existing sites already using Layout Builder. |
| Understand the module architecture and dependencies |
Architecture & Module Map |
Reference this when you need to understand how Plus Suite's modules relate to each other and which module provides which functionality. |
| Configure Edit Mode and the Navigation+ toolbar |
Edit Mode & Navigation+ |
Use Edit Mode for any content type using Layout Builder where editors need WYSIWYG page building. Disable it for read-only, API-sourced, or admin-form-based content types. |
| Create custom editing modes |
Mode Plugins |
Use custom Mode plugins when you need editing modes beyond the built-in Edit Mode — e.g., a Preview mode, Help mode, or workflow-specific mode. |
| Create custom toolbar tools |
Tool Plugins |
Use custom Tool plugins when you need custom tools for the Edit Mode toolbar — e.g., a color picker, annotation tool, or content validation tool. |
| Configure promoted blocks in the drag-and-drop sidebar |
Place Block & Promoted Blocks |
Configure which blocks appear in the drag-and-drop sidebar, customize their icons, and understand the block placement flow. |
| Work with nested layouts (layout blocks) |
Nested Layouts |
Use nested layouts when you need blocks-within-blocks that can be treated as one reusable unit. Use section layouts for simple column arrangements. |
| Configure inline field editing |
Inline Editing |
Use Edit+ to let users click on any field and edit it directly. Enable inline editing on fields editors change frequently; disable it on computed, read-only, or complex-validation fields. |
| Understand how unsaved changes are stored |
Tempstore Strategy Pattern |
Use Tempstore+ to manage unsaved changes across entities and Layout Builder sections. It solves different key generation, collection naming, and workspace awareness needs via the Strategy pattern. |
| Configure placeholder content for new blocks |
Field Sample Value |
Configure placeholder content that appears when new blocks are placed, or create custom sample value generators for specific field types. |
| Save and reuse layout sections |
Section Library |
Use the Section Library to save and reuse Layout Builder sections, with all their blocks, as templates across pages. |
| Handle media drag-and-drop onto the page |
Media Handling |
Use desktop drag-and-drop or media replacement to handle media in Plus Suite. Both depend on the DropzoneJS module and enyo/dropzone JS library. |
| Configure keyboard shortcuts and user preferences |
Hotkeys & User Settings |
Configure or customize keyboard shortcuts for tools. Hotkeys are stored per-user and customized via the Settings sidebar. |
| Customize the sidebar panels |
Sidebar System |
Customize sidebar content for your tools or modes. Sidebar visibility is cookie-based, and sidebars rebuild on every tool switch. |
| Understand how entities are wrapped for editing |
Twig Events |
Subscribe to TwigRenderTemplateEvent to intercept and modify template output during Twig rendering without overriding templates; it fires on every template render so keep subscribers fast. |
| Use Plus Suite with Drupal Workspaces |
Workspaces Integration |
Use Plus Suite with Drupal Workspaces when you need staged content publishing. Tempstore+ handles workspace isolation automatically via key suffixes. |
| Create block types that integrate with Plus Suite |
Custom Block Types |
Create custom block types for every design component. Use event subscribers to set placement defaults and add design options. |
| Override templates and customize theming |
Theming & Templates |
Override color configuration at /admin/config/content/plus-suite for brand customization. Override templates only when structural changes are needed. |
| Understand the JavaScript modules and AJAX commands |
JavaScript Architecture |
Reference this when extending Plus Suite with custom JS, debugging client-side issues, or understanding AJAX command flow. |
| Find the right Plus Suite event to subscribe to |
Events & Event Subscribers |
Subscribe to Plus Suite events to customize behavior without overriding core module code. Check this catalog before writing new hooks or overrides. |
| Configure permissions for editors and admins |
Permissions & Access |
Apply this permission matrix when setting up roles for content editors and site builders. |
| Understand what the recipe installs and configures |
Recipe Structure |
Reference this when troubleshooting recipe application, understanding what gets installed, or deciding whether to use recipe vs manual installation. |
| Choose between Plus Suite and Canvas |
Plus Suite vs Canvas |
Use Plus Suite when you have existing Layout Builder investment or a PHP-only team. Use Canvas for new Drupal CMS projects prioritizing long-term core alignment. |
| Build a custom design system with Plus Suite |
Custom Design System Integration |
Follow this guide when building Plus Suite for a branded site — custom block types, promoted block icons, sample content generators, and block properties that match your design system. |
| Create custom section layout plugins |
Custom Layout Plugins |
Create custom layout plugins when core's basic one/two/three column layouts don't match your design system's grid. YAML covers most cases; use PHP class only when per-section configuration is needed. |
| Build a complete component end-to-end |
End-to-End Component Creation |
Follow this walkthrough when creating any new Plus Suite component from scratch. Use the checklist at the end to verify completeness. |
| Use UI Patterns / SDC components with Plus Suite |
UI Patterns & SDC Integration |
Use UI Patterns layouts as structural section layouts and block_content for content blocks that need inline editing. Do not use UI Patterns blocks as your primary strategy if inline editing is a requirement. |
| Troubleshoot known issues and avoid pitfalls |
Common Mistakes & Known Issues |
Read this before starting any Plus Suite implementation and when troubleshooting problems. |