External Design Systems in Practice

44:04
1
0
0
0
0
Jun 08, 2019

Brian Perry
Drupal: brianperry

When developing a pattern library or design system that will be used in support of a Drupal project, a key decision must be made regarding where the design system should live. Conceptually, many agree that it should be an external dependency of a Drupal theme in order to promote reuse, but a large number of projects still embed the design system inside of the theme in order to simplify workflow and component integration.

While in the past I’ve occasionally found it difficult to justify developing a design system independently from Drupal, on a recent rebranding project I made the case to configure a workflow using this approach. At the start, our plan was to migrate 3 sites into Drupal 8. By the end of the project we ended up with a partial migration to Drupal 8, with two supporting sites still in WordPress - all under the same brand and using the exact same components. In the middle it became apparent that choosing to use an external design system up front allowed us to make decisions that would have otherwise been impossible, and had a major impact on our ability to still hit our planned launch date as the project evolved.

In reviewing this rebranding effort, we’ll take a closer look at our approach to a shared design system including:

* The structure of our design system repository
* Requiring the design system in your Drupal project as a composer dependency
* Workflow and managing releases
* Using Twig components in WordPress with the Timber Plugin
* Challenges and areas for future improvement

We'll also explore approaches to using a shared design system on decoupled Drupal projects, including:

* Sharing styles between Drupal and React using CSS Modules.
* The role of a shared design system in projects that use multiple templating engines.

Learning Objectives & Outcomes:
By the end of this session you will have a better understanding of when using an external design system could benefit your project, along with a clearer understanding of how this approach could be implemented - both in projects using Twig and a projects using a mix of templating engines.

https://2019.tcdrupal.org/session/external-design-systems-practice

Hi! I'm Karim Boudjema, the developer and site-builder of this site. I'm currently working as a freelance Drupal developer.

I was wondering how could I giving back to the Drupal community all what it gave to me during the last 10 years, that's how the idea of this site came to me ... (read more)

Hi! I’m Santiago Rico, the web designer and themer of this site.

When Karim proposed me to design and theme this site for the Drupal community, I accepted immediately because the community is the main reason why I love Drupal so much.