SlideShare a Scribd company logo
Two Sides of the Same Coin: Maximizing UX
With Drupal’s Bootstrap Layout Builder
Speed up the site building With:
Drupal’s Bootstrap Layout Builder
Mahmoud Zayed
Software Architect
mahmoudz@imagexmedia.com
Aaron Christian
Software Architect
aaronc@imagexmedia.com
2
Mahmoud Zayed
3
Software Architect
Contact:
mahmoudz@imagexmedia.com
https://www.drupal.org/u/mahmoud-zayed
Drupal Slack: @Mahmoud Zayed
Twitter: @mahmoud_e_zayed
Case study
DrupalCon
Vienna 2017
● Dries has announced some
initiatives that enhances the user
experience for site builders.
● One of these initiatives was the
Layout Builder, which later
become a Drupal core module.
5
The Problem
6
Atomic Design
7
1. Atoms 2. Molecules 3. Organism 4. Template 5. Page
UI kits
8
● Made an extensive UI kit / guide for
the developers
● Listed both foundations and
components
● Started adding more responsive
version for each component
Annotations
9
● The designer numbers the components that
annotates the descriptions in the footer of the
page.
● This helps BA and Dev will use this to
understand the initial the feature
requirements.
● It’s good for keeping a discussion around a
component
● Client will use this to understand how the
elements and pages interact.
● We use the same numbers on other pages if we
are using the component
Additional Layout
Builder Modules
10
Plugins’ designs
11
Bootstrap Styles
Bootstrap Layout Builder
Layout Builder Blocks
12
Dependency
13
Bootstrap Styles
Bootstrap Layout Builder XYZ
Layout Builder Blocks
Styles’
Plugins
inventory
Creates
Dynamic
Layouts
Utilize Bootstrap
Styles Module in
the section
element render
array
Utilize Bootstrap
Styles Module in
the ????
element render
array
Utilize Bootstrap
Styles Module in
the block element
render array
Why Plugin
design
pattern?
Bootstrap Styles
14
https://www.drupal.org/project/bootstrap_styles
Plugins Group
● Plugins group is a wrapper of one or
more style plugin.
● It displays in the groups if at least one
of its plugins is enabled.
● It can contain any shared
configurations for its plugins.
15
How to
define a
new
group
plugin?
● Create the plugin group:
MODULE_NAME/src/Plugin/BootstrapStyles/StylesGroup/PLUGIN_GROUP_NAME.php
● Define the annotation.
16
@StylesGroup(
id = "background",
title = @Translation("Background"),
weight = 1,
icon = "bootstrap_styles/images/plugins/background-icon.svg"
)
● Add the class & the functions:
class GROUP_PLUGIN_NAME extends StylesGroupPluginBase {
------------ #1 ---------------
// Add elements to the configuration form.
public function buildConfigurationForm(array &$form, FormStateInterface $form_state) {}
// Saves the elements’ values to the form state.
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {}
------------- #2 ---------------
// Add elements to Layout Builder dialog.
public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {}
// Save the elements' values in the component settings.
public function submitStyleFormElements(array $group_elements) {}
}
Background group example - #1
17
class GROUP_PLUGIN_NAME extends StylesGroupPluginBase {
// Add elements to the configuration form.
public function buildConfigurationForm(array &$form, FormStateInterface $form_state) {}
// Saves the elements’ values to the form state.
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {}
}
Background group example - #2
18
class GROUP_PLUGIN_NAME extends StylesGroupPluginBase {
// Add elements to Layout Builder dialog.
public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {}
// Save the elements' values in the component settings.
public function submitStyleFormElements(array $group_elements) {}
}
@StylesGroup(
id = "background",
title = @Translation("Background"),
weight = 1,
icon = "bootstrap_styles/images/plugins/background-icon.svg"
)
Plugins
19
How to
define a
new
style
plugin?
● Create an style plugin:
MODULE_NAME/src/Plugin/BootstrapStyles/Style/STYLE_PLUGIN_NAME.php
● Define the annotation.
20
@Style(
id = "background_color",
title = @Translation("Background Color"),
group_id = "background",
weight = 1
)
● Add the class & the functions:
class STYLE_PLUGIN_NAME extends StylePluginBase {
------------ #1 ---------------
// Add elements to the configuration form.
public function buildConfigurationForm(array &$form, FormStateInterface $form_state) {}
// Saves the elements’ values to the form state.
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {}
------------- #2 ---------------
// Add elements to Layout Builder dialog.
public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {}
// Save the elements' values in the component settings.
public function submitStyleFormElements(array $group_elements) {}
------------- #3 ---------------
// Convert the storage to classes or attributes and merge them with the element’s render array.
public function build(array $build, array $storage, $theme_wrapper = NULL) {}
}
Background Color example - #1
21
class STYLE_PLUGIN_NAME extends StylePluginBase {
// Add elements to the configuration form.
public function buildConfigurationForm(array &$form, FormStateInterface $form_state) {}
// Saves the elements’ values to the form state.
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {}
}
Background color example - #2
22
class STYLE_PLUGIN_NAME extends StylePluginBase {
// Add elements to Layout Builder dialog.
public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {}
// Save the elements' values in the component settings.
public function submitStyleFormElements(array $group_elements) {}
}
Background color example - #3
23
class STYLE_PLUGIN_NAME extends StylePluginBase {
// Convert the storage to classes or attributes and merge them with the element’s render array.
public function build(array $build, array $storage, $theme_wrapper = NULL) {}
}
Bootstrap
Layout Builder
24
https://www.drupal.org/project/bootstrap_layout_builder
KING
Tab #1 Layout ● Developer can create breakpoints and
responsive layouts.
● Content editor can choose how the
content display on different devices.
25
KING
Tab #2 Style
● Let’s use Bootstrap Styles’ plugins in Bootstrap Layout Builder (Layout Builder Section).
26
KING
Tab #2 Style
● You have the option to restrict the styles’ plugins.
27
KING
Tab #3 Settings
● We call it advanced settings.
● Add additional classes.
● Add attributes to container, row or columns.
28
Layout Builder
Blocks
29
https://www.drupal.org/project/layout_builder_blocks
KING
Tab #1 Content
● Let’s use Bootstrap Styles’ plugins in
layout builder blocks.
30
Tab #2 Style
● Works with any block type!
KING
Tab #2 Style
● You have the option to restrict the styles’ plugins and the enabled block types!
31
Section Library
32
Let’s create reusable templates for single or
multiple sections!
Roadmap
33
09.05.XX
Current versions
June 2021:
● [Bootstrap Styles] Add & merge more plugins.
● [Bootstrap Styles] Responsive.
● [Bootstrap Layout Builder] Add the ability to style columns.
● [ Layout Builder Blocks] Add the ability to style field groups and
fields in a block.
● [Section Library] Release stable version of Section Library.
December 2021:
● [Bootstrap Styles] Add & merge more plugins.
● [Section Library] Import/Export templates.
● Creates components ( blocks ) that fully
integrated with the modules.
BS 1.0.3
BLB 2.0.1
LLB 1.0.1
SL 1.0.0-beta1
BS 1.1.x
BLB 2.1.x
LLB 1.1.x
SL 1.0.x
BS 1.2.x
BLB 2.2.x
LLB 1.2.x
SL 1.0.x
Demo
34

