Screenshot of navigation menu open showing various links to theming tools

This project is not covered by Drupal’s security advisory policy.

A suite of test modules for Drupal admin theme development. Each submodule exercises one UI component or form pattern — buttons, dialogs, tables, form widgets, pagers, tabs, and so on — across multiple themes so regressions can be spotted visually.

None of the test pages are theme-specific — each renders in whatever theme is active, so the suite works equally well against Claro, Admin, Olivero, Stark, and any contrib or custom admin theme. The whole point is to surface cross-theme rendering differences.

Not for production

This module is intended for local development and regression testing only. Several submodules intentionally open admin routes to anonymous users, ship fixture content types and test data, or disable render caching. Do not install on a public site.

Features

  • Dashboard at /admin/modules/theming-tools listing every test submodule with enable/disable operations and bulk actions.
  • Navigation drawer — a "Theming Tools" expandable group auto-injected into the admin menu. Every enabled test submodule's page appears here automatically, sorted alphabetically.
  • Auto-discovery — submodules tagged theming_test: true are picked up by the dashboard and navigation drawer with zero configuration.
  • 3 test themes — fixture themes for the Appearance admin page, including an intentionally incompatible theme for testing that code path.

Not for production damnit!

This module is intended for local development and regression testing only. Several submodules intentionally open admin routes to anonymous users, ship fixture content types and test data, or disable render caching. Do not install on a public site.

Included submodules

actionlink Action Link component
autocomplete Autocomplete form widget
button Buttons and button links (primary, secondary, small variants)
card Card component (appearance admin page)
checkboxradio Checkboxes and radios on a contact form
details Details element (site information form)
devhelp Disables render caching and enables debug mode
dialog Regular, modal, off-canvas, and off-canvas-top dialogs
dropbutton Dropbutton / Operations component
exposed_form Views exposed form and bulk operations
fieldcardinality Multi-cardinality field widgets
fieldset Fieldset component
imagefile Image and managed file form widgets
lang_hebrew Hebrew language + language switcher for RTL tests
message Message component and Drupal.Message JS API
pager Pagers (via Views)
password Password-confirm widget
pointertracker Crosshair overlay following mouse/touch pointer
presuf Form item prefixes and suffixes
progress Progress indicators (throbber, progress bar, fullscreen)
select Single- and multi-value select widgets
sidebar Entity meta sidebar
tab Local task tabs
table Table component (sortable, selectable, responsive)
tabledrag Draggable tables (nested hierarchy, mixed-height rows)
testfilters Text formats and CKEditor 5 editor config
textarea Plain and formatted textarea widgets
textfixtures Color, password, and search field types
textform Text-like form items (textfield, telephone, email, url, datetime)
themeswitcher Footer form to switch active theme via cookie
title_shortcut Page titles alongside shortcut badges
tt_navigation Core Navigation block rendering
tt_node Minimal test content type used as a fixture
vertical_tabs Vertical Tabs component

Installation

drush en theming_tools
  # then enable specific test submodules as needed:
  drush en button dialog table tabledrag dropbutton textform textarea
  

Or enable everything at once through the dashboard at /admin/modules/theming-tools.

Some submodules depend on the Contact contrib module (moved out of core in Drupal 11). If it isn't installed, those submodules simply won't enable; everything else works without it.

Drupal version support

Supports Drupal 10.3, 11, and 12. Actively tested against the main branch of Drupal core.

BTW, this is not for production

This module is intended for local development and regression testing only. Several submodules intentionally open admin routes to anonymous users, ship fixture content types and test data, or disable render caching. Do not install on a public site.

History

This module was originally created by Zoltan Horvath as cd_tools to support development of the Claro admin theme. It has since been renamed and generalized into a theme-agnostic test harness for any Drupal admin theme.

Supporting organizations: 
Resurrection and maintenance

Project information

Releases