@codegouvfr/react-dsfr
Version:
French State Design System React integration library
130 lines (106 loc) • 6.99 kB
Markdown
<p align="center">
<img src="https://github.com/codegouvfr/react-dsfr/releases/download/assets/dsfr-react_repo-card.png">
</p>
<p align="center">
🇫🇷 <i>React intégration pour le <a href="https://www.systeme-de-design.gouv.fr/">System de design du gouvernement français (alias DSFR)</a></i> 🇫🇷
<br>
<br>
<a href="https://github.com/codegouvfr/react-dsfr/actions">
<img src="https://github.com/codegouvfr/react-dsfr/workflows/ci/badge.svg?branch=main">
</a>
<a href="https://www.npmjs.com/package/@codegouvfr/react-dsfr">
<img src="https://img.shields.io/npm/v/@codegouvfr/react-dsfr?logo=npm">
</a>
<a href="https://bundlephobia.com/package/@codegouvfr/react-dsfr">
<img src="https://img.shields.io/bundlephobia/minzip/@codegouvfr/react-dsfr">
</a>
<a href="https://github.com/codegouvfr/react-dsfr/blob/main/LICENSE">
<img src="https://img.shields.io/npm/l/@codegouvfr/react-dsfr">
</a>
</p>
<p align="center">
<a href="https://components.react-dsfr.codegouv.studio">Documentation des composants</a>
-
<a href="https://react-dsfr.codegouv.studio">guides</a>
-
<a href="https://stackblitz.com/edit/nextjs-j2wba3?file=pages/index.tsx">essai immédiat</a>
</p>
> AVERTISSEMENT : Ce système de conception est uniquement destiné à être utilisé pour les sites web officiels des services publics français.
> Son objectif principal est de faciliter l'identification des sites gouvernementaux par les citoyens. [Voir les conditions](https://www.systeme-de-design.gouv.fr/utilisation-et-organisation/perimetre-d-application).
Ce module est une boîte à outils avancée qui tire parti de [@gouvfr/dsfr](https://github.com/GouvernementFR/dsfr), l'implémentation en JS/CSS vanilla du DSFR.
<a href="https://youtu.be/5q88JgXUAY4">
<img width="1712" alt="image" src="https://user-images.githubusercontent.com/6702424/224423044-c1823249-eab6-4844-af43-d059c01416af.png">
</a>
> Bien que ce module soit écrit en TypeScript, l'utilisation de TypeScript dans votre application est optionnelle (mais recommandée car elle apporte des avantages exceptionnels à la fois pour vous et votre base de code).
- [x] API entièrement TypeSafe, bien documentée.
- [x] Toujours à jour avec les dernières évolutions du DSFR.
Code et Types générés à partir de [`@gouvfr/dsfr`](https://www.npmjs.com/package/@gouvfr/dsfr)`/dist/dsfr.css`.
- [x] Exactement le même aspect et ressenti qu'avec [@gouvfr/dsfr](https://www.npmjs.com/package/@gouvfr/dsfr).
- [x] Pas de [flash blanc lors du rechargement dans la configuration SSR](https://github.com/codegouvfr/@codegouvfr/react-dsfr/issues/2#issuecomment-1257263480).
- [x] La plupart des composants sont prêts pour les composants serveur. Les autres sont étiquetés avec `"use client";`
- [x] [Intégration parfaite avec tous les principaux frameworks React : Next.js (PagesDir et AppDir), Create React App, Vite](https://react-dsfr.codegouv.studio/).
- [x] (Presque) Tous [les composants](https://www.systeme-de-design.gouv.fr/elements-d-interface) sont [implémentés](https://components.react-dsfr.codegouv.studio/)
- [x] Trois distributions modulables, choisissez les composants que vous importez. (Ce n'est pas tout dans un gros bundle .js)
- [x] Intégration optionnelle avec [MUI](https://mui.com/). Si vous utilisez des composants MUI, ils seront
automatiquement adaptés pour ressembler aux [composants DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface). Voir [documentation](https://react-dsfr.codegouv.studio/mui-integration).
- [x] Permet le CSS in JS. [Documentation](https://react-dsfr.codegouv.studio/css-in-js)
- [x] i18n en option, les textes intégrés peuvent être affichés en plusieurs langues et l'utilisateur peut fournir des traductions supplémentaires.
- [x] [Support des bibliothèques de routage](https://react-dsfr.codegouv.studio/routing) comme react-router.
> 💡 Besoin de pages de connexion et d'inscription prêtes à l'emploi et conformes au DSFR ? Consultez [keycloak-theme-dsfr](https://github.com/codegouvfr/keycloak-theme-dsfr).
<p align="center">
<a href="https://react-dsfr.codegouv.studio/">🚀 Commencez ici 🚀 </a>
</p>
# Gouvernance
Ce module est un produit du pôle Logiciel libre et open source d'[Etalab](https://code.gouv.fr/en/mission/).
Ce projet est co-maintenu par des fonctionnaires de diverses administrations françaises :
- [Joseph Garrone](https://github.com/garronej) - Insee
- [Julien Bouquillon](https://github.com/revolunet) - DNUM des ministères sociaux
- [Dylan DECRULLE](https://github.com/ddecrulle) - Insee
- [Enguerran Weiss](https://github.com/enguerranws) - Plateforme de l'Inclusion
## Développement
```bash
git clone https://github.com/codegouvfr/react-dsfr
cd react-dsfr
yarn
# Démarrer storybook
yarn storybook
# Démarrer les applications de test
yarn start-cra # Pour tester dans une configuration Create React App
yarn start-vite # Pour tester dans une configuration Vite
yarn start-next-pagesdir # Pour tester dans une configuration Next.js 13 PagesDir (la configuration par défaut)
yarn start-next-appdir # Pour tester dans une configuration Next.js 13 AppDir
# Exécuter tous les tests unitaires (test/runtime):
yarn test
# Exécuter uniquement test/runtime/cssVariable.test.ts (par exemple)
npx vitest -t "Resolution of CSS variables"
```
### Vous voulez contribuer ?
Merci ! Voir [le guide de contribution](https://github.com/codegouvfr/react-dsfr/blob/main/CONTRIBUTING.md).
### Comment publier une nouvelle version sur NPM, comment sortir une version bêta
Ce dépôt a été initialisé à partir de [garronej/ts-ci](https://github.com/garronej/ts-ci), consultez la
documentation de ce starter pour comprendre le cycle de vie de ce dépôt.
## Cas d'utilisation
Quelques projets qui utilisent `@codegouvfr/react-dsfr`.
- [https://code.gouv.fr/sill](https://sill-preprod.lab.sspcloud.fr/)
- https://cartes.gouv.fr
- https://immersion-facile.beta.gouv.fr/
- https://egapro.travail.gouv.fr/
- https://maisondelautisme.gouv.fr/
- https://refugies.info/fr
- https://www.mediateur-public.fr/
- https://signal.conso.gouv.fr/
- https://observatoire.numerique.gouv.fr/
- https://github.com/BaseAdresseNationale/adresse.data.gouv.fr
- https://github.com/DISIC/observatoire.numerique.gouv.fr
- https://github.com/DISIC/monfranceconnect
- https://github.com/InseeFr/Lunatic-DSFR
- https://github.com/EIG6-Geocommuns/lidarviz-front
- https://github.com/EIG6-Geocommuns/geocommuns-core
- https://github.com/SocialGouv/bpco-site
- https://github.com/EIG6-ArtificIA/predictia_front
- https://github.com/BaseAdresseNationale/bal-admin
- https://github.com/etalab/sill-web
- https://github.com/inclusion-numerique/mediature
- https://territoiresentransitions.fr (peut-être)
- https://potentiel.beta.gouv.fr
- https://diagoriente.beta.gouv.fr