More Related Content

What's hot

Guerra civil espanhola
Guerra civil espanholaGuerra civil espanhola
Guerra civil espanhola
Alan
 
Periodo Entre Guerras
Periodo Entre Guerras Periodo Entre Guerras
Periodo Entre Guerras
Carlos Teles de Menezes Junior
 
História do rádio clube português
História do rádio clube portuguêsHistória do rádio clube português
História do rádio clube português
Rogério Santos
 
Brasil nos anos 1920
Brasil nos anos 1920Brasil nos anos 1920
Brasil nos anos 1920
Valéria Shoujofan
 
Parte 1 O fim da República Velha e a era Vargas
Parte 1 O fim da República Velha e a era VargasParte 1 O fim da República Velha e a era Vargas
Parte 1 O fim da República Velha e a era VargasPatricia Mendonça
 
Escravidão e Resistência Negra no Brasil Colonial
Escravidão e Resistência Negra no Brasil ColonialEscravidão e Resistência Negra no Brasil Colonial
Escravidão e Resistência Negra no Brasil Colonial
Ramiro Reis
 
Era vargas.
Era vargas.Era vargas.
Era vargas.
Chaldean555
 
O Populismo; A República Liberal; Período Democrático. (1946 – 1964)
O Populismo; A República Liberal; Período Democrático. (1946 – 1964)O Populismo; A República Liberal; Período Democrático. (1946 – 1964)
O Populismo; A República Liberal; Período Democrático. (1946 – 1964)
Privada
 
