DEV Community

Ivan Abramenko
Ivan Abramenko

Posted on

Canvas Palette: page builder for Drupal

Canvas Palette is a Drupal module that adds a collection of ready-to-use visual components to Drupal Canvas, making it possible to build modern pages without writing custom code.

It is designed primarily for site builders, editors, and developers who need a convenient visual way to assemble pages from ready-made elements: sections, columns, buttons, images, videos, galleries, tabs, accordions, sliders, and more.

Canvas Palette on Drupal.org:
https://www.drupal.org/project/canvas_palette

Live Demo:
https://drupalbook.org/canvas/editor/canvas_page/4

Canvas Palette Demo:
https://drupalbook.org/canvas-palette/demo

Editing process

What Is Canvas Palette?

Drupal Canvas provides a visual approach to building pages, but a visual editor still needs a good collection of components that can be used to create real-world pages.

Canvas Palette addresses this by providing a collection of Single Directory Components (SDC) that are compatible with Canvas.

Each component is a standard SDC component. Interactive elements use lightweight JavaScript and remain editable directly in the page preview.

The idea behind the module is simple:

Don't build every page element from scratch. Build pages from ready-made components directly in the visual editor.

This is particularly useful for landing pages, marketing websites, corporate sites, documentation, and editorial projects where content needs to look modern while still following a consistent design system.

Why Use Canvas Palette?

In a traditional Drupal project, developers can create almost any content structure. However, visual page design often requires additional work: creating components, CSS, JavaScript, Paragraph types, or custom templates.

Canvas Palette moves much of this work into the visual editor.

Editors can:

  • Add a section
  • Choose the number of columns
  • Add text
  • Place an image or video
  • Create a CTA block
  • Add buttons
  • Build an image gallery
  • Add Tabs or Accordion
  • Create a Carousel or Slider
  • Display an existing View
  • Embed a Webform

There is no need to create a separate Paragraph type for every one of these elements.

In this sense, Canvas Palette acts as a building-block library for Drupal Canvas.

What Components Are Included?

Canvas Palette currently includes components across several major categories.

Design & Layout

The basic components for building a page structure:

Section — a universal section/container
Columns — a responsive multi-column layout
Text — headings and formatted text
Buttons & Calls to Action

Components for buttons and calls to action:

Basic Button — a configurable button
CTA — a block with an image and up to two buttons
Hero — a large banner with a heading, image, and buttons
Modal Dialog — a button that opens a modal window
Webform Popup — a button that opens an existing Webform in a popup

For example, Basic Button allows you to configure the link, colors, hover color, shape, size, and alignment.

Media

Components for working with images and video:

Image
Images
Image Gallery
Video
Video Gallery

Image Gallery can open images in GLightbox, while Video Gallery supports both local videos and external sources such as YouTube, Vimeo, and MP4.

Interactive Components & Sliders

For interactive content:

Accordion
Tabs
Carousel
Slider
Sticky Menu

Tabs use a custom implementation without jQuery. Slider is powered by Splide, while Carousel uses tiny-slider.

This makes it possible to create interactive components without introducing heavy JavaScript frameworks.

Content & Data

Components for presenting content and data:

Quote
Stats
Counter
Countdown
Tiles
Timeline

For example, Counter can be used to create animated counters, while Timeline provides a vertical timeline for events.

Drupal Integration

Canvas Palette can also work with existing Drupal content:

*Webform * — select and insert an existing form
*Views * — display an existing View with support for passing arguments

This is particularly important for real-world Drupal projects. Canvas Palette is not limited to static decorative components — it can also use existing Drupal infrastructure.

The Foundation of Canvas Palette

One of the key components in Canvas Palette is Section.

Instead of adding margin, padding, background, and border settings to every component individually, Palette uses a dedicated wrapper component.

Other components are placed inside the Section, while the Section itself controls the appearance of the surrounding area.

For example, you can create a structure like:

Section ** → **ColumnsText + Image + Button

and manage the design of the entire section from a single place.

Visual Spacing Controls

Section provides a visual DOM Box model similar to the box model available in browser developer tools.

You can configure:

Margin
Padding
Border
Border radius
Individual values for each side

This approach is much more intuitive than a collection of fields with unclear names. The visual diagram shows exactly which value applies to which side of the element.

Section Backgrounds

Section can also be used to create more sophisticated visual blocks.

You can configure:

  • A solid color
  • A gradient
  • A background image
  • An overlay on top of an image
  • A background video
  • Image position and size
  • Background image repetition
  • Overlay opacity
  • A fallback image for video on mobile devices

This makes it possible to create full-featured hero sections and visual content blocks directly inside Canvas.

Why SDC?

Canvas Palette is built around Single Directory Components.

This is an important architectural characteristic of the module.

Instead of creating a large number of specialized Paragraph types or Block types, each element is represented as an independent SDC component.

This approach fits well with the architecture of modern Drupal and Canvas:

