/sdds

Digital design system in Scania includes core setup, components, themes, demos

Primary LanguageJavaScriptMIT LicenseMIT

GitHub release (latest by date) GitHub last commit

Scania Digital Design System

https://digitaldesign.scania.com/

The design system supports the design and development of digital solutions at Scania. The purpose is to secure a coherent and premium brand and user experience across all of Scania's digital touchpoints.

Browser Support

  • Chrome
  • Firefox
  • Safari
  • Edge (chromium)

Getting started

You can use SDDS CSS custom properties to use the design tokens for colour, typography, spacing, and logotype. To have all CSS custom properties available, you need to install both compoonents and scania-theme. And then you need to include sdds-theme component in your application. Check instruction below on how to install components and scania-theme.

You can also install a standalone package for different part. These are available packages:

Package Name Description
@scania/components Scania reusable web components built with StencilJS
@scania/theme-light Scania default theming
@scania/typography Scania official typography styling package
@scania/colour Scania official colour scale package
@scania/grid Scania official grid package
@scania/icons Scania official pictograms & icons package

You can find everything in NPM

Framework demos

Clone this repo to run framework demo applications locally. Demos are available Angular, React, Vue and HTML. Each application needs to be installed individually before use. Installing creates a node_modules directory with modules needed to run the application as they're listed in the package.json-file of each app directory.

Note 1: If you install and start from root level, you will access a local copy of SDDS UI library in Storybook.

Note 2: npm start not applicable for HTML demo

> git clone https://github.com/scania-digital-design-system/sdds.git
> cd {app-directory}
> npm i
> npm start

Run local environment

  • You can run everything locally with storybook to view the UI elements.
  • Start everything from root folder
  • Everything we develop is published on public npmjs.com
  • We are developing in both windows and macOS
  • Components and Theme package will start watchers for the whole setup, and on top of that storybook will start
  • Core packages don't have watchers (right now), so you have to build
  • First time you run this project npm prepare command will install husky but also npm run build. To make sure everything is built for the first time
  • Windows have some hiccups, right now. If you are using imports you need to save the main file where it is being imported
  • If you add a new file, make sure the rights are correct for both mac and windows
  • Find all commands in the root package.json or in each of our packages
  • If any problem occurs, read the debug below or report them in our issue tab
Commands to start:
> npm i
> npm start
Debugging local environment
  • Windows and MacOS behave differently
  • If npm throws error either in npm install or npm build make sure network settings is correct**
  • Use npm run build first before npm start
  • Try each commands on its own if a problem occurs
  • Make sure you have the correct proxy settings **
  • Debug in the correct package if a problem occurs
  • You can run each package separately
  • Make sure the core packages are built
  • Run node v12 or later
  • if changes doesn't get display, save the main files if there are files related with imports

** Proxy/network/vpn setting might interfere with the download process so make sure you have everything correctly set on your computer or try doing the commands outside office/vpn network

Migration

You can find out how to migrate by reading our MIGRATION.md file in this repository.

If you are still using older component while migrate and still need the old documentation you can visit these links

Contributing

This repository is a place for all Front End Developers to join the UI Development at Scania. It is us together that develop and maintain this repository as well as the documentation. Check out our Contributing Guide and help us improving the design system technical solution!