Skip to content
Drupal 8 theme: vanilla
HTML CSS JavaScript
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Vanilla theme

A drupal8 theme, build as a documentation project for new frontenders coming into Drupal.

All issues & discussions will be done at

Im sick n tired of patches, after 3+ years of hammering on core, and PR’s is easier to work with.

yup there will not be any d.o commit counts or anything else if you choose to help out, but oooh well ;)


the name vanilla is chosen as the theme isn’t about being pretty, but to provide a starting ground so you can find anything


Im personally a fan of Vanilla CSS, but no worries grunt-gulp-sass-libsass-postcss-ruby-whatever will document an easy way to add in you pre/post process css love.

standard theme files:

  • logo.svg default logo file added in with the branding block.
  • vanilla.theme
  • vanilla.breakpoints.yml

Folder structure

Template folder structure

templates can be where ever you want em


Drupal have 2 base themes that you should use:

base theme: classy

This theme pack all the default classes & markup for Drupal8, we cleaned a lot out of the original Drupal7 markup. classys templates is located in code/themes/classy

base theme: stable

Stable is Drupal8 base minimum templates, where we tried to remove almost anything out of it, so only the bare minimum classes. stables templates is located in code/themes/stable

base theme: false

If you a brave cowboy, you can ignore the base theme, it will actually still use drp “false” still have templates ;) they are located in core/modules/[modulename]/templates/ warning: core markup will change over time, as we continue to cleanup & make it better.



  1. layout
  2. node - comments - user
  3. fields, do standdard field for each type
  4. views, clean it up to real standards
  5. standard elements, header, menu, login forms
  6. forum
  7. book

Debugging templates n stuff

get all the data out by keys change the loop index to see whats there:

{% for key, value in _context  %}
<li>{{ key }} </li>
 {% if loop.index == 11 %}}
    <pre>{{ dump( value ) }}</pre>
{% endif %}
{% endfor %}

{{ kint( foo )}} look at the available methods

{{ foo.something() }} will return some love

You can’t perform that action at this time.