ComponentConfigurationVisual EditingFinal Result

Components can be used independently and combined into different compositions.

Canvas Palette and EPT / EBT

Canvas Palette grew from an idea that was already used in the Extra Paragraph Types (EPT) and Extra Block Types (EBT) projects.

EPT provides a collection of ready-made Paragraph types, while EBT provides ready-made Drupal Block types.

Canvas Palette brings a similar concept to the world of visual page builders, but uses Single Directory Components, which are native to the Canvas architecture.

This gives us three different approaches to the same problem:

EPT — ready-made components as Paragraphs
EBT — ready-made components as Blocks
Canvas Palette — ready-made components for visual Canvas editing

This makes Palette particularly interesting for projects that want to move from traditional content modeling toward visual page creation.

Building a Page with Canvas Palette

Imagine that you need to create a simple landing page.

With Canvas Palette, you could build it approximately like this:

Section
├── Hero
│ ├── Heading
│ ├── Image
│ └── Button

Section
├── Columns
│ ├── Image
│ └── Text

Section
├── Stats
│ ├── Counter
│ ├── Counter
│ └── Counter

Section
├── Accordion
│ ├── FAQ
│ ├── FAQ
│ └── FAQ

Section
└── CTA
├── Image
└── Buttons

Section can be used around a single component or an entire group of components.

This makes it possible to create nested compositions and control the design at different levels.

Do You Need to Write Code?

One of the main goals of Canvas Palette is to reduce the number of situations where an editor or site builder needs to work with code.

Ready-made components can be added and configured visually.

This is particularly useful for:

  • Content managers
  • Marketers
  • Editors
  • Site builders
  • Small teams without a dedicated frontend developer

At the same time, developers still maintain control over the component architecture and can create their own SDC components when the standard collection is not sufficient.

Canvas Palette is therefore not intended to replace developers.

Instead, it allows developers to create a set of building blocks in advance that other members of the team can then use.

Performance and JavaScript

Canvas Palette does not require jQuery for its interactive components.

For example:

  • Tabs use custom JavaScript
  • Accordion is implemented without jQuery
  • Slider uses Splide
  • Carousel uses tiny-slider
  • Modal windows use a custom implementation
  • Galleries use GLightbox

This makes it possible to use modern interactive components without building the entire frontend around jQuery.

Installing Canvas Palette

Canvas Palette is distributed as a regular Drupal module.

You can install it with Composer:

composer require 'drupal/canvas_palette:^1.0'
Enter fullscreen mode Exit fullscreen mode

The Drupal.org project page currently lists 1.0.2 as the stable release, and the module is listed as supporting Drupal 10.3 and Drupal 11.

After installation, Palette provides components that can be used with Drupal Canvas.

What Projects Is Canvas Palette Good For?

Canvas Palette is particularly useful for projects where pages need to be created quickly while maintaining control over the visual design.

Landing Pages

Create hero sections, CTAs, images, buttons, statistics, and other marketing blocks quickly.

Corporate Websites

Teams get a ready-made component library that can be used to build new pages without constantly involving developers.

Media & Editorial Websites

Tabs, Accordions, galleries, video, quotes, Timelines, and other components make it possible to create richer editorial content.

Documentation

Combine text, images, content tables, Accordions, Tabs, and other elements while maintaining a consistent visual style.

Design Systems

Palette allows you to define a controlled set of available components, reducing the number of arbitrary design decisions editors can make.

Canvas Palette as the Layer Between Drupal and the Visual Editor

One of the strengths of the Palette approach is the separation of responsibilities.

Drupal handles content, entities, Views, Webforms, and other data.

Canvas handles visual page editing.

Canvas Palette provides the ready-made visual components that connect these two layers.

As a result, editors get a visual interface while developers retain control over the site's components and architecture.

This is especially important for Drupal projects where visual freedom needs to coexist with control over the site's structure and design system.

Conclusion

Canvas Palette is a collection of ready-made SDC components for Drupal Canvas, designed for visually building modern pages.

The module combines Drupal's familiar concept of reusable components with visual page building, allowing users to create pages from ready-made elements without manually developing every new block.

The core idea behind Palette is to give editors a ready-made palette instead of a blank canvas.

Instead of starting from scratch every time, you can select a Section, add Columns, place Text, Image, Button, Gallery, or another component, and immediately create a visually complete page.

At the same time, developers retain control over which components are available to editors and how those components are implemented.

If you are using Drupal Canvas and want to expand its standard component collection, Canvas Palette can be a good starting point for building a full-featured visual page editor.

Useful Links
Canvas Palette on Drupal.org: https://www.drupal.org/project/canvas_palette
Canvas Palette Demo: https://drupalbook.org/canvas-palette/demo
Canvas Palette Documentation: https://drupalbook.org/palette
Live Demo: https://drupalbook.org/canvas/editor/canvas_page/4

Top comments (0)