Drupal is a registered trademark of Dries Buytaert
Search API Solr 4.3.12 Minor update available for module search_api_solr (4.3.12). Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). IntelligenceBank DAM Connector 4.1.4 Minor update available for module intelligencebank (4.1.4). IntelligenceBank DAM Connector 5.2.3 Minor update available for module intelligencebank (5.2.3). Soccerbet 1.1.14 Minor update available for module soccerbet (1.1.14). Mautic Audiences 1.0.0 Initial release available for module mautic_audiences (1.0.0)! Commerce Order Amend 1.0.0 Initial release available for module commerce_order_amend (1.0.0)! AI Provider moonshot (Kimi) 1.2.1 Minor update available for module ai_provider_moonshot (1.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Content Translation Redirect Module content_translation_redirect crossed 1,000 active installs.

SDC Components

2 sites No security coverage
View on drupal.org

This module provides a collection of Bootstrap-based components designed for use with the Drupal Canvas module. It enhances the editor experience with visual selection for component styles and offers animation options for many components.

This module adds a bunch of components that you can use with the Drupal Canvas module. They are based on the Bootstrap framework, so you need to have a theme that includes Bootstrap for these components to render and work well.

Most of the components can be animated by using the AOS (Animate On Scroll) library. This is all included: you only need to click on the desired animation icon to have your component animated, like fade in and move to the left, and you can select an animation speed.

It also improves the editor experience: Instead of selecting a button style from a dropdown in the component options where you dont quite know the effect until the button on the canvas is refreshed with the selected button style, you can see all possible button styles directly, visually instead of the old select element. Now you know how your button will look before you click on the desired button style. This is also done for the widgets for setting font size, text color, background color, alignment, aspect ratio, etc.
Some property select elements have been turned into a slider, like choosing a margin or padding, or selecting max and default zoom level on the map component.

These widget UX improvements were done by converting component field widgets from options_select into options_buttons. This renders them as radios. Now by adding specific (css) libraries to specific widgets, we can style those radios to improve the ux.

If, after installation or an update, you only see default dropdowns in component settings instead of buttons and sliders, then run this command:
drush ev "\Drupal::service('sdc_components.componentservice')->convertWidgetsToRadios();" and then a drush cr to be sure.

Components

The components are organized into groups within the Canvas UI. Here is a list of the included components and the possible component settings.

Basic components

Button

Set text, url, target, button color/style, button size, add arrow inside, center, set margins, add animation, add extra classes

Heading

Set content, tag (h1, h2, etc), display size (larger text styles), url, color, icon before text, text alignment, margin, add animation, add extra classes

Horizontal line

Set full width or shoter line, line width, line color, add margin, add animation

Icon

Select (svg) icon from media library, select fill color, enter css color value for fill, set width, set height, add extra css styles, add margin, add animation, add extrsa classes

Image

Select image from media library, set fixed width, set aspect ratio, set fetch priority, set loading, set to cover parent, add popup to original when clicking it, add popup to a video when clicking it, add url, center align, add margins, add animation, add extra classes

Text

Set wysiwyg content, color, display size (larger text styles), text alignment, margin, add animation, add extra classes

Video

Select video from media library, set youtube url, set poster image, set aspect ratio, fit to available size, show controls, autoplay on load, autoplay when scrolled into view, muted, loop, add margins, add animation, add extra classes

Advanced components

Accordion

Simpler style option, set margins, add animation, add extra classes. Drag Accordion Items first, then drag desired content into the desired Accordion Items.

Alert

Set alert type/style, Include a title, set content, set icon, add close button, set margins, add animation, add extra classes.

Badge

Set content, color, shape, font size, add margins, add animation, add extra classes.

Card

Set image, title, content, url, button text, add arrow to button text, make entire card clickable, set direction to horizontal card, shrink and fit image, center text, set image position, border color, border width, background color, text color, border radius, add margins, add animation, add extra classes.

Carousel

Create a slider from any component type. Add controls, indicators, enable touch swiping, generate thumbnails (if images), set autoplay and interval, display up to 3 items at once, set custom prev/next icons, set svg fill color for those icons, add margins, add animation, add extra classes.

Collapsible text

Set title, collapsible content (wysiwyg), text color, display size (larger text styles), text alignment, add margins, add animation, add extra classes.

Hero

Large header sections with slots for additional content. Set background image, background position, background video from media library or youtube url, aspect ratio, url, add overlay, parallax effect, scroll down button, add margins, add animation, add extra classes.

Icon with text

Set (svg) icon, text, icon position (next to or above text), icon color, icon width, icon height, extra css style, border color, add margins, add animation, add extra classes.

Iframe

Set iframe src, title, width, height, add margins, add extra classes.

Image Gallery

Display a gallery of image thumbnails that open original in a modal when clicked. Add images, set thumbnail width, heigt and margin, loop, transition, display alt text as caption, add margins, add animation, add extra classes.

Image with text on top

Set image, drag any content component like header or text, add overlay, set url, add an arrow, disable hover effect, set aspect ratio, add margins, add animation, add extra classes.

Label with text

Handy for a list of specifications. Add horizontal line, set margins, add animation, add extra classes.

Map (Leaflet)

Set map position via latitude and longitude, set width, height, max zoom level, default zoom level, marker popup content, add margins, add animation, add extra classes.

Photosphere

For displaying 360 degree images. Select 360 image from media library, add margins, add animation, add extra classes.

Quote

Set quote text, source, source description, backgorund color, aspect ratio, add padding, add margins, add animation, add extra classes.

Review

Set review text, source, source description, stars out of 5, stars description, general background color, text ballon background color, star color, aspect ratio, add padding, add margins, add animation, add extra classes.

Layout

1 Column

2 Columns

3 Columns

4 Columns

Flexbox

Role Permission Content

This is a wrapper element where you can place any content into and select for which user roles this should be visible.

Tabs

Wrapper

Social Media Links

This is a general component where you can drag specific social media link components into, like Facebook or LinkedIn.
At this moment, those are the only 2 options that have been developed. Feel free to contribute on this!

General

Back to top

Set background color and arrow color, and make it float on the bottom right on the screen.

Company address

Select logo from media library, set logo width, add address text (wysiwyg).

Made by

Add a 'Made by xx' element. Set text, company name or logo (svg), logo position, logo color, logo width, logo height, url.

Navigation

Add existing menu

Enter the menu id (like 'main'), add optional title and title color, set color scheme (light or dark)

Anchor

Add an anchor anywhere on the page you can link or jump to.

Anchor link

Create a link to an anchor on the page

Anchor menu

Create a menu of anchor links

Navigation / Menu

Create a custom menu. Drag menu item components into it. Set item alignment, direction (horizontal or vertical), style, fill, add extra classes.

Navbar

Create a navigation bar that can have branding (logo), slogan, a menu, language switcher, etc. Set color scheme (light or dark), background color, breakpoint, placement (sticky, top or bottom), container, logo, logo width, slogan, add padding, add margins, add extra classes.

Additional Requirements

  • Canvas module
  • Bootstrap (5.3) based theme

Developer information

New twig function and filter

The module provides a custom Twig function: getSvg that will return the svg code of a given src. If src is not an svg but a regular image, then an < img > element will be returned.
The module also adds an custom Twig filter: addElementAttribute that you can use onto the getSvg so the svg or image element has the extra attributes. Example:
{{ getSvg(icon.src, icon.alt|default('Icon'))|addElementAttribute('width', '200px')|addElementAttribute('height', '50px') }}

Services

sdc_components.componentservice Provides utility logic for component configuration and management. For now it has the important convertWidgetsToRadios() function which will convert all our desired component prop select elements into radios elements.
This can manually be triggered by this command:
drush ev "\Drupal::service('sdc_components.componentservice')->convertWidgetsToRadios();"

Activity

Total releases
9
First release
Jun 2026
Latest release
4 days ago
Releases (12 mo)
9 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.0.7 Stable Jul 14, 2026
1.0.6 Stable Jul 14, 2026
1.0.5 Stable Jul 13, 2026
1.0.4 Stable Jul 13, 2026
1.0.3 Stable Jul 13, 2026
1.0.2 Stable Jul 10, 2026
1.0.1 Stable Jul 9, 2026
1.0.0 Stable Jun 3, 2026
1.x-dev Dev Jun 3, 2026