Socialismo na china
Socialismo na chinaSocialismo na china
Socialismo na china
Nicole Gouveia
 
Fichas para desenvolver atenção silhuetas
Fichas para desenvolver atenção silhuetasFichas para desenvolver atenção silhuetas
Fichas para desenvolver atenção silhuetas
Cláudia Marques
 
Século xix
Século xixSéculo xix
Século xix
Murilo Benevides
 
Jogo da trilha
Jogo da trilhaJogo da trilha
Jogo da trilhatyromello
 
Revolução industrial
Revolução industrialRevolução industrial
Revolução industrial
Rose Vital
 
A 2ª Guerra Mundial 9º ano
A 2ª Guerra Mundial   9º anoA 2ª Guerra Mundial   9º ano
A 2ª Guerra Mundial 9º ano
Gilmar Rodrigues
 
Movimento operário
Movimento operárioMovimento operário
Movimento operário
Isaque Marques Pascoal
 
Impressora 3D
Impressora 3DImpressora 3D
Impressora 3D
VicenteTino
 
Revolução Russa
Revolução RussaRevolução Russa
Revolução Russa
Douglas Barraqui
 
Arte protesto
Arte protestoArte protesto
Arte protesto
Luciana Estivalet
 

What's hot (20)

Guerra civil espanhola
Guerra civil espanholaGuerra civil espanhola
Guerra civil espanhola
 
Periodo Entre Guerras
Periodo Entre Guerras Periodo Entre Guerras
Periodo Entre Guerras
 
Década de 30
Década de 30Década de 30
Década de 30
 
História do rádio clube português
História do rádio clube portuguêsHistória do rádio clube português
História do rádio clube português
 
Brasil nos anos 1920
Brasil nos anos 1920Brasil nos anos 1920
Brasil nos anos 1920
 
Parte 1 O fim da República Velha e a era Vargas
Parte 1 O fim da República Velha e a era VargasParte 1 O fim da República Velha e a era Vargas
Parte 1 O fim da República Velha e a era Vargas
 
Escravidão e Resistência Negra no Brasil Colonial
Escravidão e Resistência Negra no Brasil ColonialEscravidão e Resistência Negra no Brasil Colonial
Escravidão e Resistência Negra no Brasil Colonial
 
Era vargas.
Era vargas.Era vargas.
Era vargas.
 
O Populismo; A República Liberal; Período Democrático. (1946 – 1964)
O Populismo; A República Liberal; Período Democrático. (1946 – 1964)O Populismo; A República Liberal; Período Democrático. (1946 – 1964)
O Populismo; A República Liberal; Período Democrático. (1946 – 1964)
 
Socialismo na china
Socialismo na chinaSocialismo na china
Socialismo na china
 
Fichas para desenvolver atenção silhuetas
Fichas para desenvolver atenção silhuetasFichas para desenvolver atenção silhuetas
Fichas para desenvolver atenção silhuetas
 
Século xix
Século xixSéculo xix
Século xix
 
Jogo da trilha
Jogo da trilhaJogo da trilha
Jogo da trilha
 
Governo figueiredo
Governo figueiredoGoverno figueiredo
Governo figueiredo
 
Revolução industrial
Revolução industrialRevolução industrial
Revolução industrial
 
A 2ª Guerra Mundial 9º ano
A 2ª Guerra Mundial   9º anoA 2ª Guerra Mundial   9º ano
A 2ª Guerra Mundial 9º ano
 
Movimento operário
Movimento operárioMovimento operário
Movimento operário
 
Impressora 3D
Impressora 3DImpressora 3D
Impressora 3D
 
Revolução Russa
Revolução RussaRevolução Russa
Revolução Russa
 
Arte protesto
Arte protestoArte protesto
Arte protesto
 

Similar to Speed up the site building with Drupal's Bootstrap Layout Builder

Layout discovery. Drupal Summer Barcelona 2017
Layout discovery. Drupal Summer Barcelona 2017Layout discovery. Drupal Summer Barcelona 2017
Layout discovery. Drupal Summer Barcelona 2017
Atenea tech
 
