DB UX Design System Monorepo - Provides Design Tokens and components for Web UIs
DB UI Mono provides robust HTML UI components, reusable visual styles, and powerful tooling to help developers,
designers, and content authors build, maintain, and scale best of class digital experiences.
Package | Content | Version |
---|---|---|
foundations | CSS/SCSS/Tailwind styles and assets | |
components | CSS/SCSS styles for components | |
ngx-components | Native Angular components | |
react-components | Native React components | |
v-components | Native Vue 3 components | |
web-components | Web Components |
Install your preferred package via npm or yarn e.g. npm i @db-ui/react-components
.
Afterwards you need to add the specific CSS or SCSS files to provide the styles of DB UX Design System.
For a detailed overview look at our examples.
We maintain a status overview for all components.
DB UI Mono is part of DB UX Design System Core,
that are the guidelines for any Personenverkehr Customer and Deutsche Bahn Enterprise website and web applications.
DB UI Mono leverages semantic HTML, ARIA roles, states and properties to apply our styles wherever possible, thus
enforcing correct, accessible markup. And we’re quality checking this in partnership with
the Team Digital Accessibility.
DB UI Mono uses declarative selectors instead of visual helpers to ensure our HTML class names and structure are human
read- and understandable, lean, performant and so much easier to update.
As DB UX Design System evolves, so does DB UI
Mono, meaning apps only need to keep their DB UI Mono package updated to ensure the latest look and feel.
This is mainly a platform providing the space and technology for a common basis of curated components; their development
is mainly driven by the community and adapted out of the work done in projects and through the huge amount of feedback
that we’re gaining out of the community. So please support us in any way possible, this is greatly appreciated!
We’re providing a detailed migration for each component next to the documentation of each component:
https://db-ui.github.io/mono/review/main/components/action/button/migration
Check our migration docs for breaking changes:
npm install
npm run build
npm run start
Please mind the conventions for git commits.
All versions in all package.json
files are set to 0.0.0
, we change those during release process in CI/CD.
This is only the first version of our framework and we really want your feedback - either within
the DB UI Channel by Web Dev Community in
Microsoft Teams (only available DB internally), or directly
at [email protected].
We’re particularly keen to add as many examples to the behaviours as possible, to further clarify them.
As we’d like to perfectly support our users and customers on their digital journey, the usage of Deutsche Bahn brand and
trademarks are bound to clear guidelines and restrictions even when being used with the code that we’re providing with
this product; Deutsche Bahn fully reserves all rights and ownership regarding the Deutsche Bahn brand, even though that
we’re providing the code of DB UI products free to use and release it under the Apache 2.0 license.
Please have a look at our brand portal at https://marketingportal.extranet.deutschebahn.com/ for any further questions
and whom to contact on any brand issues. As these assets and visual guidelines are retrieved from our Deutsche Bahn
Marketingportal, you’ll agree with
the “Allgemeine Nutzungsbedingungen für das DB-Marketingportal” (german)
in case of using them.
For any usage outside of Deutsche Bahn websites and applications you must remove or replace any Deutsche Bahn brand and
design assets as well as protected characteristics and trademarks. We’re even also planning to provide a neutral theme
that would make it much easier for you to use our product without the trademarks by Deutsche Bahn.
This especially relates to the files in the directories /source/fonts/
, source/images
and source/samples
and source/favicon.ico
as well.
TODO: Elaborate on testing setup
Visual regression tests
Playwright is used to create and compare screenshots of each individual component.
To update screenshots just run the following (you need Docker installed and available on your shell):
npm run regenerate:screenshots
If you want to generate the screenshots manually, do the following:
npm run build
# unix
docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.30.0-focal /bin/bash
#windows - allow file sharing (windows pop up)
docker run --rm --network host -v ${PWD}:/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.30.0-focal /bin/bash
npm install
cd output/${frameworkFolder}
npx playwright test --update-snapshots
You can also use docker-compose
to test or regenerate screenshots.
docker-compose -f ./e2e/docker-compose.yml up
docker-compose -f ./e2e/docker-compose.regenerate.yml up
Contributions are very welcome, please refer to the contribution guide.
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone – have a look at
our Contributor Covenant Code of Conduct.
This project is licensed under Apache-2.0, Copyright 2024 by DB Systel GmbH.