This project is not covered by Drupal’s security advisory policy.
Provides several user interface (UI) components to build compelling pages in a Drupal site using a page builder (Canvas or Gutenberg) or directly in a theme.
Includes popular components like Card, Icon, Heading, Accordion, and Hero.
Each component is built as a single-directory-component (SDC) using primarily HTML and CSS, without unnecessary JavaScript, and no bloated user interface.
These components work well as the basis of a new custom theme, or to enhance the user interface of an existing theme.
Features
The components are:
- Cover: A section that can have a background image, can be the height of the screen, and with custom positioning of the content.
- Expander: Interactive heading used to toggle the display of further information; each item can be "collapsed" with just a short label visible or "expanded" to show the full content. Sometimes called a "collapsible", "Details & summary", "Disclosure". Typically used for frequently-asked questions.
- Heading: A title or caption used to introduce a new section.
- Hero: A large banner, usually appearing as one of the first items on a page; it often contains a full-width background image.
- Icon: A graphic symbol designed to visually indicate the purpose of an interface element.
- Image
- Image card: A container for content representing a single entity. e.g. a contact, article, or task.
- Image beside text: An image beside a text block; the image can be on the left or right.
- Line: A horizontal line. Sometimes called a divider, a separator, or a horizontal rule.
- Quote: A quotation: either from a person or another outside source, or to highlight a passage of the current document (a pull quote).
- Text: Basic text block; can show paragraphs, lists, etc. and inline formatting like bold and italic.
- Styled text: Single line of text with support for font size, style and weight, letter spacing (tracking), line-height (leading), and capitalisation. It's good for those little colourful labels of all-caps text that AI likes to add to designs, or for extra large text (e.g. in a "key numbers" row).
- Carousel: Displays multiple slides of content, one or more at a time. Choose between a "slide" and "fade" animation. Navigation between slides can be automatic, or controlled via swiping, scrolling, or arrow buttons. Built using Splide.
- Marquee: Displays elements like images or text in a continuously-scrolling bar. Can be paused, and has controls for things like speed, gap, direction, etc. Built using Marquee6k.
Goals
- Lightweight: Built with as little code as possible, for performance and security.
- Flexible: Works well with any theme and all modules, now and in the future.
- Responsive: Adapts to any device and screen (from huge to tiny), and in all environments.
- Accessible: Built with standards-compliant HTML that works well for people with any abilities or disabilities.
- Human-made: Built and tested entirely by passionate web developers; no AI used.
Post-Installation
To use the components in Canvas:
- Go to the Canvas editor (/canvas/editor/) and create or edit a page
- Open the Library (+) in the left sidebar, find the Utility group, and choose a component
- Drag the component onto the page, and edit its settings in the right sidebar
To use the components directly in your theme (without a page builder), see Using your new single-directory
component.
Recommended modules / libraries
Works well with Drupal Canvas or Gutenberg (in the upcoming v4).
Supporting this Module
If you spot any issues with the components, please submit a bug report to let us know.
If there are any other layout components you'd like added to this module, also let us know.
Project information
- Project categories: Content editing experience
- Ecosystem: Single Directory Components, Drupal Canvas
- Created by droces on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
Releases
Adds 3 new components: Styled text, Carousel, and Marquee
Initial release with several components in beta status.
Development version: 1.0.x-dev updated 6 Nov 2026 at 13:33 UTC




