Code Monkey home page Code Monkey logo

dso-toolkit's Introduction

This project is using Percy.io for visual regression testing. npm version Build status master branch

DSO Toolkit - Design System van het Digitaal Stelsel Omgevingswet (DSO)

De DSO Toolkit bestaat uit documentatie en een stijlgids. Daarnaast worden er twee implementaties geleverd: CSS en Web Components. De Web Components krijgen voor Angular en React wrappers, zie issue #915.

De deliverables van de DSO Toolkit:

  • Handleiding: Een handleiding voor elke versie op https://www.dso-toolkit.nl/
  • CDN: Een CDN op https://cdn.dso-toolkit.nl/, voor documentatie zie verderop in deze README
  • NPM package @dso-toolkit/sources: Alle bronbestanden van het DSO Design System.
  • NPM package dso-toolkit: De handleiding en complete CSS implementatie van de DSO stijlset.

We zijn bezig met het verhuizen van de styling van dso-toolkit naar @dso-toolkit/sources. Zodra die verhuizing is afgerond zal dso-toolkit worden deprecated en moeten implementaties overstappen naar @dso-toolkit/core (eventueel met Framework bindings), @dso-toolkit/css of @dso-toolkit/sources. De componenten zoals die worden aangeboden op https://www.dso-toolkit.nl/ blijven functioneren. Voor meer informatie zie #827

Getting started

Stable releases can be found on the GitHub Releases page.

NPM registry

npm install dso-toolkit --save-dev
  1. Add node_modules/dso-toolkit/libs as include paths to your SASS compiler/wrapper (See #105 for more information)
  2. Bundle /node_modules/dso-toolkit/src/dso.scss in your build process.

The Web Components are not yet available as NPM package, see #827 and #885. In the meantime you could use the <script>-tag mentioned below.

CDN

The toolkit and component library are distributed to dso-toolkit.nl. Use the table below to resolve the branch/channel to the base url:

branch channel url
master stable https://cdn.dso-toolkit.nl/master/
tags only releases https://cdn.dso-toolkit.nl/VERSION/

The same goes for the component library:

branch channel url
master stable https://www.dso-toolkit.nl/master/
tags only releases https://www.dso-toolkit.nl/VERSION/
<link rel="stylesheet" href="https://cdn.dso-toolkit.nl/[master|VERSION]/styles/dso.css" />

For Web Components:

<script type="module" src="https://cdn.dso-toolkit.nl/[master|VERSION]/core/dso-toolkit.esm.js"></script>
<script nomodule src="https://cdn.dso-toolkit.nl/[master|VERSION]/core/dso-toolkit.js"></script>

The referenced scripts are very small: Only the actually used Web Components are lazy loaded. For more information: https://stenciljs.com/docs/distribution

Develop or mockups

To work on the DSO Toolkit using components and variants or create mockups of pages, forms or components you need Node 14 and Yarn. See CONTRIBUTING.md on how to contribute.

Either install Yarn with

npm install --global yarn

or use Yarn with npx:

npx yarn <<<my commands here>>>
git clone [email protected]:dso-toolkit/dso-toolkit.git
cd dso-toolkit
yarn install

Environments

Depending on the work being done, development can be done in several environments:

fractal

The classic environment with Fractal and Stencil. Because this environment needs two packages (@dso-toolkit/core and dso-toolkit) running, this command only be started from the root of the repository, :

yarn fractal

Fractal is started at http://localhost:43000/, Stencil is running on http://localhost:53333. See the Fractal guide for more information on Fractal.

development

This environment is used to develop new components in Storybook. Storybook is built around stories and since this project has multiple Storybooks (one for each implementation), the stories are put in a separate package @dso-toolkit/sources (/packages/sources). All the implementations have a devDependency on @dso-toolkit/sources.

The easiest way to start this environment is with one of the following commands:

yarn start:core
yarn start:react
yarn start:css
yarn start:all

This will start @dso-toolkit/sources in watch mode and run the corresponding Storybook(s). Since these commands contain a colon (:), these commands can be run from anywhere in the project.

The following processes are started:

  • core: @dso-toolkit/sources in watch mode, Stencil in development mode for Web Components, and Storybook
  • react: @dso-toolkit/sources in watch mode, Stencil in watch mode for production, and Storybook for React components
  • css: @dso-toolkit/sources in watch mode, Gulp in watch mode for the SVG spritesheet, dart-sass in watch mode for CSS compilation, and Storybook

Alternatively, you can start a specific implementation with:

yarn workspace @dso-toolkit/core start
yarn workspace @dso-toolkit/react start
yarn workspace @dso-toolkit/css start

but then you need to make sure that @dso-toolkit/sources is running in watch mode or already built:

yarn workspace @dso-toolkit/sources start
yarn workspace @dso-toolkit/sources build

In case of starting a framework binding package you also need to make sure that @dso-toolkit/core is built:

yarn workspace @dso-toolkit/core build

cypress

To write tests the following processes are started:

  • Stencil, in prod mode
  • Storybook, in cypress mode
  • Cypress GUI
yarn workspace @dso-toolkit/core cypress

This will start Stencil on http://localhost:53333, Storybook on http://localhost:56106 and the Cypress GUI. Since Stencil and Storybook are running it's possible to develop the components, but keep in mind the tests run in a production environment: This means no Stencil development tools like HMR.

leaflet

Like fractal, development of Leaflet plugins is package transcendent. Run the following command from root:

yarn start:leaflet
yarn start:react-leaflet

This will start Stencil (http://localhost:53333) and Storybook (http://localhost:56106) in production (no live reload / HMR) and the Leaflet plugins development environment on http://localhost:41234 or the React Leaflet development environment on http://localhost:42345.

Requirements

Node 14. For development on the DSO Toolkit you also need Yarn.

Dependencies

The DSO Toolkit and Component Library uses

  • npm as the registry for node packages
  • yarn for package management
  • gulp for build automation
  • node-sass to compile sass to css
  • fractal to document the toolkit
  • yaml to configure fractal components

Further reading

Ports

Ports used during development:

  • 41234 - Leaflet plugins dev app
  • 42345 - React Leaflet plugins dev app
  • 43000 - Fractal
  • 53100 - React test app
  • 53333 - Stencil
  • 56106 - Storybook for Web Components
  • 56206 - Storybook for CSS components
  • 56406 - Storybook for React components

dso-toolkit's People

Contributors

arnehoek avatar benheldoorn avatar bramhoosemans avatar daverhelst avatar dhvd-michael avatar emvium avatar gofix avatar michieldhvd avatar pieterverheij avatar tfrijsewijk avatar tond83 avatar vollemelk avatar wiebecnossen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.