This is the repository in which we develop each element of the GUI. Each module is tested in isolation and put into an JSON object that keeps track of all versions.
We try to keep our rules simple.
We call each module GUI Ingredient
and a compiled mix GUI Blend
. The GUI Blender
is provided to help you pick your mix.
- The code is modular and built so each
Ingredient
can be blended together at will. - The browser/feature support philosopy is:
- Support new features by default.
- Fallback to something useable.
- Don't fake features that are not supported.
- Make as little assumption as possible about the enviroment this might be used in.
- This is primarly a CSS framework and Javascript should only be used to toggle classes.
- A no-js fallback must be given.
- Collaboration has to abide to the Styleguide.
Ingredient
get a new version when HTML changes. We try to keep HTML changes to the absolute minimum. Older versions will always be avaliable but might not be supported anymore.
To add a new version to an Ingredient
, just duplicate the version folder and register your new version in the module.json
. Grunt does the rest.
(Do run grunt
in the root folder though to generate a new version of the GUI.json
and index.html
)
To run this repo first download and install all dependencies in the root.
cd [yourfolder]
npm install
To see an overview of all Ingredient
you can run grunt
in the root or visit the GH-Pages hosted by GitHub.
To work on a module and watch its files you can run grunt
in each Ingredient
directory. There is no need for a dependency install in those folders provided
you have grunt installed globally.
Each
Ingredient
version has atests
folder that contains various html files to be tested.
In the root directory run
grunt add
and follow the prompt. Grunt will watch the namespace for you and alter you about potential conflicts.
A new folder with the the name you chose will be generated with a base template for you to start with. Make sure you edit the module.json
and delete files
you may not need. The less files come with a basic setup that account for multibranding and the mixin setup. Make sure you don;t leave the namespacing in less
to not contaminate other modules.
We are trying to make as little changes to the overall build as possible.
- v1.0.0 - Initial build system setup
Copyright (c) 2015 Westpac. Licensed under the GNU GPLv2.