You are looking at an old version (<2.14.0) of the design system. There is a new version 3 here.
NSW Design system is a collection of reusable UI components used on the NSW government websites.
See live examples of NSW Digital Design system components and guidance on how to use them on you website at NSW Design System.
How you use the NSW Design System depends on your team's capabilities. We recommend using npm
but also provided in a CDN, and a downloadable starter kit which includes all the compiled assets.
- Installing with NPM
- Import styles
- Adding the font and icons
- Importing javascript into your project
- Using JSDelivr CDN
- Download starter kit
-
Install
Node/npm
.- More information can be found via the nodejs Installation guides
-
Generate a
package.json
file using thenpm init
command in the terminal. You will be prompted to enter several pieces of information, like the name of your application, version, description etc. -
Add
nsw-design-system
to your project’spackage.json
:npm install --save nsw-design-system@2
The NSW Design System is now installed as a dependancy of your project, check out how to import styles and javascript in to your project build.
The NSW Design System styles need to be added to the main Sass file in your project.
Use the below snippet to import the NSW Design System (ideally placed before any other imports or sass):
@import 'node_modules/nsw-design-system/src/main';
The core library includes the design system's base theme, typography, mixins and helper functions. You can import this and take advantage of our variables and helpers.
In your own main Sass file, you can import NSW Design System’s core library.
// Core libraries
@import 'node_modules/nsw-design-system/src/global/scss/settings/settings';
@import 'node_modules/nsw-design-system/src/global/scss/tools/all';
@import 'node_modules/nsw-design-system/src/global/scss/helpers/all';
@import 'node_modules/nsw-design-system/src/global/scss/style/all';
@import 'node_modules/nsw-design-system/src/styles/section/section';
@import 'node_modules/nsw-design-system/src/styles/spacing/spacing';
@import 'node_modules/nsw-design-system/src/styles/typography/typography';
You can choose to import components as you need it. In the same file, import the Sass files of each component
// Components
@import 'node_modules/nsw-design-system/src/components/accordion/accordion';
@import 'node_modules/nsw-design-system/src/components/card/card';
@import 'node_modules/nsw-design-system/src/components/notification/notification';
With this setup you can also start theming with a few sets of variable changes.
In your main html document add this line of code inside the <head>
tag. Make sure that it's placed before the NSW Design System styles import.
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,600&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
Another way is to import it in css:
@import url('https://fonts.googleapis.com/css?family=Montserrat:400,600&display=swap');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');
Some NSW Design System components require javascript to provide advanced functionality. To ensure the page is ready for javascript to run, include the follow scripts tags at the end of the html document.
<script src="path/to/main.js"></script>
<script>window.NSW.initSite()</script>
</body>
</html>
Depending on your project set up, you might wish to copy the file into your project from node_modules
or add the reference to your build workflow.
The bundled css and js files are also hosted in JSDelivr.
You can add the files to your main html document
<html>
<head>
...
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/nsw-design-system@2/dist/css/main.css">
</head>
<body>
...
<script src="https://cdn.jsdelivr.net/npm/nsw-design-system@2/dist/js/main.min.js"></script>
<script>window.NSW.initSite()</script>
</body>
</html>
You can download the compiled design system assets (HTML, CSS, JavaScript) in the HTMLStarterkit zip file from the latest release.
Get access to the latest Design System UI patterns and styles via the Design System Figma UI kit.
To be notified when there’s a new release, you can either join the NSW Design System community or watch the NSW Design System Github