Little documentation and few base themes with 8.x branches - what's a front end developer to do? I'll show you what's changing in Drupal theming between D7 and D8 and how to create a custom theme based on the Classy base theme, step by step. We'll go over Twig basics and Twig debugging.
Quite significant changes were introduced in the theme system between Drupal 8 and 7. This guide contains information that applies to Drupal 8 theming.
Twig for Drupal 8 and PHP | Presented at OC Drupalwebbywe
A high level overview of Twig and its functions that was presented at the OC Drupal meetup in February 2014 at KWALL.
As Twig is now part of Drupal 8 core, it is still being developed so slides are mostly on Twig itself. Discussion was over what Twig provides to themers.
http://www.meetup.com/oc-php
http://www.meetup.com/ocdrupal/
Quite significant changes were introduced in the theme system between Drupal 8 and 7. This guide contains information that applies to Drupal 8 theming.
Twig for Drupal 8 and PHP | Presented at OC Drupalwebbywe
A high level overview of Twig and its functions that was presented at the OC Drupal meetup in February 2014 at KWALL.
As Twig is now part of Drupal 8 core, it is still being developed so slides are mostly on Twig itself. Discussion was over what Twig provides to themers.
http://www.meetup.com/oc-php
http://www.meetup.com/ocdrupal/
Need start to finish help on getting Drupal 8 up and running locally? Ready to start contributing code?
This will help you get everything installed locally including Drush and gives basic information about Configuration for those new to it.
Grok Drupal (7) Theming - 2011 Feb updateLaura Scott
These are slides from my presentation at Drupal Design Camp Los Angeles, February 2011. Video with rather low resolution version of the slides (we inadvertently recorded my presentation notes screen rather than the projector screen) can be viewed on blip:
http://ladrupal.blip.tv/file/4731722/
Drupal Theme Development - DrupalCon Chicago 2011Ryan Price
This class is intended for people who know some HTML and CSS, and covers the fundamental principles of Drupal theming geared toward people who wish to take a static mockup of a site design and turn it into a Drupal theme. You will also learn about using base themes, grid-based layout and helper modules to streamline and customize your Drupal theme.
Trainer Ryan Price has built entertainment sites, social networks, and eCommerce sites for clients including Popular Science, Field and Stream and Outdoor Life magazines. With over 10 years of experience building sites with PHP and other technologies, Ryan began immersing himself in Drupal around 2006. Ryan often teaches and writes articles along with Mike Anello, and the duo is also known for producing the DrupalEasy Podcast with their host Andrew Riley.
Stepping into theme development can be daunting. Sure anyone with a little PHP skill and a basic understanding of the loop can create theme templates, but there are a number of things you can learn which can take your theme development to the next level. We’ll discuss the skills that can take you from a beginner theme developer to a master.
A video of this talk given in Boston, MA can be seen at https://www.youtube.com/watch?v=IdMEOO0JmZA
(Updated for 2017)
Drupal 8 Theme System: The Backend of FrontendAcquia
If you develop with Drupal, chances are you've worked with Drupal's theme system, whether you knew it or not. With Drupal 8 out, what better time to learn more about the Drupal 8 theme system?
The theme system in Drupal spans both module development and theme development. The main responsibilities of the theme system are to prepare and output markup and other data, and to allow for overrides. The Drupal 8 theme system brings many changes including the Twig templating engine, automatically escaped markup for increased security, changes to theme suggestions, new base themes in core, and more.
Scott Reeves, Team Lead at Digital Echidna, and Drupal 8 theme system co-maintainer and provisional core committer will guide you through Drupal 8’s theme system. The webinar will cover important differences from Drupal 7 and also walk through the internals of different aspects of the theme system and how they might affect your day-to-day work with Drupal.
Topics will include:
-An overview of the important changes to the theme system from Drupal 7 to Drupal 8
-How to use theme hook suggestions to cut down on custom code and create more flexible and reusable components
-Phases of the theme and render systems and where you can step in to alter things
-Debugging tips and Twig magic
Need start to finish help on getting Drupal 8 up and running locally? Ready to start contributing code?
This will help you get everything installed locally including Drush and gives basic information about Configuration for those new to it.
Grok Drupal (7) Theming - 2011 Feb updateLaura Scott
These are slides from my presentation at Drupal Design Camp Los Angeles, February 2011. Video with rather low resolution version of the slides (we inadvertently recorded my presentation notes screen rather than the projector screen) can be viewed on blip:
http://ladrupal.blip.tv/file/4731722/
Drupal Theme Development - DrupalCon Chicago 2011Ryan Price
This class is intended for people who know some HTML and CSS, and covers the fundamental principles of Drupal theming geared toward people who wish to take a static mockup of a site design and turn it into a Drupal theme. You will also learn about using base themes, grid-based layout and helper modules to streamline and customize your Drupal theme.
Trainer Ryan Price has built entertainment sites, social networks, and eCommerce sites for clients including Popular Science, Field and Stream and Outdoor Life magazines. With over 10 years of experience building sites with PHP and other technologies, Ryan began immersing himself in Drupal around 2006. Ryan often teaches and writes articles along with Mike Anello, and the duo is also known for producing the DrupalEasy Podcast with their host Andrew Riley.
Stepping into theme development can be daunting. Sure anyone with a little PHP skill and a basic understanding of the loop can create theme templates, but there are a number of things you can learn which can take your theme development to the next level. We’ll discuss the skills that can take you from a beginner theme developer to a master.
A video of this talk given in Boston, MA can be seen at https://www.youtube.com/watch?v=IdMEOO0JmZA
(Updated for 2017)
Drupal 8 Theme System: The Backend of FrontendAcquia
If you develop with Drupal, chances are you've worked with Drupal's theme system, whether you knew it or not. With Drupal 8 out, what better time to learn more about the Drupal 8 theme system?
The theme system in Drupal spans both module development and theme development. The main responsibilities of the theme system are to prepare and output markup and other data, and to allow for overrides. The Drupal 8 theme system brings many changes including the Twig templating engine, automatically escaped markup for increased security, changes to theme suggestions, new base themes in core, and more.
Scott Reeves, Team Lead at Digital Echidna, and Drupal 8 theme system co-maintainer and provisional core committer will guide you through Drupal 8’s theme system. The webinar will cover important differences from Drupal 7 and also walk through the internals of different aspects of the theme system and how they might affect your day-to-day work with Drupal.
Topics will include:
-An overview of the important changes to the theme system from Drupal 7 to Drupal 8
-How to use theme hook suggestions to cut down on custom code and create more flexible and reusable components
-Phases of the theme and render systems and where you can step in to alter things
-Debugging tips and Twig magic
Twig for Drupal @ Frontendunited Amsterdam 2012Rene Bakx
The slides for the Twig for Drupal 7 introduction talk I gave at FrontendUnited in Amsterdam.
No hardcore coding, just examples why Twig is for HTML was SASS is for your CSS.
These are the slides for a workshop I’ve given at a couple conferences, explaining how Twig works to people who don’t necessarily come from a programming background.
In this session, we will explore the how the recent explosion of devices has disrupted the process of designing a website that we've crafted over the past decade.
When designers only have one instance of website (i.e., desktop) to design, the layout is uniform. The header, content area, sidebar, and footer all remain static. Furthermore, the elements are relatively uniform as well. Buttons, navigation, typography, and images are all basically the same across across the various pages. But if you are designing a responsive website – one whose look and feel adapts depending whether you're using a phone, laptop, or tablet – then these elements and especially the layout begin to diverge.
After this session, you should leave with the confidence to argue the importance of responsive design to your client or boss – and that the with the proper strategy, the extra effort and costs can be justified (and hopefully minimized).
A presentation showing the conversion of a html+css template to a simple Drupal theme. Theme files can be found at http://groups.drupal.org/node/23694#comment-83107
Can a custom Drupal 8 Theme be created in 40 minutes? The results might not be pretty but we're going to create a theme from start to finish. In the process you'll get to see all the components that make up a theme and get acquainted with tools that get the job done.
Minimalist Theming: How to Build a Lean, Mean Drupal 8 ThemeSuzanne Dergacheva
Back in the Drupal 7 days (aka last year), we came across some pretty large, hard-to-maintain Drupal 7 sites. The theme was often responsible for a lot of the cruft. We saw themes with excess code, too many template files, and not enough documentation.
The Drupal 8 theme layer provides new features like libraries and Twig blocks that can help us to build cleaner, better-organized themes. So now is a good time for themers to re-visit which theming techniques to use to create themes that are smaller, maintainable, and well organized.
[Srijan Wednesday Webinars] Drupal 8: Goodbye to 10 Years of Theming HeadachesSrijan Technologies
Drupal 8 has many new and exciting features, but none are as radical and essential as the changes made to the theme system. For over 10 years, Drupal's front end was designed and built by developers who tried their very best to figure out what the front end needed. The lack of dedicated front-enders in core resulted in a less than ideal front end architecture.
In this webinar, our speaker would share how Drupal 8 and Twig have changed it all. He would cover what’s new in Drupal 8 theme system, and how to use Twig to relieve the headache that you, as a themer, have been suffering from.
You can watch the complete webinar recording here: https://youtu.be/PxEpnGI5z6w
An introduction for web designers to theming with Drupal 8. The course covers the processes for creating a Theme including working with Yml files, setting up Gulp with Sass and Livereload and then diving into styling elements in Drupal.
Basic Theming concepts including installing themes, theme templates and page regions are covered along with how to use Twig.
Drupal 101: Tips and Tricks for Troubleshooting DrupalAcquia
The site is published, your design is pristine, and it is ready for action... so, now what? While you may think you’re in the clear, site issues are likely to arise at some point. To protect your business from a site-crash nightmare, there are necessary precautions you should take.
Customer support engineers Lanette and Ally are here to prepare you for the worst; using their 3.5 years of Drupal experience to explain common issues they’ve encountered, how to identify them, and how to remedy problems quickly.
In this webinar, you will learn:
- Early steps to take to maintain site health
- Preparing your team for common site complications
- Tips and tricks for troubleshooting if problems arise
- Third-party tools to help you resolve issues
Everything You Need to Know About the Top Changes in Drupal 8Acquia
<p>Drupal 8 is on the way. And we know you want to know -- what does this mean for me?!</p>
<p>Don't fear, Angie 'webchick' Byron is here! This one hour webinar will provide you with detailed overviews on the major changes in Drupal 8, as well as several short video demos that will give you a glimpse into a few of the newest features and capabilities. Angie will explain what D8 means for:</p>
<ul>
<li>Site Builders: See Views in Core, more (and better) blocks, improved entity and field features...the list goes on!</li>
<li>Front-end Developers: We're talking HTML5, libraries, accessibility enhancements, new themes and UI elements, and faster performance, to name a few.</li>
<li>Back-end Developers: A new configuration management system, a completely rehauled Entity API, improved caching, and new built-in web services features.</li></ul>
Formazione sul theming per drupal 8: partendo da una breve panoramica di che cos'è cambiato rispetto alla versione precedente, vedremo quali sono le novità introdotte con la nuova versione ma soprattutto faremo alcuni esempi pratici utili per chi vuole iniziare a creare un tema per drupal 8 e… vivere sereno!
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
Drupal 7 allows to easily build and maintain distributions, i.e. repeatable website templates; you can benefit from this in all cases, whether you aim at large-scale deployments or even at maintaining a single website.
We will show how to package core and contributed modules in a distribution by using a Makefile and a profile and keeping them up-to-date during the whole development cycle.
Then you will learn how to use Code-Driven Development to store all settings in a sustainable way: use the Features module to easily describe configuration in code, a proper separation between Features to make your code reusable and extendible, a well-thought design of Features to create easier development patterns, CTools and Exportables to put your configuration in code even when a module does not support it natively.
Last, we will see how the distributions update mechanism allows you to create a new version of your distribution for easy and painless configuration updates of a live site.
This presentation was delivered on 11th May, 2014 in Drupal Camp Pakistan held in DatumSquare IT Services Islamabad. Contents of the presentation contains some basics stuff for designers, themers and coders.
This is a session on the basics of Drupal 7 themeing and front-end customization of a Drupal 7 website.
This training session is targeted as intermediate to advanced Drupal user. (Sharp beginners might also benefit).
The objectives of this session are two fold:
First is to impress on you a fundamental knowledge of the Drupal theme system and an understanding of how it works.
Second is to empower you with a knowledge of how you might start to use the power and flexibility of the Drupal theme system to easily customize the look and feel of a Drupal website.
Drupal is an open source content management system (CMS) written in PHP. It is a publishing platform and used to create blog and enterprise applications. Drupal gives a strong base for organizing, structuring, creating, developing and managing web presence. Drupal has standard structure which makes it easier to access basic functionalities and source code to anyone who wants to work on it. It comes with multiple user features which allow creating multiple users and each can be assigned different roles and permission. Drupal has thousands of add-on modules and designs which enable to you to create a unique website that you desire. Its PHP based platform allows the safe and secure management of websites.
Drupal is an open source content management system (CMS) written in PHP. It is a publishing platform and used to create blog and enterprise applications. Drupal gives a strong base for organizing, structuring, creating, developing and managing web presence. Drupal has standard structure which makes it easier to access basic functionalities and source code to anyone who wants to work on it. It comes with multiple user features which allow creating multiple users and each can be assigned different roles and permission. Drupal has thousands of add-on modules and designs which enable to you to create a unique website that you desire. Its PHP based platform allows the safe and secure management of websites.
Walks through the top 8 improvements coming to Drupal 8, including videos and code samples to demonstrate "before vs. after."
Given to the @DrupalNS meet up in Bedford, Nova Scotia on July 28, 2014.
Similar to Building a Custom Theme in Drupal 8 (20)
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
ER(Entity Relationship) Diagram for online shopping - TAEHimani415946
https://bit.ly/3KACoyV
The ER diagram for the project is the foundation for the building of the database of the project. The properties, datatypes, and attributes are defined by the ER diagram.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
4. LET'S START FROM THE VERY
BEGINNING
WHAT IS THEMING?
Themes allow you to change the look and
feel of your Drupal site.
- Someone who's good at being very general
5. WHY WOULD YOU USE DRUPAL 8
NOW?!
And when is it coming out?
7. WHAT'S NEW IN DRUPAL 8?
Twig, a template engine by SensioLabs
Classy, a new base theme
template.phpbecomes [theme-name].theme. (Dear Drupal
gods, can we please have theme.php?)
8. WHAT'S NEW IN DRUPAL 8?
Responsive design elements are included by default
Breakpoints can be set and used across modules and themes
9. WHAT'S NEW IN DRUPAL 8?
LOOK AT ALL THE PRETTY THINGS
WE GET TO USE NOW!!
HTML5
CSS3
Modern jQuery libraries
SMACSS
BEM
Standardized breakpoints
10. WHAT'S NEW IN DRUPAL 8?
Support for IE8 and below is dropped meaning the use of
jQuery 2.0, HTML5, and CSS3 (including pseudo selectors) are
now supported
CSS:
Far fewer IDs are used
CSS file structure now uses
Default class names follow the format
CSS and JS files are attached to pages differently
SMACSS
BEM
11. WHAT'S NEW IN DRUPAL 8?
For a more comprehensive list, visit Drupal's change log.
12. WHY ALL THE CHANGES?
ACCESSIBILITY TO NON-DRUPALERS
Fewer Drupal-specific conventions and more popular, well-
documented frameworks (such as Twig), meaning non-
Drupalers can jump in much more quickly.
D8 themers don’t need to know PHP to whip up a theme.*
* I mean kinda ¯_(ツ)_/¯
13. WHY ALL THE CHANGES?
SECURITY
Text is automatically escaped in Twig, meaning a lower
chance of XSS attacks.
Template files are more secure since they no longer contain
PHP code.
<?php db_query('DROP TABLE {users}'); ?>
Scary example courtesy of sqndr at d8.sqndr.com.
14. WHY ALL THE CHANGES?
CURRENT FRAMEWORKS AND TOOLS
Separation of logic from appearance = more modular
(reusable) code
More semantic CSS class names = leaner CSS and a more
readable DOM
A general trend towards more extendable, modular, well-
organized, better-performing code
15. ANY DISADVANTAGES?
1. Many contributed themes and modules don't having their 8.x
branches ready.
A fun note on the 8.x branch of a popular contrib theme:
This is a development branch. Please note
that this branch is probably severely broken.
It is strongly recommended to wait before
using this branch or even creating issues
regarding it.
16. ANY DISADVANTAGES?
2. Serious lack of documentation online
Of the documentation that DOES exist, much of it is:
Outdated, and marked as such.
Outdated, and NOT marked as such.
18. WHAT AM I TOTALLY GLOSSING
OVER?
template.php *.theme
Grid framework and CSS architecture
Probably a lot of other things
19. CREATE A THEME FOLDER
Drupal core now resides in its own folder. Contributed and
custom modules and themes are in the modulesand themes
folders, respectively.
Don't forget to create a customfolder for your custom
theme!
21. DOT INFO DOT WHAT?
YAML is a data serialization language.
Key-value pairs.
Check out on YAML syntax
before getting started.
And mind your whitespace!
Symfony's excellent writeup
22. CREATE A .INFO.YML FILE
# mappy.info.yml
name: Mappy
type: theme
description: 'D8 Theme for a basic leaflet site.'
core: 8.x
regions:
navbar: 'Top Navigation Bar'
content: Content # required!
sidebar: 'Sidebar'
footer: 'Footer'
This looks familiar, right?
23. CLASSY, A NEW BASE THEME
# mappy.info.yml
base theme: classy
In D8, default classes are stripped from Drupal core and
moved into the base theme Classy.
To avoid these default classes, simply don't base your theme
on Classy.
But we want them because BEM is awesome! Check out this
awesome introduction.
25. CREATE A .LIBRARIES.YML FILE
# mappy.libraries.yml
global-styling:
css:
theme:
css/styles.css: {}
leaflet:
css:
theme:
css/leaflet.css: {}
js:
js/leaflet.js: {}
js/map.js: {}
dependencies:
- core/jquery
Note that jQuery is listed as a dependency of the Leaflet library.
Since jQuery is no longer loaded automatically on every page, it
must be explicitly required.
26. ADDING ASSETS TO YOUR SITE
# mappy.info.yml
libraries:
- mappy/global-styling
- mappy/leaflet
Since this is a small site and we need our libraries on every
page, we're adding them globally.
Visit for more information on methods for adding
assets.
drupal.org
27. CREATE A .BREAKPOINTS.YML
FILE
# mappy.breakpoints.yml
mappy.mobile:
label: mobile
mediaQuery: '(min-width: 0px)'
weight: 2
multipliers:
- 1x
mappy.narrow:
label: narrow
mediaQuery: 'all and (min-width: 560px) and (max-width: 850px)'
weight: 1
multipliers:
- 1x
mappy.wide:
label: wide
mediaQuery: 'all and (min-width: 851px)'
weight: 0
multipliers:
Ours is stolen adapted from the Bartik theme.
28. BREAKPOINTS
Once you add a .breakpoints.ymlfile (and uninstall and
reinstall your theme), the breakpoints you've set will be
exposed in the admin UI.
These breakpoints can be used across various modules.
30. TEMPLATE FILES
In our theme's current state, we're using Classy's default
template files.
If we want to override them, it's time to learn some Twig.
If one more person makes a "Gettin' Twiggy with it" joke...
31. INTRO TO TWIG
is a template engine with syntax similar to Django, Jinja,
and Liquid.
It simplifies template creation with clean syntax and useful
built-in filters, functions, and tags.
In a Drupal template file (now with the extention .html.twig),
anything between curly braces is Twig.
Twig
32. TWIG DELIMITERS
{{ These }}are for printing content, either explicitly or via
functions
{% These %}are for executing statements
{# These #}are for comments
33. PRINTING VARIABLES AND
REGIONS
In D7 we render content like so:
<?php print render($page['sidebar']); ?>
Printing variables in D8 is as easy as including them inside
double curly braces:
{# In page--front.html.twig #}
{# Print the sidebar region. #}
{{ page.sidebar }}
34. PRINTING VARIABLES WITH
SPECIAL CHARACTERS
If a variable name contains special characters, use Twig's
subscript syntax (which will look familiar to seasoned
Drupalers).
{# In page--front.html.twig #}
{# Print the page type. #}
{{ page['#type'] }}
This will come in handy more during debugging.
35. FILTERS
Twig comes with many that variables are passed
to via the pipe character.
built-in filters
Here's the date filter:
{# Format the post date. #}
{{ post.published|date("Y-m-d") }}
36. DRUPAL-SPECIFIC FILTERS
Check them out here.
Remember our old friend t()?
{# Run an ARIA label through t() #}
<nav class="tabs" role="navigation" aria-label="{{ 'Tabs'|t }}">
37. FUNCTIONS
Twig also comes with various that can be used in
double curly braces.
functions
Here's the cycle function doing some very important work:
{% set fruits = ['apple', 'orange', 'banana'] %}
{% for i in 0..10 %}
{{ cycle(fruits, i) }}
{% endfor %}
38. TAGS
Used for control flow and other fun things.
{# From Bartik's page.html.twig #}
{# If there are tabs, output them. #}
{% if tabs %}
<nav class="tabs" role="navigation" aria-label="{{ 'Tabs'|t }}">
{{ tabs }}
</nav>
{% endif %}
In template files, we’ll use the ifstatement quite often.
40. TWIG DEBUGGING
To enable debug mode and turn off caching, we need to do 3
things:
1. Turn on Twig’s debug mode
2. Turn on Twig auto reload, meaning that Twig templates are
automatically recompiled when the source code is changed
3. Disable Drupal’s render cache
You do NOT need turn off Twig caching - turning on auto reload
is enough.
41. USE SETTINGS.LOCAL.PHP
1. Copy sites/example.settings.local.phpto
sites/defaultand rename to settings.local.php. Fill out
your local database settings.
2. Uncomment the following at the bottom of
sites/default/settings.php:
if (file_exists(__DIR__ . '/settings.local.php')) {
include __DIR__ . '/settings.local.php';
}
42. TURN ON DEBUG MODE AND
AUTO RELOAD
Check out settings.local.php
// In settings.local.php
/**
* Enable local development services.
*/
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
This tells us to head over to development.services.yml.
// In sites/development.services.yml
parameters:
twig.config:
debug: true
auto-reload: true
43. TURN OFF DRUPAL'S RENDER
CACHE
Just kidding, you already did.
// In settings.local.php
/**
* Disable the render cache (this includes the page cache).
*
* This setting disables the render cache by using the Null cache back-end
* defined by the development.services.yml file above.
*
* Do not use this setting until after the site is installed.
*/
$settings['cache']['bins']['render'] = 'cache.backend.null';
44. DEBUG AWAY
Now you can:
View HTML comments in your browser’s code inspector with
lots of helpful info:
Which theme hook is being implemented
Theme hook suggestions (i.e. how to override the current
theme hook)
Which template file is being output.
Make changes to your source code and simply refresh the
page to see your changes rather than constantly rebuilding
the cache.
45. DUMP( )
With Twig debugging turned on, we can use the Twig function
dump().
{# In a template file #}
{# Print out all variables on the page. #}
{{ dump() }}
{# Print the page's base path. #}
{{ dump(base_path) }}
46. EVEN BETTER: KINT( )
Install the Devel and Devel Kint modules to use kint()in the
same way, but with a pretty, expandable array instead.
{# In a template file #}
{# Print out all variables on the page. #}
{{ kint() }}
47. RESOURCES AND FURTHER
READING
A brilliant blog post about D8 theming (Savas)
D8 theming guide (Sander)
YAML formatting (Symfony)
Intro to BEM (CSS Wizardry)
Adding assets to pages (drupal.org)
Twig documentation (Sensiolabs)
Drupal-specific Twig filters (drupal.org)
Twig coding standards (drupal.org)
Twig debugging and devel (drupalize.me)