Twig Template Inheritance for Drupal 8, 9, and 10

More often than not, templates in a theme share common elements: the header, footer, sidebar, or more. In Drupal, themes created with a Twig template can be decorated by another one. This template inheritance allows you to build a base "layout" template that contains all the common elements of your layout defined as blocks. A child template can extend the base layout and override any of its defined blocks. This helps prevent code duplication, and keeps your theme more organized.

This tutorial is for theme developers who want to reduce code duplication in their themes, or anyone seeking to better understand how Twig template inheritance works. We'll cover:

  • What the Twig block and extends tags do
  • An example use-case for template inheritance
  • How to extend a Twig template from another theme or module
  • How to include other Twig templates