Skip to content

Twig function that inserts static classes into Pattern Lab but adds them to attributes in Drupal

License

Notifications You must be signed in to change notification settings

gamma613/bem-twig-extension

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

bem-twig-extension

Twig function that inserts static classes into Pattern Lab and adds them to the Attributes object in Drupal

Requirements

To use in Pattern Lab, simply place in the _twig-components/functions directory. Drupal needs to recognize the Twig function, so something like Unified Twig Extensions module can be helpful for that.

Usage (4 arguments)

Simple block name (required argument):

<h1 {{ bem('title') }}>

This creates:

<h1 class="title">

Block with modifiers (optional array allowing multiple modifiers):

<h1 {{ bem('title', ['small', 'red']) }}>

This creates:

<h1 class="title title--small title--red">

Element with modifiers and blockname (optional):

<h1 {{ bem('title', ['small', 'red'], 'card') }}>

This creates:

<h1 class="card__title card__title--small card__title--red">

Element with blockname, but no modifiers (optional):

<h1 {{ bem('title', '', 'card') }}>

This creates:

<h1 class="card__title">

Element with modifiers, blockname and extra classes (optional - in case you need non-BEM classes):

<h1 {{ bem('title', ['small', 'red'], 'card', ['js-click', 'something-else']) }}>

This creates:

<h1 class="card__title card__title--small card__title--red js-click something-else">

Element with extra classes only (optional):

<h1 {{ bem('title', '', '', ['js-click']) }}>

This creates:

<h1 class="title js-click">

About

Twig function that inserts static classes into Pattern Lab but adds them to attributes in Drupal

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%