|
26 | 26 | <a href="https://stackblitz.com/edit/nextjs-j2wba3?file=pages/index.tsx">essai immédiat</a>
|
27 | 27 | </p>
|
28 | 28 |
|
29 |
| -> ATTENTION: Ce design système a uniquement vocation à être utilisé pour des sites officiels de l'état. |
30 |
| -> Son but est de rendre la parole de l'état clairement identifiable. [Consulter le CGU](https://www.systeme-de-design.gouv.fr/utilisation-et-organisation/perimetre-d-application) |
| 29 | +> AVERTISSEMENT : Ce système de conception est uniquement destiné à être utilisé pour les sites web officiels des services publics français. |
| 30 | +> 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). |
31 | 31 |
|
32 |
| -> 🗣️ L'enregistrement de l'atelier de présentation de la librairie est disponible [ici](https://bbb-dinum-scalelite.visio.education.fr/playback/presentation/2.3/22298bc9d93b53540248207bc3f9e31260f3b4f1-1670578779094). |
33 |
| -
|
34 |
| -Ce module NPM est une surcouche de compatibilité React pour [@gouvfr/dsfr](https://www.npmjs.com/package/@gouvfr/dsfr), l'implémentation officielle de référence du |
35 |
| -DSFR en pur JavaScript/CSS. |
| 32 | +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. |
36 | 33 |
|
37 | 34 | <a href="https://youtu.be/5q88JgXUAY4">
|
38 | 35 | <img width="1712" alt="image" src="https://user-images.githubusercontent.com/6702424/224423044-c1823249-eab6-4844-af43-d059c01416af.png">
|
39 | 36 | </a>
|
40 | 37 |
|
41 |
| -> Bien que cette bibliothèque soit écrite en TypeScript, l'utilisation de TypeScript dans votre application est facultative (mais recommandée car elle présente des avantages exceptionnels pour vous et votre base de code). |
42 |
| -
|
43 |
| -- [x] une interface de programmation strictement typée et bien documentée. |
44 |
| -- [x] Garantie d'être toujours à jour avec les [dernières évolutions du DSFR](https://www.systeme-de-design.gouv.fr/). |
45 |
| - Une grande partie du code et du typage est généré procéduralement à partir de la feuille de style de référence: [`@gouvfr/dsfr`](https://www.npmjs.com/package/@gouvfr/dsfr)`/dist/dsfr.css`. |
46 |
| -- [x] exactement le même aspect et ressenti qu'avec [@gouvfr/dsfr](https://www.npmjs.com/package/@gouvfr/dsfr), il s'agit d'une couche de compatibilité et non pas d'une implémentation alternative. |
47 |
| -- [x] pas de [flash d'écran blanc lors du basculement automatique du thème clair vers le thème sombre](https://github.com/codegouvfr/@codegouvfr/react-dsfr/issues/2#issuecomment-1257263480). |
48 |
| -- [x] la plupart des composants peuvent être rendus directement sur le serveur (voir [RSC](https://reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.html)). Les autres sont étiquetés `"use client";`. |
49 |
| -- [x] [Intégration clef en main pour les différents frameworks de développement: vite, Next.js, y compris la version beta de Next 13 (configuration AppDir) et Create React App](https://guides.react-dsfr.fr/) si votre |
50 |
| - framework n'est pas supporté, il suffit de demander notre **il manque un mot là** , nous avons pour but de couvrir tous les cas d'usage effectifs. |
51 |
| -- [x] (Presque) tout [les composants de référence](https://www.systeme-de-design.gouv.fr/elements-d-interface) sont [implémenté](https://components.react-dsfr.codegouv.studio/). |
52 |
| -- [x] seulement le code des composants que vous utilisez effectivement sera inclus dans votre projet final. |
53 |
| -- [x] Intégration facultative avec [MUI](https://mui.com/). Si vous utilisez des composants MUI ils seront automatiquement adaptés pour ressembler à des composants DSFR. |
54 |
| - Voir la [documentation](https://guides.react-dsfr.fr/mui-integration). |
55 |
| -- [x] permet de développer à l'aide d'outil de CSS-in-JS comme [Styled component](https://styled-components.com/), [Emotion](https://emotion.sh/docs/introduction) ou [TSS](https://www.tss-react.dev/). |
56 |
| -- [x] prévoit un système de traduction pour les textes présents dans les composants (i18n). |
57 |
| -- [x] [s'intègre avec les librairies de routing](https://guides.react-dsfr.fr/routing) comme [React Router](https://reactrouter.com/en/main), [TanStack Router](https://tanstack.com/router/v1) ou encore [Type route](https://type-route.zilch.dev/). |
58 |
| - |
59 |
| -> 💡 Besoin de pages de connexion au DSFR? Allez voir [keycloak-theme-dsfr](https://github.com/codegouvfr/keycloak-theme-dsfr). |
| 38 | +> 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). |
| 39 | +
|
| 40 | +- [x] API entièrement TypeSafe, bien documentée. |
| 41 | +- [x] Toujours à jour avec les dernières évolutions du DSFR. |
| 42 | + Code et Types générés à partir de [`@gouvfr/dsfr`](https://www.npmjs.com/package/@gouvfr/dsfr)`/dist/dsfr.css`. |
| 43 | +- [x] Exactement le même aspect et ressenti qu'avec [@gouvfr/dsfr](https://www.npmjs.com/package/@gouvfr/dsfr). |
| 44 | +- [x] Pas de [flash blanc lors du rechargement dans la configuration SSR](https://github.com/codegouvfr/@codegouvfr/react-dsfr/issues/2#issuecomment-1257263480). |
| 45 | +- [x] La plupart des composants sont prêts pour les composants serveur. Les autres sont étiquetés avec `"use client";` |
| 46 | +- [x] [Intégration parfaite avec tous les principaux frameworks React : Next.js (PagesDir et AppDir), Create React App, Vue](https://react-dsfr.codegouv.studio/). |
| 47 | +- [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/) |
| 48 | +- [x] Trois distributions modulables, choisissez les composants que vous importez. (Ce n'est pas tout dans un gros bundle .js) |
| 49 | +- [x] Intégration optionnelle avec [MUI](https://mui.com/). Si vous utilisez des composants MUI, ils seront |
| 50 | + 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). |
| 51 | +- [x] Activez CSS in JS en fournissant un hook `useColors()` qui expose les bonnes options de couleurs et décisions |
| 52 | + pour le schéma de couleurs actuellement activé. |
| 53 | +- [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. |
| 54 | +- [x] [Support des bibliothèques de routage](https://react-dsfr.codegouv.studio/routing) comme react-router. |
| 55 | + |
| 56 | +> 💡 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). |
60 | 57 |
|
61 | 58 | <p align="center">
|
62 |
| - <a href="https://guides.react-dsfr.fr/">🚀 Commencer maintenant 🚀 </a> |
| 59 | + <a href="https://react-dsfr.codegouv.studio/">🚀 Commencez ici 🚀 </a> |
63 | 60 | </p>
|
64 | 61 |
|
65 |
| -# Gouvernance du projet |
| 62 | +# Gouvernance |
| 63 | + |
| 64 | +Ce module est un produit du pôle Logiciel libre et open source d'[Etalab](https://code.gouv.fr/en/mission/). |
66 | 65 |
|
67 |
| -Ce travail est un produit de [CodeGouvFr](https://code.gouv.fr/fr/mission/), la mission logiciel libre de [la direction interministérielle du numérique](https://www.numerique.gouv.fr/dinum/) (DINUM). |
| 66 | +Ce projet est co-maintenu par des fonctionnaires de diverses administrations françaises : |
68 | 67 |
|
69 |
| -Ce projet est co-maintenu par des agents de différentes administrations françaises. |
| 68 | +- [Julien Bouquillon](https://github.com/revolunet) - DNUM des ministères sociaux |
| 69 | +- [Dylan DECRULLE](https://github.com/ddecrulle) - Insee |
| 70 | +- [Enguerran Weiss](https://github.com/enguerranws) - Plateforme de l'Inclusion |
70 | 71 |
|
71 |
| -- [Joseph Garrone](@garronej) |
72 |
| -- [Julien Bouquillon](@revolunet) - DNUM des ministeres sociaux |
73 |
| -- [Dylan DECRULLE](@ddecrulle) - Insee |
74 |
| -- [Enguerran Weiss](@enguerranws) - Plateforme de l'Inclusion |
| 72 | +Il est également co-maintenu par [Joseph Garrone](https://github.com/garronej), l'auteur original. |
75 | 73 |
|
76 |
| -## Development |
| 74 | +## Développement |
77 | 75 |
|
78 | 76 | ```bash
|
79 | 77 | git clone https://github.com/codegouvfr/react-dsfr
|
80 | 78 | cd react-dsfr
|
81 | 79 | yarn
|
82 | 80 |
|
83 |
| -# Démarrer Storybook |
| 81 | +# Démarrer storybook |
84 | 82 | yarn storybook
|
85 | 83 |
|
86 | 84 | # Démarrer les applications de test
|
87 |
| -yarn start-cra |
88 |
| -yarn start-vite |
89 |
| -yarn start-next-pagesdir |
90 |
| -yarn start-next-appdir |
| 85 | +yarn start-cra # Pour tester dans une configuration Create React App |
| 86 | +yarn start-vite # Pour tester dans une configuration Vite |
| 87 | +yarn start-next-pagesdir # Pour tester dans une configuration Next.js 13 PagesDir (la configuration par défaut) |
| 88 | +yarn start-next-appdir # Pour tester dans une configuration Next.js 13 AppDir |
91 | 89 |
|
92 |
| -# Executer tout les tests unitaires (test/runtime): |
| 90 | +# Exécuter tous les tests unitaires (test/runtime): |
93 | 91 | yarn test
|
94 |
| -# Executer, par exemple, uniquement le test test/runtime/cssVariable.test.ts |
| 92 | +# Exécuter uniquement test/runtime/cssVariable.test.ts (par exemple) |
95 | 93 | npx vitest -t "Resolution of CSS variables"
|
96 | 94 | ```
|
97 | 95 |
|
98 |
| -### Vous cherchez comment contribuer? |
99 |
| - |
100 |
| -Tout d'abord, merci ! Voici [le guide de contribution](https://github.com/codegouvfr/react-dsfr/blob/main/CONTRIBUTING.md). |
101 |
| - |
102 |
| -### Comment publier une nouvelle version sur NPM |
103 |
| - |
104 |
| -Ce dépôt a été mis en place avec [garronej/ts-ci](https://github.com/garronej/ts-ci). |
105 |
| -Vous pouvez vous référer à la documentation de TS-CI pour comprendre le cycle de vie de ce projet. |
| 96 | +### Vous voulez contribuer ? |
| 97 | + |
| 98 | +Merci ! Voir [le guide de contribution](https://github.com/codegouvfr/react-dsfr/blob/main/CONTRIBUTING.md). |
| 99 | + |
| 100 | +### Comment publier une nouvelle version sur NPM, comment sortir une version bêta |
| 101 | + |
| 102 | +Ce dépôt a été initialisé à partir de [garronej/ts-ci](https://github.com/garronej/ts-ci), consultez la |
| 103 | +documentation de ce starter pour comprendre le cycle de vie de ce dépôt. |
| 104 | + |
| 105 | +## Cas d'utilisation |
| 106 | + |
| 107 | +Quelques projets qui utilisent `@codegouvfr/react-dsfr`. |
| 108 | + |
| 109 | +- [https://code.gouv.fr/sill](https://sill-preprod.lab.sspcloud.fr/) |
| 110 | +- https://cartes.gouv.fr |
| 111 | +- https://immersion-facile.beta.gouv.fr/ |
| 112 | +- https://egapro.travail.gouv.fr/ |
| 113 | +- https://maisondelautisme.gouv.fr/ |
| 114 | +- https://refugies.info/fr |
| 115 | +- https://www.mediateur-public.fr/ |
| 116 | +- https://signal.conso.gouv.fr/ |
| 117 | +- https://observatoire.numerique.gouv.fr/ |
| 118 | +- https://github.com/BaseAdresseNationale/adresse.data.gouv.fr |
| 119 | +- https://github.com/DISIC/observatoire.numerique.gouv.fr |
| 120 | +- https://github.com/DISIC/monfranceconnect |
| 121 | +- https://github.com/InseeFr/Lunatic-DSFR |
| 122 | +- https://github.com/EIG6-Geocommuns/lidarviz-front |
| 123 | +- https://github.com/EIG6-Geocommuns/geocommuns-core |
| 124 | +- https://github.com/SocialGouv/bpco-site |
| 125 | +- https://github.com/EIG6-ArtificIA/predictia_front |
| 126 | +- https://github.com/BaseAdresseNationale/bal-admin |
| 127 | +- https://github.com/etalab/sill-web |
| 128 | +- https://github.com/inclusion-numerique/mediature |
| 129 | +- https://territoiresentransitions.fr (peut-être) |
| 130 | +- https://potentiel.beta.gouv.fr |
| 131 | +- https://diagoriente.beta.gouv.fr |
0 commit comments