npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@pass-culture/design-system

v0.5.2

Published

Ce _repository_ contient le code nécessaire à la génération des _design tokens_ du Design System du pass Culture. Si vous cherchez des informations plus générales à propos de ce design system, rendez-vous sur [la documentation](https://zeroheight.com/6b27

Downloads

11,041

Readme

Design System du pass Culture

Ce repository contient le code nécessaire à la génération des design tokens du Design System du pass Culture. Si vous cherchez des informations plus générales à propos de ce design system, rendez-vous sur la documentation.

Si vous êtes développeur·euse ou designer·euse, et que vous voulez utiliser le Design System du pass Culture, vous pouvez commencer avec les kits de démarrage.

Installation et utilisation

La dernière version de la librairie peut être installée dans un projet avec la commande suivante :


yarn add @pass-culture/design-system

La librairie donne accès aux design tokens soit via un fichier de variables CSS qu'on peut importer cette manière :

@import '@pass-culture/design-system/lib/pro/light.css';

Dans ce cas, les variables CSS sont directement déclarées à la racine de l'arbre du document.

Ou bien via un fichier typescript depuis lequel on importe l'objet contenant les design tokens :

import * as tokens from '@pass-culture/design-system/lib/jeune/light.web.ts'

Création d'une nouvelle version de la librairie

  1. Créer un nouveau tag via le workflow manuel "Update package version and create tag"

  2. Publier une nouvelle release Github avec le détail des changements basée sur le tag créé à l'étape précédente

  3. Vérifier que la publication du package a eu lieu à l'issue de l'action de publication

Fonctionnement du build

Le but du build est de transformer l'objet JSON contenant les design tokens exportés depuis Figma en des fichiers exploitables par les applications du pass Culture (les fichiers light.web.css ou dark.web.ts donnés en exemple plus haut).

Transformation des design tokens

On utilise la librairie style-dictionary qui nous permet de configurer des pipelines qui appliquent des transformations spécifiques pour chaque environnement de destination.

Ces fichiers de configuration se trouvent dans src/configs et permettent de construire pour chaque brand les fichiers de variables déclinés pour chaque plateforme et pour chaque thème concernés.

Autres fichiers générés

On génère aussi deux autres fichiers :

  • Le fichier font-faces.css contenant les définitions des typographies utilisées dans les design tokens
  • Le fichier font-preloads.ts contenant la liste des preloads à injecter dans le HTML des applications pour que les glyphes des typographies soient téléchargés en premier

Structure des design tokens

Les design tokens sont séparés en trois catégories :

  • Les global tokens, c'est à dire les valeurs par défaut des tokens
  • Les tokens de thèmes qui surchargent les valeurs par défaut au moment du build
  • Les brand tokens qui surchargent les tokens pour une brand et un thème donnés

Global tokens

Les global tokens sont organisés par groupe. On a par exmeple typography ou color. Chacun de ces groupes est divisé en plusieurs fichiers :

  • Les primitive tokens qui font référence à des valeurs absolues (par ex: color-grey-0: "#fff")
  • Les semantic tokens qui sont des abstractions des primitive tokens. Ils peuvent être lié à un style partagé par les applications (par ex: color-text-default), ou a un composant spécifique (par ex: button-color-background-default-hover)

Theme tokens

Les theme tokens sont regroupés dans des fichiers spécifiques pour chaque thème possible sur les différentes plateformes (tel que dark.json pour le thème sombre).

Brand tokens

Les brand tokens sont regroupés dans des fichiers spécifiques pour chaque plateforme et chaque thème possible (tel que pro-dark.json pour la surcharge du thème sombre sur l'application pro).

Comment ajouter une brand ?

  • Ajouter à src/configs/brands une config de plateformes et de thèmes pour la nouvelle brand
  • Ajouter un fichier de surcharge pour chaque thème dans src/tokens/brands sous la forme [BRAND]-[THEME].json

Comment ajouter un thème ?

  • Ajouter le thème aux listes des thèmes dans les configs de brand concernées dans src/configs/brands
  • Ajouter un fichier de surcharge pour chaque brand dans src/tokens/brands sous la forme [BRAND]-[THEME].json