Decathlon Design System - Vitamin global CSS styles library


Keywords
design-system, ui-kit, libraries, css, vitamin, accessibility, components, decathlon, design-tokens, html, lerna, monorepo, nx, showcases, storybook, styleguide, tailwindcss, ui-components, ui-library, yarn
License
Apache-2.0
Install
npm install @vtmn/css@3.0.2

Documentation

Important

This current version of Vitamin will no longer evolve and only accept bug fixes from now on. More details here.


Vitamin Decathlon Design System logo Vitamin Decathlon Design System logo

Vitamin Web

Decathlon Design System libraries for web applications

Website - Showcases

Introduction

Decathlon Design System is the framework that helps our ecosystem to design and develop consistent and quality experiences. For its Digital section, it is called Vitamin.

This repository hosts libraries for web applications.

Core packages

In order to allow you to consume the elements of the Design System according to your product constraints, we give you the possibility of using the Vitamin web libraries with different technologies & levels of granularity with core packages developed and maintained by the Vitamin core team.

Global CSS styles 🎨

This package provides you with a complete CSS with a huge set of utility classes as it is generated with Tailwind CSS. Then it will be up to you to optimize for production by purging the CSS according to the classes used in your HTML:

@vtmn/css README storybook npm version Quality Gate Status

If you already using Tailwind CSS in your project or you want to take full advantage of all its features like functions & directives by building your own classes via @apply for example. You can check our package @vtmn/css-tailwind-preset which will explain you how to use Vitamin styles in a Tailwind CSS project.

Specific CSS styles 🖌

These packages allow the consumption of elements with a higher level of granularity. You get only the styles you need and what you consume is Pure CSS without CSS Custom Properties, therefore IE 11 compatible:

For design tokens
@vtmn/css-design-tokens README storybook npm version Quality Gate Status
For each component

Actions

@vtmn/css-button README documentation storybook npm version Quality Gate Status
@vtmn/css-dropdown README documentation storybook npm version Quality Gate Status
@vtmn/css-link README documentation storybook npm version Quality Gate Status

Forms

@vtmn/css-select README documentation storybook npm version Quality Gate Status
@vtmn/css-text-input README documentation storybook npm version Quality Gate Status

Indicators

@vtmn/css-badge README documentation storybook npm version Quality Gate Status
@vtmn/css-loader README documentation storybook npm version Quality Gate Status
@vtmn/css-price README documentation storybook npm version Quality Gate Status
@vtmn/css-progressbar README documentation storybook npm version Quality Gate Status
@vtmn/css-rating README documentation storybook npm version Quality Gate Status
@vtmn/css-tag README documentation storybook npm version Quality Gate Status

Navigation

@vtmn/css-breadcrumb README documentation storybook npm version Quality Gate Status
@vtmn/css-navbar README documentation storybook npm version Quality Gate Status
@vtmn/css-search README documentation storybook npm version Quality Gate Status
@vtmn/css-tabs README documentation storybook npm version Quality Gate Status

Overlays

@vtmn/css-alert README documentation storybook npm version Quality Gate Status
@vtmn/css-modal README documentation storybook npm version Quality Gate Status
@vtmn/css-popover README documentation storybook npm version Quality Gate Status
@vtmn/css-snackbar README documentation storybook npm version Quality Gate Status
@vtmn/css-toast README documentation storybook npm version Quality Gate Status
@vtmn/css-tooltip README documentation storybook npm version Quality Gate Status

Selection controls

@vtmn/css-checkbox README documentation storybook npm version Quality Gate Status
@vtmn/css-chip README documentation storybook npm version Quality Gate Status
@vtmn/css-quantity README documentation storybook npm version Quality Gate Status
@vtmn/css-radio-button README documentation storybook npm version Quality Gate Status
@vtmn/css-toggle README documentation storybook npm version Quality Gate Status

Structure

@vtmn/css-accordion README documentation storybook npm version Quality Gate Status
@vtmn/css-card README documentation storybook npm version Quality Gate Status
@vtmn/css-divider README documentation storybook npm version Quality Gate Status
@vtmn/css-list README documentation storybook npm version Quality Gate Status
@vtmn/css-skeleton README documentation storybook npm version Quality Gate Status
For utilities
@vtmn/css-utilities README storybook npm version Quality Gate Status

Icons ✨

This package provides you with a library of SVG icons that you can include in a handful of ways (SVGs, icon font, sprite, CSS, embedded):

@vtmn/icons README documentation storybook npm version

Assets 🏞

This package provides you with a library of SVG assets that you can include in a handful of ways (SVGs, asset font, sprite, CSS, embedded):

@vtmn/assets README documentation npm version

Community packages

In order to enhance your Developer eXperience, we give you the possibility to develop your components in React, Svelte and Vue based on our core packages just above. These libraries are developed and maintained by the community, the Vitamin core team will be there to review, and ensure the quality of your propositions, feel free to contribute!

React 🔵

This package provides you with a library of React components:

@vtmn/react README storybook npm version Quality Gate Status

Svelte 🟠

This package provides you with a library of Svelte Components:

@vtmn/svelte README storybook npm version Quality Gate Status

Vue 🟢

This package provides you with a library of Vue components:

@vtmn/vue README storybook npm version Quality Gate Status

Contributing

One of the Decathlon Design System goals is to provide guidelines & components to gain in consistency, efficiency & accessibility. The best way to achieve this is together! That's why we are on GitHub. We would love contributions from the community (bug reports, feature requests, suggestions, Pull Requests, whatever you want!).

Yarn workspaces and nx are used to manage dependencies and build config across packages. Lerna is used to manage versioning & publishing.

Run the following to setup your local dev environment:

# Install `yarn`, alternatives at https://yarnpkg.com/en/docs/install
brew install yarn

# Clone or fork `vitamin-web`
git clone git@github.com:Decathlon/vitamin-web.git # or your fork
cd vitamin-web

# install dependencies
yarn

# build all packages
yarn build

# start all showcases and build sources in watch mode & hot reload
yarn start
# or you can launch separately (recommended)
yarn start:css
yarn start:icons
yarn start:react
yarn start:svelte
yarn start:vue

👉 See the contributing docs for more information about how to contribute.

Special thanks

Thank you to the contributors involved in these vitamin-web libraries (even before they were Open Source). 💙

Thank you also Remix Icon because Vitamix Icons is the official Decathlon icon library based on their open-source icon library (Remix Design © 2020). This original library is under the license Apache 2.0 and has been modified by Decathlon. Learn more.

License

Copyright 2021 Decathlon.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.