Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

modal_page

2,910 sites Security covered
View on drupal.org

Use Modal to add dialogs to your site for lightboxes, user notifications, or completely custom content.

Just go at: Administration » Structure » Modal

Have fun :)

Modal 6 is ready 🍻

Highlights:

  • ✅ Drupal 11
  • ✅ Drupal Dialog API
  • ✅ Bootstrap 5

Enjoy! 😀











With Modal you're able to

  • Flexible Placement: Position modals anywhere through the CMS;
  • Content Creation: Utilize CKEditor for modal content;
  • Display Configuration: Specify pages to show your modal;
  • Configuration Management: Export and import modals easily;
  • Wildcard Usage: Use wildcards in the URL path for flexibility;
  • Page Load Display: Set the modal to appear on page load;
  • Custom Triggering: Open modal by clicking a custom class or ID;
  • Dynamic Modification: Customize modals dynamically with hooks;
  • Custom Actions: Create actions with hook_modal_submit();
  • Visual: Personalize modal's header, footer, and buttons;
  • Sizes: Support for different modal sizes;
  • Access Control: Select roles that can view the modal;
  • API: Create modals programmatically via the Entity Manager.

Liked? Give us a star ⭐️ at top-right of this page to encourage me

Matrix

Modal D9 D10 D11 Bootstrap Dialog API Toast Status 6.0.x ❌ ✅ ✅ ✅ ✅ ✅ New Features 5.1.x ❌ ✅ ✅ ✅ ❌ ❌ Stable 5.0.x ✅ ✅ ❌ ✅ ❌ ❌ Bugfixes only


Hooks

hook_modal_alter

You're able to update your Modal before display with this code

/**
 * Implements hook_modal_alter().
 */
function HOOK_modal_alter(&$modal, $modal_id) {
  $modal->setLabel('Title Updated');
  $modal->setBody('Body Updated');
}

hook_modal_ID_alter

You're able to update Modal by ID (machine_name) with this example

/**
 * Implements hook_modal_ID_alter().
 */
function HOOK_modal_ID_alter(&$modal, $modal_id) {
  $modal->setLabel('New Title');
  $modal->setBody('New Body');
}

hook_modal_submit

You're able to use Hook Modal Submit and work with Ajax with this example

/**
 * Implements hook_modal_submit().
 */
function HOOK_modal_submit($modal, $modal_state, $modal_id) {

  // Your AJAX logic here.
  \Drupal::logger('modal_page')->notice('Modal Submit was triggered');

}

Insert Modal programmatically

$modal = \Drupal::entityTypeManager()->getStorage('modal')->create();

$modal->setId('modal_id');
$modal->setLabel('Modal Title');
$modal->setBody('Modal Content');
$modal->setPages('/hello');
$modal->save();

Suggestions and Helpers

Modal are completely free. Everyone is welcome to help.

Feel free to submit your suggestion at issue queue or buy us a coffee

Help us Buy us a coffee ☕️

Meet the Modal Maintainers

Renato G. H. (RenatoG)

Author|Maintainer

Paulo H. Starling (paulocs)

Maintainer

Thalles Ferreira (thalles)

Maintainer


Graphic designer

Nico Grienauer

(grienauer)

Logo author














Modal Documentation

See our documentation here

Credits


http://www.ciandt.com

Activity

Total releases
27
First release
Aug 2025
Latest release
1 week ago
Release cadence
9 days
Stability
59% stable

Release Timeline

Releases

Version Type Release date
5.1.11 Stable Apr 5, 2026
5.1.10 Stable Mar 29, 2026
5.1.9 Stable Mar 22, 2026
6.0.0-beta13 Pre-release Mar 15, 2026
6.0.0-beta12 Pre-release Feb 22, 2026
5.1.8 Stable Feb 17, 2026
6.0.0-beta11 Pre-release Jan 25, 2026
5.0.16 Stable Dec 14, 2025
5.1.7 Stable Dec 14, 2025
6.0.0-beta10 Pre-release Dec 14, 2025
6.0.0-beta9 Pre-release Nov 29, 2025
5.1.6 Stable Nov 29, 2025
5.0.15 Stable Nov 29, 2025
6.0.0-beta8 Pre-release Nov 22, 2025
6.0.0-beta7 Pre-release Nov 19, 2025
5.1.5 Stable Nov 19, 2025
5.0.14 Stable Nov 16, 2025
5.1.4 Stable Nov 16, 2025
6.0.0-beta6 Pre-release Nov 8, 2025
6.0.0-beta5 Pre-release Nov 1, 2025
5.1.3 Stable Nov 1, 2025
5.0.13 Stable Nov 1, 2025
6.0.0-beta4 Pre-release Oct 19, 2025
5.1.2 Stable Oct 19, 2025
5.0.12 Stable Oct 19, 2025
6.0.0-beta3 Pre-release Aug 12, 2025
5.1.1 Stable Aug 12, 2025