Canvas Full HTML Module Addresses Rich Text Limitations in Drupal Canvas
In a detailed technical walkthrough published on Specbee’s blog, Drupal developer Zeeshan Khan explains how the Canvas Full HTML module addresses one of the most common limitations in Drupal Canvas (Experience Builder): restricted rich-text editing inside components.
Drupal Canvas, introduced as part of Drupal’s Starshot initiative, provides a modern, React-based page-building experience using reusable components and real-time previews. However, Canvas enforces its own text formats—canvas_html_block and canvas_html_inline—which significantly limit available CKEditor 5 toolbar options and HTML flexibility for content editors.
Khan notes that this restriction has been a recurring frustration within the Drupal community, particularly for editors who require access to source editing, additional heading levels, embedded media, tables, or custom markup. Because Canvas locks text formats at the component level, switching to richer formats during editing is not possible by default.
To resolve this, the Canvas Full HTML module replaces Canvas’s restricted formats with Drupal’s native full_html format. The module uses hook_canvas_storable_prop_shape_alter() to detect rich-text properties in Canvas components and override their allowed formats. Since Canvas bypasses standard Drupal rendering pipelines, the module also injects its required assets using hook_library_info_alter().
The tutorial also addresses practical UI challenges, such as CKEditor dropdown menus being clipped by Canvas’s layout containers. The module includes JavaScript fixes that dynamically adjust overflow handling, ensuring the editor interface remains usable within Canvas’s React-based UI.
Khan outlines the installation and configuration process using Composer and Drush, followed by a simple administrative setting to enable full HTML support. An example “Rich Text Block” component is included with the module to demonstrate how full HTML editing can be implemented in custom Canvas components.
According to the article, the module is particularly useful for marketing teams building landing pages, content-heavy sites such as blogs or documentation portals, migration projects carrying legacy HTML, and agencies seeking to reduce editor support friction.
Future development plans include introducing component-level text-format selection, allowing site builders to apply different formatting rules to individual Canvas components rather than enforcing a global setting.
This article summarises a technical tutorial originally published on the Specbee blog by Zeeshan Khan, creator of the Canvas Full HTML module.
The Canvas Full HTML module is available on Drupal.org at drupal.org/project/canvas_full_html.