Final Project Presentation
Final Project PresentationFinal Project Presentation
Final Project Presentation
zroserie
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-Translator
Dashamir Hoxha
 
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Acquia
 
Angular JS2 Training Session #2
Angular JS2 Training Session #2Angular JS2 Training Session #2
Angular JS2 Training Session #2
Paras Mendiratta
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simple
cmsmssjg
 
Turbogears2 tutorial to create mvc app
Turbogears2 tutorial to create mvc appTurbogears2 tutorial to create mvc app
Turbogears2 tutorial to create mvc app
fRui Apps
 
Nuxeo World Session: Layouts and Content Views
Nuxeo World Session: Layouts and Content ViewsNuxeo World Session: Layouts and Content Views
Nuxeo World Session: Layouts and Content Views
Nuxeo
 
Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Oro Inc.
 
2 years of angular: lessons learned
2 years of angular: lessons learned2 years of angular: lessons learned
2 years of angular: lessons learned
Dirk Luijk
 
Django crush course
Django crush course Django crush course
Django crush course
Mohammed El Rafie Tarabay
 
Webform and Drupal 8
Webform and Drupal 8Webform and Drupal 8
Webform and Drupal 8
Philip Norton
 
Spring and Web Content Management
Spring and Web Content ManagementSpring and Web Content Management
Spring and Web Content Management
Zak Greant
 
Multilingualism makes better programmers
Multilingualism makes better programmersMultilingualism makes better programmers
Multilingualism makes better programmers
Alexander Varwijk
 
Speed up your developments with Symfony2
Speed up your developments with Symfony2Speed up your developments with Symfony2
Speed up your developments with Symfony2Hugo Hamon
 
Key Insights into Development Design Patterns for Magento 2 - Magento Live UK
Key Insights into Development Design Patterns for Magento 2 - Magento Live UKKey Insights into Development Design Patterns for Magento 2 - Magento Live UK
Key Insights into Development Design Patterns for Magento 2 - Magento Live UK
Max Pronko
 
How AngularDart & Firebase did an App together
How AngularDart & Firebase did an App togetherHow AngularDart & Firebase did an App together
How AngularDart & Firebase did an App together
Jana Moudrá
 
Core Java Programming Language (JSE) : Chapter II - Object Oriented Programming.
Core Java Programming Language (JSE) : Chapter II - Object Oriented Programming.Core Java Programming Language (JSE) : Chapter II - Object Oriented Programming.
Core Java Programming Language (JSE) : Chapter II - Object Oriented Programming.
WebStackAcademy
 
Workflow Essentials for Web Development
Workflow Essentials for Web DevelopmentWorkflow Essentials for Web Development
Workflow Essentials for Web Development
Xavier Porter
 

Similar to Speed up the site building with Drupal's Bootstrap Layout Builder (20)

Layout discovery. Drupal Summer Barcelona 2017
Layout discovery. Drupal Summer Barcelona 2017Layout discovery. Drupal Summer Barcelona 2017
Layout discovery. Drupal Summer Barcelona 2017
 
Final Project Presentation
Final Project PresentationFinal Project Presentation
Final Project Presentation
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-Translator
 
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8
 
Extend sdk
Extend sdkExtend sdk
Extend sdk
 
Angular JS2 Training Session #2
Angular JS2 Training Session #2Angular JS2 Training Session #2
Angular JS2 Training Session #2
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simple
 
Turbogears2 tutorial to create mvc app
Turbogears2 tutorial to create mvc appTurbogears2 tutorial to create mvc app
Turbogears2 tutorial to create mvc app
 
Nuxeo World Session: Layouts and Content Views
Nuxeo World Session: Layouts and Content ViewsNuxeo World Session: Layouts and Content Views
Nuxeo World Session: Layouts and Content Views
 
Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)Adding custom ui controls to your application (1)
Adding custom ui controls to your application (1)
 
2 years of angular: lessons learned
2 years of angular: lessons learned2 years of angular: lessons learned
2 years of angular: lessons learned
 
Django crush course
Django crush course Django crush course
Django crush course
 
Webform and Drupal 8
Webform and Drupal 8Webform and Drupal 8
Webform and Drupal 8
 
Spring and Web Content Management
Spring and Web Content ManagementSpring and Web Content Management
Spring and Web Content Management
 
