CAN WE FIGURE THIS DRUPAL COMPONENT THING OUT ALREADY? HELLO THERE - - PowerPoint PPT Presentation

can we figure this drupal component thing out already
SMART_READER_LITE
LIVE PREVIEW

CAN WE FIGURE THIS DRUPAL COMPONENT THING OUT ALREADY? HELLO THERE - - PowerPoint PPT Presentation

ADAM BERGSTEIN & BRIAN PERRY CAN WE FIGURE THIS DRUPAL COMPONENT THING OUT ALREADY? HELLO THERE IM NERDSTEIN HELLO THERE IM BRIAN PERRY (and I lack a strong personal brand) OUTLINE OF THE TALK INTRODUCTION KEY CONCEPTS


slide-1
SLIDE 1

CAN WE FIGURE THIS DRUPAL COMPONENT THING OUT ALREADY?

ADAM BERGSTEIN & BRIAN PERRY

slide-2
SLIDE 2

I’M NERDSTEIN

HELLO THERE

slide-3
SLIDE 3

I’M BRIAN PERRY (and I lack a strong personal brand)

HELLO THERE

slide-4
SLIDE 4

INTRODUCTION
 KEY CONCEPTS
 IMPLEMENTATION IDEAS
 EMERGING CONCEPTS

OUTLINE OF THE TALK

slide-5
SLIDE 5

INTRODUCTION

SECTION 1:

slide-6
SLIDE 6

A multi year conversation between Adam and Brian continues right now…

slide-7
SLIDE 7

Over time our opinions on best practices in component based development have continued to align …mostly.

slide-8
SLIDE 8

DESIGN IMPLEMENTATION

slide-9
SLIDE 9

EXAMPLES IN THE WILD

  • Pattern Lab Drupal 


Starter Kit

  • Emulsify Drupal theme
  • Shila Drupal theme
  • Several other solutions
slide-10
SLIDE 10

LIMITATIONS

  • Tightly coupled with Drupal

limits reusability


  • Outside of Drupal
  • Secondary Drupal sites
  • Technology bias (SASS,

LESS, etc)

  • Poor documentation on

“how” and “why” problems were being solved

slide-11
SLIDE 11
slide-12
SLIDE 12

PROBLEMS

  • Create a fully decoupled solution
  • Shared technology baseline between the design

system and the content management system

  • The packaging and delivery of design system assets
  • The implementation of design system assets in the

content management system

  • Change management of ongoing changes
slide-13
SLIDE 13

PROBLEMS

  • Create a fully decoupled solution
  • Shared technology baseline between the

design system and the content management system

  • The packaging and delivery of design system assets
  • The implementation of design system assets in the

content management system

  • Change management of ongoing changes
slide-14
SLIDE 14

PROBLEMS

  • Create a fully decoupled solution
  • Shared technology baseline between the design

system and the content management system

  • The packaging and delivery of design

system assets

  • The implementation of design system assets in the

content management system

  • Change management of ongoing changes
slide-15
SLIDE 15

PROBLEMS

  • Create a fully decoupled solution
  • Shared technology baseline between the design

system and the content management system

  • The packaging and delivery of design system assets
  • The implementation of design system

assets in the content management system

  • Change management of ongoing changes
slide-16
SLIDE 16

PROBLEMS

  • Create a fully decoupled solution
  • Shared technology baseline between the design

system and the content management system

  • The packaging and delivery of design system assets
  • The implementation of design system assets in the

content management system

  • Change management of ongoing changes
slide-17
SLIDE 17

KEY CONCEPTS

SECTION 2:

slide-18
SLIDE 18

NORMALIZATION / ATOMIC DESIGN

  • Design patterns resemble database normalization
  • Create patterns in their smallest, atomic form
  • Reuse as needed, DRY Principle
slide-19
SLIDE 19

“KISS” CONCEPT

  • The design system should define the simplest

version of the ideal model it is expecting


  • This should reduce the need for the design system

to perform heavy/complex processing

slide-20
SLIDE 20
slide-21
SLIDE 21
slide-22
SLIDE 22

LEAST RESPONSIBILITY PRINCIPLE

  • The design system owns the ideal model
  • The responsibility for processing belongs to the

content management system

  • Every content management system needs to map

and transform the data and architecture into the expected format

slide-23
SLIDE 23
slide-24
SLIDE 24

UNDERSTAND PATTERN VARIATIONS

  • Patterns have attributes

that are defined in the data

  • Data is often thought of

as content in the markup

  • Data can also represent

metadata or configuration

  • Example: Red and Blue

for the same image

slide-25
SLIDE 25
slide-26
SLIDE 26

ADHERE TO STANDARDS

  • Atomic Design
  • BEM
  • SMACSS
  • Drupal / CSS / JS

framework standards

slide-27
SLIDE 27

IMPLEMENTATION IDEAS

SECTION 3:

slide-28
SLIDE 28

DIFFERING APPROACHES

  • Brian
  • Focus on ease of component integration
  • Open to help from contrib modules
  • Adam
  • Focus on platform agnostic approach
  • Favors functionality in Drupal core
slide-29
SLIDE 29

PACKAGING, RELEASING, CHANGE MANAGEMENT

  • Create releases of the design system
  • Leverage Gulp/Grunt to build one CSS file and

multiple JS files

  • Leverage Composer to bring in new releases of

the design system into CMS

  • Map design assets in the theme
  • Remediate and launch CMS changes
slide-30
SLIDE 30

MANAGING THE DESIGN SYSTEM DEPENDENCY

  • In Design System:
  • Add composer.json with “name”:”(orgname)/

(repository_name)”

  • In Drupal project:
  • Add repositories entry in composer.json referencing

design system repo.

  • Configure installer paths to install in docroot/libraries
  • Composer require your design system
slide-31
SLIDE 31

(relevant portions from project composer.json) (design system composer.json)

slide-32
SLIDE 32

IMPLEMENTING PATTERNS IN THE CMS

  • Patterns are not a one-to-one mapping in 


the CMS

  • Flexibility to use any pattern in any way
  • Provide well defined approach to handling design

system overrides

  • Some patterns are not implemented in a CMS
  • Pages are often just mockups and representation
  • f pattern usage
slide-33
SLIDE 33

MUST USE CORE SPONSORED TOOLS

  • Custom block types
  • Layout Discovery / Layout builder
  • Views
  • Content types
  • View modes
slide-34
SLIDE 34

MUST USE CONTRIBUTED MODULES

  • Components module
  • Block Type Templates module
slide-35
SLIDE 35

OPTIONAL CONTRIBUTED MODULES

  • Paragraphs module
  • UI Patterns module
  • Display Suite module
slide-36
SLIDE 36

EMERGING CONCEPTS

SECTION 4:

slide-37
SLIDE 37

DATA MAPPING IN ADMIN UI

slide-38
SLIDE 38

AUTOMATIC PATTERN DISCOVERY

slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41

THANK YOU!

(Questions?)