SlideShare a Scribd company logo
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
Drupal & Pattern Lab
un nuovo approccio al theming
Drupal Day 2017
Gian Mario Mereu
gmereu@wellnet.it
Twig
Twig
Twig
Stampa qualcosa: {{ ... }}
esegui il comando: {% ... %}
commenti: {# ... #}
Twig
Accesso variabili
{{ object.pippo }}
Twig
Includere file
{% include “file.html.twig” with { var1: value } %}
{% include “file.html.twig” with { var1: value } only %}
Twig
blocchi
“page.html.twig”
Twig
estendere un twig
Problema: Drupal theming
il Drupal themer
Theme accoppiato alle strutture dati
Pipeline: 1) sviluppo e/o building; 2) theming;
Metodologie per la progettazione e strumenti a supporto dello sviluppo
Metodo di progettazione di sistemi
(design system) chiamato:
Atomic Design
Strumento a supporto:
Pattern Lab
Metodologie per la progettazione e strumenti a supporto dello sviluppo
Atomic Design prende ispirazione dai ricordi di chimica dell’ideatore
Metodologie per la progettazione e strumenti a supporto dello sviluppo
tag html
a, input, label, h*, li, ol, p,
table, button, image
label
input
button
Metodologie per la progettazione e strumenti a supporto dello sviluppo
le molecole sono dei
raggruppamenti di elementi
(tag) e che funzionano come
una unità
Il form (molecola) viene
formato dagli elementi
(atomi) della slide
precedente
Metodologie per la progettazione e strumenti a supporto dello sviluppo
gli organismi sono dei
componenti della UI
mediamente complessi
composti da atomi e/o
molecole e/o altri organismi
Ad esempio l’header è un
organismo
Metodologie per la progettazione e strumenti a supporto dello sviluppo
i template raggruppano
oggetti: organismi, molecole
ed atomi, in uno specifico
layout
Metodologie per la progettazione e strumenti a supporto dello sviluppo
gli organismi sono dei
componenti della UI
mediamente complessi
composti da atomi e/o
molecole e/o altri organismi
Metodologie per la progettazione e strumenti a supporto dello sviluppo
Pattern Lab
“At its core, Pattern Lab is a static site generator (powered by either PHP or Node)
that stitches together UI components.”
definizione da http://patternlab.io/
Il sito statico viene generato a partire da una serie di template (twig o
mustache)/css/js organizzati in una gerarchia di directory
Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab)
source
root directory
Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab)
source/_patterns
http://demo.patternlab.io/
Strumenti esistenti in Drupal (elenco non completo)
Pattern Lab
● Pattern Lab Twig Standard Edition for Drupal (github)
plugin-drupal-twig-components (t, without, link, path …. )
Drupal 8 theme
● Phase2 Drupal 8 base theme with Pattern Lab (github)
gulp, sass, singularity - ottimamente documentato
● Shila theme for Drupal 8 (github)
gulp, sass, singularity
Strumenti esistenti in Drupal (elenco non completo)
Moduli
● components
Permette rendere accessibili nuovi componenti definiti in un tema o modulo come namespace Twig
mymodule.info.yml [mymodule directory]/myModuleComponets/box/box.twig
component-libraries:
myModule:
paths:
- myModuleComponets {% include "@myModule/box/box.twig" %}
Strumenti esistenti in Drupal (elenco non completo)
Moduli
● ui patterns
permette di definire dei pattern
ed usarli in: panels, field groups,
views, paragraphs
teammember:
label: Team Member
description: Display a team member.
fields:
name:
type: text
label: Name
description: Name of the team member.
preview: Nome Cognome
……….
use: '@molecules/components/shila-team-member/shila-team-member.html.twig'
libraries:
- shila_theme/team-member
my-pattern.ui_patterns.yml
Strumenti esistenti in Drupal (elenco non completo)
<div class="team-member">
<div class="team-member__picture">
<image src=”{{ image }}”>
</div>
<h2 class="team-member__name">
{{ name }}
</h2>
<span class="team-member__nikname">{{ nikname }}</span> //
<span class="team-member__email">{{ email }}</span>
<div class="team-member__bio">
<div class="team-member__bio__button">-</div>
<p class="team-member__bio__content collapse">
{{ bio }}
</p>
</div>
</div>
Demo
Team Member
Conclusioni
il Drupal themer
Theme accoppiato alle strutture dati
Pipeline: 1) sviluppo e/o building; 2) theming;
http://atomicdesign.bradfrost.com
http://patternlab.io
https://www.aleksip.net // https://github.com/aleksip/shila-drupal-theme
https://www.phase2technology.com // https://github.com/phase2/pattern-lab-starter
Domande
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

More Related Content

PDF
[drupalday2017] - Drupal 4 Stakeholders
PDF
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
PDF
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
PDF
Creare un tema personalizzato per wordpress
PDF
Miglioriamo le performance di wordpress
PDF
Plone 5 - lo stato dell'arte
PDF
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
PDF
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Drupal 4 Stakeholders
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
Creare un tema personalizzato per wordpress
Miglioriamo le performance di wordpress
Plone 5 - lo stato dell'arte
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
[drupalday2017] - Behat per Drupal: test automatici e molto di più

Viewers also liked (20)

