If you’ve been following our Vanilla framework series of blog posts you’ll be aware of why we needed this new framework and have a little insight into how we’ve set about using it. With this post we’ll be delving a little further into how we include and customise the framework for our Ubuntu family of websites.
Let’s get started with how Vanilla fits into a site’s structure with an introduction to the concept of Vanilla theming.
or, if you don’t have a package.json file go ahead and run the following:
Once you have Vanilla installed, your project will have a new folder called ‘node_modules’. An example of your code structure could be:
Some of our larger sites, such as www.ubuntu.com, are served using Django and we like to keep the folder structure as close to a standard setup as possible, therefore, all our static files are kept in a static folder.
To include Vanilla and all its essence (see what I did there?) you need to add the following to your site’s main scss file:
When you compile styles.scss it will include the framework into the compiled CSS. But what if I want to change the default colours? I hear you ask. Well, if you have a look in the
vanilla-framework/scss/ folder you’ll see a file entitled
_global-settings.scss, in this file you’ll discover the default theme settings such as brand colour and the maximum width of your site, this needs to be imported above the framework. However, if you are likely to use these styles on more than one site, you might want to consider building your own theme.
To take www.ubuntu.com as an example, where we are using ubuntu-vanilla-theme, the file structure looks like this:
Both the theme and framework are in nested folders called
node_modules as Vanilla framework is a dependence of the theme. You’ll see in the
ubuntu-vanilla-theme/scss folder there’s a file called _theme.scss, a theme specific
_global-settings.scss file and a modules folder where any overrides of the
vanilla-framework will live.
Here is an example of what _theme.scss could look like:
There’s a fair bit going on here but basically what we’re doing is pulling in our theme specific
_global-settings.scss file with overrides and any new variables we may want to include, above the framework imports so any overrides we add will take effect. Now you can add new modules by creating files in
/modules/, then add an
@include in your
You’ll also see that there is a
build.scss file, this imports the theme file and includes the ubuntu-vanilla-theme mixin. We use Gulp as our build system to automate common tasks in the development of our websites. Coming up next in our Vanilla flavoured posts, Karl will be showing you how to build a theme.
Interested in running Ubuntu Desktop in your organisation?
Over the past year, we’ve been working hard to bring you the next release of Vanilla framework: version 2.0, our most stable release to date. Since our last significant release, v1.8.0 back in July last year, we’ve been working hard to…
It was another busy iteration for the web and design team, trying to get a lot of work wrapped up before we head off to Lyon, France for our 19.10 Roadmap cycle kick-off.
Hands up if you or someone in your team work remotely. I am sure there are many of you out there. One of the biggest growing trends, since I started working in the technology industry 15 years ago, is how common and accessible working from…