SGDS is a frontend framework that aims to provide a beautiful common visual language and user experience for visitors of Singapore Government websites. It provides designers and developers with customisable components to help them easily implement the Singapore Government's Digital Service Standards.
<head>
...
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/sgds-govtech@{{site.version}}/css/sgds.css"
/>
...
</head>
Certain components of SGDS makes use of sgds.js
, with jQuery as an external dependency. If you only need the visual parts of SGDS, or if you are using frontend frameworks like React, you do not need to import this.
<body>
...
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sgds-govtech@{{site.version}}/js/sgds.js"></script>
...
</body>
- Mandatory
- Main Nav
- Side Nav
- General
- Accordions
- Dropdowns
- Tabs
For more information, please refer to the documentation.
$ npm i sgds-govtech
import "sgds-govtech/css/sgds.css";
import "sgds-govtech/js/sgds"; // Do not use with other web frameworks*
Usage with frameworks such as React, Vue or Angular is discouraged since they manipulate the DOM in their own environments. Framework-specific implementations are in early development and can be found at sgds-govtech-react and sgds-govtech-vue.
See docs.
- Ruby & Bundler. Install Jekyll and dependencies through
bundle install
- Nodejs & NPM. Install webpack and dependencies through
npm install
To spin up a live-reloading Jekyll + Webpack development server it is recommended that you use two separate terminal sessions so that you can kill any of them easily:
# Terminal 1
$ npm run dev:static
# Terminal 2
$ npm run dev:jekyll # Access from localhost:4000
Test out the latest development build:
<!-- CSS in <head> -->
<link rel="stylesheet" href="https://dev.designsystem.gov.sg/css/sgds.css"/>
<!-- JS in <body> -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://dev.designsystem.gov.sg/js/sgds.js"></script>
- Use dev branch
- Change all references in documentation from previous version to new version, e.g. inside the
_config.yml
andreadme.md
files. - Update and tag new version using npm.
npm version (major|minor|patch)
- Push to this repo's dev branch, including tags
git push origin dev
git push origin v[new version]
- PR to master
- Switch to latest master branch
git checkout master
git pull
npm publish
See Changelog