Custom Drupal theme met het Vanilla CSS framework

vrijdag 11 juni 2021 - 264 woorden, 2 min read

Al enkele jaren maak ik veelvuldig gebruik van het Bootstrap framework als frontend bibliotheek voor typografie, formulier, knoppen en andere interface elememten. Een paar weken terug maakte ik kennis met het Vanilla CSS framework van het Canonical web team. Dat framework sprak me positief aan, omdat het er goed uitzag en technisch summier is opgezet (CSS only).

Net als Bootstrap bevat het Vanilla CSS framework veel verschillende interface elementen. Vanilla is een CSS only framework, dat wil zeggen dat er geen Javascript bij zit. In Vanilla is wel alles voorbereid om interactieve elementen te maken, zoals een dropdown menu. Je zult dan wel zelf de Javascript hiervoor moeten schrijven.

Nu ik actief in de weer ben met Vanilla, wordt ik uitgedaagd om actiever aan mijn Javascript skills te werken. Daarnaast probeer ik nu altijd eerst een oplossing in CSS uit te werken, bijvoorbeeld als je iets wilt animeren. Vanilla CSS gebruik ik nu in twee type projecten: Vue.js en Drupal.

Drupal

Voor Drupal heb ik hiervoor een custom thema voor opgezet. De benodigdheden voor Vanilla zijn eenvoudig te gebruiken in het thema dankzij npm.

Om Vanilla toe te voegen, voer je dit commando uit in je theme map

npm install vanilla-framework

Alle bestanden worden opgeslagen in de `node_modules` map. Al deze bestanden kun je includen door de volgende regels toe te voegen bovenaan je root SASS bestand

@import 'node_modules/vanilla-framework/scss/vanilla';
@include vanilla;

Meer informatie en andere installatie methods: https://vanillaframework.io/docs

Gulp

Voor het compileren van SASS naar CSS maak ik gebruik van Gulp. Zie deze instructies in de Vanilla documentatie. Mijn gulpfile.js in de theme map ziet er als volgt uit:

'use strict';

var gulp = require('gulp'),
  sass = require('gulp-sass');

gulp.task('build-css', function () {
  return gulp.src('./scss/*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(gulp.dest('css'));
});

gulp.task('watch', function () {
  gulp.watch('./scss/*.scss', gulp.series('build-css'));
});

Hierbij een screenshot eenvoudige website die ik heb opgezet met Drupal in combinatie met Vanilla.

RTC de Smid


Sebastian Hagens @Sebastix
I work as creative webdeveloper & tech consultant and care about digital freedoms. Follow me:
or visit my contact page