Multilingualism makes better programmers
Multilingualism makes better programmersMultilingualism makes better programmers
Multilingualism makes better programmers
 
Speed up your developments with Symfony2
Speed up your developments with Symfony2Speed up your developments with Symfony2
Speed up your developments with Symfony2
 
Key Insights into Development Design Patterns for Magento 2 - Magento Live UK
Key Insights into Development Design Patterns for Magento 2 - Magento Live UKKey Insights into Development Design Patterns for Magento 2 - Magento Live UK
Key Insights into Development Design Patterns for Magento 2 - Magento Live UK
 
How AngularDart & Firebase did an App together
How AngularDart & Firebase did an App togetherHow AngularDart & Firebase did an App together
How AngularDart & Firebase did an App together
 
Core Java Programming Language (JSE) : Chapter II - Object Oriented Programming.
Core Java Programming Language (JSE) : Chapter II - Object Oriented Programming.Core Java Programming Language (JSE) : Chapter II - Object Oriented Programming.
Core Java Programming Language (JSE) : Chapter II - Object Oriented Programming.
 
Workflow Essentials for Web Development
Workflow Essentials for Web DevelopmentWorkflow Essentials for Web Development
Workflow Essentials for Web Development
 

More from DrupalCamp Kyiv

Performance Monitoring with Google Lighthouse
Performance Monitoring with Google LighthousePerformance Monitoring with Google Lighthouse
Performance Monitoring with Google Lighthouse
DrupalCamp Kyiv
 
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
DrupalCamp Kyiv
 
Acquia BLT for the Win, or How to speed up the project setup, development an...
Acquia BLT for the Win, or  How to speed up the project setup, development an...Acquia BLT for the Win, or  How to speed up the project setup, development an...
Acquia BLT for the Win, or How to speed up the project setup, development an...
DrupalCamp Kyiv
 
Upgrading to Drupal 9
Upgrading to Drupal 9Upgrading to Drupal 9
Upgrading to Drupal 9
DrupalCamp Kyiv
 
THE INTERNET OF THINGS IS GETTING REAL
THE INTERNET OF THINGS IS GETTING REALTHE INTERNET OF THINGS IS GETTING REAL
THE INTERNET OF THINGS IS GETTING REAL
DrupalCamp Kyiv
 
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLDFRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
DrupalCamp Kyiv
 
DRUPAL AND ELASTICSEARCH
DRUPAL AND ELASTICSEARCHDRUPAL AND ELASTICSEARCH
DRUPAL AND ELASTICSEARCH
DrupalCamp Kyiv
 
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
DrupalCamp Kyiv
 
Blackfire Workshop
Blackfire WorkshopBlackfire Workshop
Blackfire Workshop
DrupalCamp Kyiv
 
DRUPAL 8 STORAGES OVERVIEW
DRUPAL 8 STORAGES OVERVIEWDRUPAL 8 STORAGES OVERVIEW
DRUPAL 8 STORAGES OVERVIEW
DrupalCamp Kyiv
 
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
DrupalCamp Kyiv
 
1-1 MEETING: STEP-BY-STEP-HOW-TO
1-1 MEETING: STEP-BY-STEP-HOW-TO1-1 MEETING: STEP-BY-STEP-HOW-TO
1-1 MEETING: STEP-BY-STEP-HOW-TO
DrupalCamp Kyiv
 
UX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATIONUX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATION
DrupalCamp Kyiv
 
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
DrupalCamp Kyiv
 
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERATECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
DrupalCamp Kyiv
 
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPALPROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
DrupalCamp Kyiv
 
DRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTRDRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTR
DrupalCamp Kyiv
 
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
DrupalCamp Kyiv
 
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONSSEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
DrupalCamp Kyiv
 
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCEDEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DrupalCamp Kyiv
 

More from DrupalCamp Kyiv (20)

Performance Monitoring with Google Lighthouse
Performance Monitoring with Google LighthousePerformance Monitoring with Google Lighthouse
Performance Monitoring with Google Lighthouse
 
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
 
Acquia BLT for the Win, or How to speed up the project setup, development an...
Acquia BLT for the Win, or  How to speed up the project setup, development an...Acquia BLT for the Win, or  How to speed up the project setup, development an...
Acquia BLT for the Win, or How to speed up the project setup, development an...
 
