Christopher Bloom
Frontend developer, lover of design systems, CSS architecture, and all things javascript.
<HTML/>
Drupal theming
<HTML/>
Wordpress theming
Drupal theming
Wordpress theming
Drupal theming
Drupal theming
Drupal theming
Drupal theming
?
Atomic Design
Atomic Design
Atomic Design
Atomic Design
If atoms are the basic building blocks of matter, then the atoms of our interfaces serve as the foundational building blocks that comprise all our user interfaces. These atoms include basic HTML elements like form labels, inputs, buttons, and others that can’t be broken down any further without ceasing to be functional.
Atomic Design
In interfaces, molecules are relatively simple groups of UI elements functioning together as a unit. For example, a form label, search input, and button can join together to create a search form molecule.
Atomic Design
Organisms are relatively complex UI components composed of groups of molecules and/or atoms and/or other organisms. These organisms form distinct sections of an interface.
Atomic Design
Templates are page-level objects that place components into a layout and articulate the design’s underlying content structure.
Atomic Design
Pages are specific instances of templates that show what a UI looks like with real representative content in place.
Atomic Design
Atomic Design
Prototyping
Prototyping
Prototyping - Pattern Lab
Prototyping - Pattern Lab
Prototyping - Pattern Lab
Pattern Lab + Drupal
Pattern Lab + Drupal
Pattern Lab
Drupal
sitename |- themes |- mytheme |- patternlab |- css |- js |- img |- fonts |- icons
Pattern Lab lives inside a Drupal theme. There is NO duplication, no "moving" of files. Both systems share the exact same assets.
<div class="card">
{% if card_header %}
{% block card_header %}
<div class="card-header">
{{ card_header }}
</div>
{% endblock %}
{% endif %}
{% if card_image_top %}
{% block card_image_top %}
<img class="card-img-top" src="{{ image_medium }}" />
{% endblock %}
{% endif %}
<div class="card-block">
....
Pattern Lab + Drupal
/**
* @file
* node--article--teaser.html.twig
*/
{% embed "@molecules/cards/card.twig"
with {
"element": "article",
"url": url,
"title": label,
"card_image_top": true,
"card_links": true,
"card_footer": node.bundle|title
}
%}
{% block card_image_top %}
{{ content.field_image }}
{% endblock %}
{% block card_links %}
{{ content.links }}
{% endblock %}
{% endembed %}
Pattern Lab + Drupal
Up next:
By Christopher Bloom
Frontend development is much better served from a robust prototyping tool that produces assets consumed by complex systems like Drupal or Wordpress.
Frontend developer, lover of design systems, CSS architecture, and all things javascript.