Common design system for Klimadatastyrelsen with CSS, icons, UI components, and logo images.
Documentation is available at sdfidk.github.io/designsystem/
You can also build and read the docs locally.
- Clone this repo.
- Navigate to folder
designsystem
ornode_modules/@dataforsyningen/designsystem
- Open file
index.html
in a browser.
Assuming you have Node.js and NPM installed:
First, install dependencies:
npm install
Then, run this script to build the project:
npm run build
New files will appear in the assets
folder.
You can load the styles directly from CDN.
<head>
...
<link rel="stylesheet" href="https://cdn.dataforsyningen.dk/assets/designsystem/v7.0/designsystem.css">
...
<head>
Or you can find the designsystem stylesheet in assets/designsystem.css. Copy it to your project and include the stylesheet by add a reference in the head
section of your HTML pages.
<head>
...
<link rel="stylesheet" href="YOUR_PATH/designsystem.css">
...
<head>
You can find all designsystem icons in assets/icons. You can copy and use them individually or use the entire icon set as a single SVG file: assets/icons.svg
When using the single SVG, you just add an svg
element to your markup and display your icon of choice with use
.
Here is an example where we display the notification
icon:
<svg><use href="YOUR_PATH/icons.svg#notification" /></svg>
Icons are also available via CDN. Here is an example with <use>
<svg><use href="https://cdn.dataforsyningen.dk/assets/designsystem/v7.0/icons.svg#notification" /></svg>
You can find designsystem Javascript in assets/designsystem.js. Copy it to your project and include the script by adding a reference in the body
section of your HTML pages.
Here is an example where we import all of designsystem Javascript:
<body>
...
<script type="module" src="YOUR_PATH/designsystem.js"></script>
<body>
Here is an example where we import the Tabs
component from designsystem Javascript:
<body>
...
<script type="module">
import { Tabs } from YOUR_PATH/designsystem.js
</script>
<body>
npm i @dataforsyningen/designsystem --save
Assuming you installed @dataforsyningen/designsystem with NPM, you can import various parts of designsystem into your esbuild-project.
Include and build stylesheets in your esbuild script like this:
require('esbuild').buildSync({
entryPoints: ['@dataforsyningen/designsystem/designsystem.css'],
bundle: true,
outfile: 'mystyles.css',
})
Esbuild needs to support loading SVG files. You can setup the file
loader in your esbuild script like this:
require('esbuild').buildSync({
...
loader: { '.svg': 'file' },
...
})
Then you can import a reference to the svg sprites file and use them in your .js files.
import svgIcon from '@dataforsyningen/designsystem/icons.svg'
// Using the **notification** icon
const templateString = `
<svg><use href="${ svgIcon }#notification" /></svg>
`
Import designsystem Javascript like you would import any other script. Example with ShowToast:
import { showToast } from '@dataforsyningen/designsystem'
showToast('Hello! I am a toast.')