Upgrading to Drupal 9
Upgrading to Drupal 9Upgrading to Drupal 9
Upgrading to Drupal 9
 
THE INTERNET OF THINGS IS GETTING REAL
THE INTERNET OF THINGS IS GETTING REALTHE INTERNET OF THINGS IS GETTING REAL
THE INTERNET OF THINGS IS GETTING REAL
 
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLDFRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
 
DRUPAL AND ELASTICSEARCH
DRUPAL AND ELASTICSEARCHDRUPAL AND ELASTICSEARCH
DRUPAL AND ELASTICSEARCH
 
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
 
Blackfire Workshop
Blackfire WorkshopBlackfire Workshop
Blackfire Workshop
 
DRUPAL 8 STORAGES OVERVIEW
DRUPAL 8 STORAGES OVERVIEWDRUPAL 8 STORAGES OVERVIEW
DRUPAL 8 STORAGES OVERVIEW
 
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
 
1-1 MEETING: STEP-BY-STEP-HOW-TO
1-1 MEETING: STEP-BY-STEP-HOW-TO1-1 MEETING: STEP-BY-STEP-HOW-TO
1-1 MEETING: STEP-BY-STEP-HOW-TO
 
UX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATIONUX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATION
 
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
 
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERATECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
 
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPALPROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
 
DRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTRDRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTR
 
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
 
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONSSEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
 
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCEDEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
 

Recently uploaded

How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
CarlosHernanMontoyab2
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
BhavyaRajput3
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
beazzy04
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
Special education needs
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 

Recently uploaded (20)

How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf678020731-Sumas-y-Restas-Para-Colorear.pdf
678020731-Sumas-y-Restas-Para-Colorear.pdf
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
special B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdfspecial B.ed 2nd year old paper_20240531.pdf
special B.ed 2nd year old paper_20240531.pdf
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 

