Book Image

Modernizing Drupal 10 Theme Development

By : Luca Lusso
4 (1)
Book Image

Modernizing Drupal 10 Theme Development

4 (1)
By: Luca Lusso

Overview of this book

Working with themes in Drupal can be challenging, given the number of layers and APIs involved. Modernizing Drupal 10 Theme Development helps you explore the new Drupal 10’s theme layer in depth. With a fully implemented Drupal website on the one hand and a set of Storybook components on the other, you’ll begin by learning to create a theme from scratch to match the desired final layout. Once you’ve set up a local environment, you’ll get familiarized with design systems and learn how to map them to the structures of a Drupal website. Next, you’ll bootstrap your new theme and optimize Drupal’s productivity using tools such as webpack, Tailwind CSS, and Browsersync. As you advance, you’ll delve into all the theme layers in a step-by-step way, starting from how Drupal builds an HTML page to where the template files are and how to add custom CSS and JavaScript. You’ll also discover how to leverage all the Drupal APIs to implement robust and maintainable themes without reinventing the wheel, but by following best practices and methodologies. Toward the end, you’ll find out how to build a fully decoupled website using json:api and Next.js. By the end of this book, you’ll be able to confidently build custom Drupal themes to deliver state-of-the-art websites and keep ahead of the competition in the modern frontend world.
Table of Contents (21 chapters)
1
Part 1 – Styling Drupal
12
Part 2 – Advanced Topics
17
Part 3 – Decoupled Architectures

Conventions used

There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: “Mount the downloaded WebStorm-10*.dmg disk image file as another disk in your system.”

A block of code is set as follows:

<div class="relative">
  <a href="{{ link }}" title="{{ title }}">
    <div
      class="z-10 h-48 w-full border-2 border-nord-4 bg-
        cover bg-center bg-no-repeat opacity-50"
      style="background-image:url('{{ image }}');"
    ></div>

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

<div class="relative">
  <a href="{{ link }}" title="{{ title }}">
    <div
      class="z-10 h-48 w-full border-2 border-nord-4 bg-
        cover bg-center bg-no-repeat opacity-50"
      style="background-image:url('{{ image }}');"
    ></div>

Any command-line input or output is written as follows:

^ array:4 [
  "uri" => "entity:node/8"
  "title" => "Let's do some ice climbing"
  "options" => []
  "_attributes" => []
]

Bold: Indicates a new term, an important word, or words that you see on screen. For instance, words in menus or dialog boxes appear in bold. Here is an example: “Click on the Preferences link to open the Preferences window.

Tips or important notes

Appear like this.