The Wātea theme can be installed on top of the Starter theme (see cascading themes) to provide a more visually appealing start to a CWP website.
Installation
Install this theme module with Composer:
composer require cwp/watea-theme
This will also install the cwp/starter-theme
dependency, which is the foundation for this subtheme.
The installation of cwp/agency-extensions
is suggested as it provides additional functionality to the CMS for agency-style SilverStripe websites.
Getting started
This theme is designed to augment the base functionality and framework provided by the CWP Starter theme. As such, all of the documentation for the CWP Starter theme is relevant to this theme as well. We suggest you familiarise yourself with this documentation.
As a general rule, the CWP Team have endeavoured to constrain changes for this theme to CSS and Javascript wherever possible, as opposed to modifying and duplicating the templates. As a cascading theme, all templates in this theme will be applied over the top (with priority) of the CWP Starter theme.
If you need to modify template markup from the SilverStripe framework, other modules or even the Starter theme, you can copy them into the “starter_watea” subtheme directory and modify them there.
Development
Setup
For development you will need Node.js and npm installed. Please see the Customising the starter themearticle for more information.
Next, you need to install the required npm packages. You will need to do this both in the CWP Starter theme and in the “starter_watea” subtheme, as this subtheme imports components from the “starter” theme during Sass building. Ensure you have changed each theme’s directory first:
cd themes/starter
npm install
cd ../starter_watea
npm install
Backend changes
This theme and the base-theme also come with the cwp/agency-extensions
module which helps us to clean up some parts of the CMS, rename some settings fields and provide a little bit of extra functionality to help the Wātea theme work.
If you need to extend or modify these changes at all, you can control the theme’s extensions with YAML configuration, or create your own extensions in your mysite
code.
Compiling assets
Similarly to the CWP Starter theme, you can compile assets using npm commands:
npm run build # Produces unminified (development) distributable files in dist/
npm run package # Produces minified (production) distributable files in dist/
Or to “watch” for changes in real time as you develop (faster):
npm run watch # Compiles as "build", then watches for changes and recompiles as necessary
For CSS, this theme contains a fully compiled set of styles for both themes. You should only include this theme’s CSS (not the CWP Starter theme).
To be able to “npm run build” in the Wātea theme, you will also be required to have run “npm install” in the CWP Starter theme.
For example:
# File: templates/Page.ss - in the <head> {#file-templates-page-ss-in-the-head-2}
<% require themedCss('dist/css/main.css') %>
# File: templates/Page.ss - near the bottom of the <body> {#file-templates-page-ss-near-the-bottom-of-the-body-2}
<% require javascript('themes/starter/dist/js/main.js') %>
<% require javascript('themes/watea/dist/js/main.js') %>
Linting
Every now and then (e.g. before you commit) you should run a quick linter check over your Javascript and SASS source code:
npm run lint-js
npm run lint-sass
For information on the rules and configuration around these linters, please see the CWP Starter theme documentation regarding “working with standards”.