Speed up the site building with Drupal's Bootstrap Layout Builder

  • 1. Two Sides of the Same Coin: Maximizing UX With Drupal’s Bootstrap Layout Builder Speed up the site building With: Drupal’s Bootstrap Layout Builder
  • 2. Mahmoud Zayed Software Architect mahmoudz@imagexmedia.com Aaron Christian Software Architect aaronc@imagexmedia.com 2
  • 5. DrupalCon Vienna 2017 ● Dries has announced some initiatives that enhances the user experience for site builders. ● One of these initiatives was the Layout Builder, which later become a Drupal core module. 5
  • 7. Atomic Design 7 1. Atoms 2. Molecules 3. Organism 4. Template 5. Page
  • 8. UI kits 8 ● Made an extensive UI kit / guide for the developers ● Listed both foundations and components ● Started adding more responsive version for each component
  • 9. Annotations 9 ● The designer numbers the components that annotates the descriptions in the footer of the page. ● This helps BA and Dev will use this to understand the initial the feature requirements. ● It’s good for keeping a discussion around a component ● Client will use this to understand how the elements and pages interact. ● We use the same numbers on other pages if we are using the component
  • 12. Bootstrap Styles Bootstrap Layout Builder Layout Builder Blocks 12
  • 13. Dependency 13 Bootstrap Styles Bootstrap Layout Builder XYZ Layout Builder Blocks Styles’ Plugins inventory Creates Dynamic Layouts Utilize Bootstrap Styles Module in the section element render array Utilize Bootstrap Styles Module in the ???? element render array Utilize Bootstrap Styles Module in the block element render array Why Plugin design pattern?
  • 15. Plugins Group ● Plugins group is a wrapper of one or more style plugin. ● It displays in the groups if at least one of its plugins is enabled. ● It can contain any shared configurations for its plugins. 15
  • 16. How to define a new group plugin? ● Create the plugin group: MODULE_NAME/src/Plugin/BootstrapStyles/StylesGroup/PLUGIN_GROUP_NAME.php ● Define the annotation. 16 @StylesGroup( id = "background", title = @Translation("Background"), weight = 1, icon = "bootstrap_styles/images/plugins/background-icon.svg" ) ● Add the class & the functions: class GROUP_PLUGIN_NAME extends StylesGroupPluginBase { ------------ #1 --------------- // Add elements to the configuration form. public function buildConfigurationForm(array &$form, FormStateInterface $form_state) {} // Saves the elements’ values to the form state. public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {} ------------- #2 --------------- // Add elements to Layout Builder dialog. public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {} // Save the elements' values in the component settings. public function submitStyleFormElements(array $group_elements) {} }
  • 17. Background group example - #1 17 class GROUP_PLUGIN_NAME extends StylesGroupPluginBase { // Add elements to the configuration form. public function buildConfigurationForm(array &$form, FormStateInterface $form_state) {} // Saves the elements’ values to the form state. public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {} }
  • 18. Background group example - #2 18 class GROUP_PLUGIN_NAME extends StylesGroupPluginBase { // Add elements to Layout Builder dialog. public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {} // Save the elements' values in the component settings. public function submitStyleFormElements(array $group_elements) {} } @StylesGroup( id = "background", title = @Translation("Background"), weight = 1, icon = "bootstrap_styles/images/plugins/background-icon.svg" )
  • 20. How to define a new style plugin? ● Create an style plugin: MODULE_NAME/src/Plugin/BootstrapStyles/Style/STYLE_PLUGIN_NAME.php ● Define the annotation. 20 @Style( id = "background_color", title = @Translation("Background Color"), group_id = "background", weight = 1 ) ● Add the class & the functions: class STYLE_PLUGIN_NAME extends StylePluginBase { ------------ #1 --------------- // Add elements to the configuration form. public function buildConfigurationForm(array &$form, FormStateInterface $form_state) {} // Saves the elements’ values to the form state. public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {} ------------- #2 --------------- // Add elements to Layout Builder dialog. public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {} // Save the elements' values in the component settings. public function submitStyleFormElements(array $group_elements) {} ------------- #3 --------------- // Convert the storage to classes or attributes and merge them with the element’s render array. public function build(array $build, array $storage, $theme_wrapper = NULL) {} }
  • 21. Background Color example - #1 21 class STYLE_PLUGIN_NAME extends StylePluginBase { // Add elements to the configuration form. public function buildConfigurationForm(array &$form, FormStateInterface $form_state) {} // Saves the elements’ values to the form state. public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {} }
  • 22. Background color example - #2 22 class STYLE_PLUGIN_NAME extends StylePluginBase { // Add elements to Layout Builder dialog. public function buildStyleFormElements(array &$form, FormStateInterface $form_state, $storage) {} // Save the elements' values in the component settings. public function submitStyleFormElements(array $group_elements) {} }
  • 23. Background color example - #3 23 class STYLE_PLUGIN_NAME extends StylePluginBase { // Convert the storage to classes or attributes and merge them with the element’s render array. public function build(array $build, array $storage, $theme_wrapper = NULL) {} }
  • 25. KING Tab #1 Layout ● Developer can create breakpoints and responsive layouts. ● Content editor can choose how the content display on different devices. 25
  • 26. KING Tab #2 Style ● Let’s use Bootstrap Styles’ plugins in Bootstrap Layout Builder (Layout Builder Section). 26
  • 27. KING Tab #2 Style ● You have the option to restrict the styles’ plugins. 27
  • 28. KING Tab #3 Settings ● We call it advanced settings. ● Add additional classes. ● Add attributes to container, row or columns. 28
  • 30. KING Tab #1 Content ● Let’s use Bootstrap Styles’ plugins in layout builder blocks. 30 Tab #2 Style ● Works with any block type!
  • 31. KING Tab #2 Style ● You have the option to restrict the styles’ plugins and the enabled block types! 31
  • 32. Section Library 32 Let’s create reusable templates for single or multiple sections!
  • 33. Roadmap 33 09.05.XX Current versions June 2021: ● [Bootstrap Styles] Add & merge more plugins. ● [Bootstrap Styles] Responsive. ● [Bootstrap Layout Builder] Add the ability to style columns. ● [ Layout Builder Blocks] Add the ability to style field groups and fields in a block. ● [Section Library] Release stable version of Section Library. December 2021: ● [Bootstrap Styles] Add & merge more plugins. ● [Section Library] Import/Export templates. ● Creates components ( blocks ) that fully integrated with the modules. BS 1.0.3 BLB 2.0.1 LLB 1.0.1 SL 1.0.0-beta1 BS 1.1.x BLB 2.1.x LLB 1.1.x SL 1.0.x BS 1.2.x BLB 2.2.x LLB 1.2.x SL 1.0.x