PDF
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di Sapienza
PDF
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
PDF
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
PDF
[drupalday2017] - Devel - D8 release party
PDF
[drupalday2017] - Async navigation with a lightweight ES6 framework
PDF
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
PDF
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
PDF
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
PDF
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
PDF
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
PDF
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8
PDF
[drupalday2017] - REST in pieces
PDF
[drupalday2017] - Quando l’informazione è un servizio
PDF
[drupalday2017] - Speed-up your Drupal instance!
PDF
Come progettare e realizzare una distribuzione in Drupal 8
PDF
Da X a Drupal 8, migra tutto e vivi sereno
PDF
Your Entity, Your Code
PDF
Once you go cloud you never go down
PDF
Tooling per il tema in Drupal 8
PDF
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di Sapienza
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
[drupalday2017] - Devel - D8 release party
[drupalday2017] - Async navigation with a lightweight ES6 framework
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8
[drupalday2017] - REST in pieces
[drupalday2017] - Quando l’informazione è un servizio
[drupalday2017] - Speed-up your Drupal instance!
Come progettare e realizzare una distribuzione in Drupal 8
Da X a Drupal 8, migra tutto e vivi sereno
Your Entity, Your Code
Once you go cloud you never go down
Tooling per il tema in Drupal 8
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
Ad

Similar to [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming (8)

PDF
One style to rule'em all - Styleguide & Atomic Design ~ Gaia Zuccaro
PDF
Come strutturare un design semplice ed efficace per WordPress
KEY
Sviluppare applicazioni Facebook utilizzando Drupal
PDF
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
PPT
•Blog: quali tecnologie per il futuro?
 
PPTX
GWT vs CSS3
PPTX
Plone4 ur plone e web science may 20 2010 - 4
PDF
One style to rule'em all - Styleguide & Atomic Design ~ Gaia Zuccaro
Come strutturare un design semplice ed efficace per WordPress
Sviluppare applicazioni Facebook utilizzando Drupal
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
•Blog: quali tecnologie per il futuro?
 
GWT vs CSS3
Plone4 ur plone e web science may 20 2010 - 4
Ad

[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

  • 2. Drupal & Pattern Lab un nuovo approccio al theming Drupal Day 2017
  • 6. Twig Stampa qualcosa: {{ ... }} esegui il comando: {% ... %} commenti: {# ... #}
  • 8. Twig Includere file {% include “file.html.twig” with { var1: value } %} {% include “file.html.twig” with { var1: value } only %}
  • 11. Problema: Drupal theming il Drupal themer Theme accoppiato alle strutture dati Pipeline: 1) sviluppo e/o building; 2) theming;
  • 12. Metodologie per la progettazione e strumenti a supporto dello sviluppo Metodo di progettazione di sistemi (design system) chiamato: Atomic Design Strumento a supporto: Pattern Lab
  • 13. Metodologie per la progettazione e strumenti a supporto dello sviluppo Atomic Design prende ispirazione dai ricordi di chimica dell’ideatore
  • 14. Metodologie per la progettazione e strumenti a supporto dello sviluppo tag html a, input, label, h*, li, ol, p, table, button, image label input button
  • 15. Metodologie per la progettazione e strumenti a supporto dello sviluppo le molecole sono dei raggruppamenti di elementi (tag) e che funzionano come una unità Il form (molecola) viene formato dagli elementi (atomi) della slide precedente
  • 16. Metodologie per la progettazione e strumenti a supporto dello sviluppo gli organismi sono dei componenti della UI mediamente complessi composti da atomi e/o molecole e/o altri organismi Ad esempio l’header è un organismo
  • 17. Metodologie per la progettazione e strumenti a supporto dello sviluppo i template raggruppano oggetti: organismi, molecole ed atomi, in uno specifico layout
  • 18. Metodologie per la progettazione e strumenti a supporto dello sviluppo gli organismi sono dei componenti della UI mediamente complessi composti da atomi e/o molecole e/o altri organismi
  • 19. Metodologie per la progettazione e strumenti a supporto dello sviluppo Pattern Lab “At its core, Pattern Lab is a static site generator (powered by either PHP or Node) that stitches together UI components.” definizione da http://patternlab.io/ Il sito statico viene generato a partire da una serie di template (twig o mustache)/css/js organizzati in una gerarchia di directory
  • 20. Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab) source root directory
  • 21. Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab) source/_patterns http://demo.patternlab.io/
  • 22. Strumenti esistenti in Drupal (elenco non completo) Pattern Lab ● Pattern Lab Twig Standard Edition for Drupal (github) plugin-drupal-twig-components (t, without, link, path …. ) Drupal 8 theme ● Phase2 Drupal 8 base theme with Pattern Lab (github) gulp, sass, singularity - ottimamente documentato ● Shila theme for Drupal 8 (github) gulp, sass, singularity
  • 23. Strumenti esistenti in Drupal (elenco non completo) Moduli ● components Permette rendere accessibili nuovi componenti definiti in un tema o modulo come namespace Twig mymodule.info.yml [mymodule directory]/myModuleComponets/box/box.twig component-libraries: myModule: paths: - myModuleComponets {% include "@myModule/box/box.twig" %}
  • 24. Strumenti esistenti in Drupal (elenco non completo) Moduli ● ui patterns permette di definire dei pattern ed usarli in: panels, field groups, views, paragraphs teammember: label: Team Member description: Display a team member. fields: name: type: text label: Name description: Name of the team member. preview: Nome Cognome ………. use: '@molecules/components/shila-team-member/shila-team-member.html.twig' libraries: - shila_theme/team-member my-pattern.ui_patterns.yml
  • 25. Strumenti esistenti in Drupal (elenco non completo) <div class="team-member"> <div class="team-member__picture"> <image src=”{{ image }}”> </div> <h2 class="team-member__name"> {{ name }} </h2> <span class="team-member__nikname">{{ nikname }}</span> // <span class="team-member__email">{{ email }}</span> <div class="team-member__bio"> <div class="team-member__bio__button">-</div> <p class="team-member__bio__content collapse"> {{ bio }} </p> </div> </div>
  • 26. Demo
  • 28. Conclusioni il Drupal themer Theme accoppiato alle strutture dati Pipeline: 1) sviluppo e/o building; 2) theming;