Coder Social home page Coder Social logo

inclusion-numerique / dsfr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gouvernementfr/dsfr

0.0 0.0 0.0 15.66 MB

đŸ‡«đŸ‡· Official french government's design system (SystĂšme de Design de l'État)

Home Page: https://www.systeme-de-design.gouv.fr/

License: Other

Shell 0.01% JavaScript 25.11% Handlebars 0.08% EJS 41.76% SCSS 33.05%

dsfr's Introduction

đŸ‡«đŸ‡· SystĂšme de Design de l’État

GitHub release Generic badge Generic badge Npm package monthly downloads

Le SystĂšme de Design de l’État (ci-aprĂšs, le DSFR) est un ensemble de composants web HTML, CSS et Javascript pour faciliter le travail des Ă©quipes projets des sites Internet publics, et crĂ©er des interfaces numĂ©riques de qualitĂ© et accessibles.

L'outil est développé, maintenu et géré par le Service d'Information du Gouvernement (SIG).

Son utilisation par les administrations est soumise à une demande d'agrément (voir partie 5 des Conditions Générales d'Utilisation).

Voir la documentation officielle

Licence et droit d'utilisation

Le contenu de ce projet est placé sous licence MIT License, à l'exception de la fonte Marianne. Voir LICENSE.md

⚠ Utilisation interdite en dehors des sites Internet de l'État

Il est formellement interdit Ă  tout autre acteur d’utiliser le SystĂšme de Design de l’État (les administrations territoriales ou tout autre acteur privĂ©). Le SystĂšme de Design de l’État reprĂ©sente l’identitĂ© numĂ©rique de l’État. En cas d’usage Ă  des fins trompeuses ou frauduleuses, l'État se rĂ©serve le droit d’entreprendre les actions nĂ©cessaires pour y mettre un terme. Voir les conditions gĂ©nĂ©rales d'utilisation.

⚠ Prohibited Use Outside Government Websites

This Design System is only meant to be used by official French public services' websites and apps. Its main purpose is to make it easy to identify governmental websites for citizens. See terms.

Installation

L'installation du SystĂšme de Design de l'État (ci-aprĂšs, le DSFR) peut se faire de maniĂšres diffĂ©rentes. En tĂ©lĂ©chargeant l'ensemble des fichiers nĂ©cessaires Ă  son utilisation, en utilisant le gestionnaire de paquets NPM, ou encore via git.

Fichiers statiques

Il est possible de télécharger l'ensemble du DSFR au format zip ci-dessous. Le zip contient un ensemble de fichiers CSS et Javascript, ainsi que les différentes polices web utilisées, à savoir la Marianne et la Spectral.

Fichiers statiques

NPM

Le DSFR est disponible sur NPM via un ensemble de packages qu'il est possible d'ajouter directement à votre projet. Il est de ce fait nécessaire d'installer NodeJS, et d'avoir un fichier package.json à la racine de votre projet. (Il est possible d'en créer un directement via la commande npm init).

Une fois en place, il suffit d'installer le package @gouvfr/dsfr contenant l’ensemble des composants:

npm install @gouvfr/dsfr

Il est Ă©galement possible d'installer le package avec Yarn :

yarn add @gouvfr/dsfr

Une fois terminé le dsfr sera alors installé dans le dossier node_modules/@gouvfr/dsfr/.

Pour visualiser les exemples, il est nécessaire de lancer un serveur local :

npm run serve

Une fois le serveur lancé, les exemples sont disponibles à l'adresse : http://localhost:8080/example/

Structure du DSFR

La structure que nous mettons Ă  disposition , sur le zip ou npm est la suivante:

  • dist : contient les fichiers css et js Ă  importer en fonction des packages utilisĂ©s.
  • src : contient les sources sass et js des diffĂ©rents composants.
  • example : contient des snippets html d’example des composants que vous pouvez consulter en local.

Configuration de votre projet

Lors de la crĂ©ation de votre projet, il est nĂ©cessaire d’adopter l’arborescence prĂ©vue par celui-ci, Ă  savoir les fichiers HTML Ă  la racine du projets, et les diffĂ©rentes sources du rĂ©pertoire dist dans des dossiers spĂ©cifiques :

Une structure minimale serait :

/ Racine du projet
└── index.html
└── dsfr.min.css
└── dsfr.module.min.js
└── dsfr.nomodule.min.js
└── favicon
└── font
└── icons
└── utility
  └── icons

Les polices de caractĂšres utilisĂ©es sur le DS, Ă  savoir la Marianne et la Spectral, sont des fichiers .woff et .woff2, ils doivent se trouver dans le rĂ©pertoire font. Ce dossier doit ĂȘtre placĂ© au mĂȘme niveau que le dossier contenant le CSS du core dsfr ('dsfr' dans notre exemple puisque dsfr.min.css contient le core)

Le HTML

Le point de dĂ©part de l’utilisation du DSFR est la crĂ©ation de fichiers HTML, afin de pouvoir utiliser les diffĂ©rents composants. Ces fichiers sont Ă  mettre Ă  la racine de votre projet. L’exemple ci dessous est le code minimal afin de pouvoir utiliser le DSFR.

L’ajout de l’attribut data-fr-scheme sur la balise html permet d’activer la gestion des thĂšmes clair et sombre. Les valeurs possibles sont system, light, dark. La valeur “system” permet d’utiliser la configuration dĂ©finie sur le systĂšme d’exploitation de l’utilisateur. Consulter la documentation des paramĂštres d’affichage afin d’en savoir plus.

<!doctype html>
<html lang="fr" data-fr-scheme="system">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="dsfr.min.css">
    <link rel="stylesheet" href="utility/utility.min.css">

    <meta name="theme-color" content="#000091"><!-- DĂ©fini la couleur de thĂšme du navigateur (Safari/Android) -->
    <link rel="apple-touch-icon" href="favicon/apple-touch-icon.png"><!-- 180×180 -->
    <link rel="icon" href="favicon/favicon.svg" type="image/svg+xml">
    <link rel="shortcut icon" href="favicon/favicon.ico" type="image/x-icon"><!-- 32×32 -->
    <link rel="manifest" href="favicon/manifest.webmanifest" crossorigin="use-credentials">
    <!-- Modifier les chemins relatifs des favicons en fonction de la structure du projet -->
    <!-- Dans le fichier manifest.webmanifest aussi, modifier les chemins vers les images -->

    <title>Titre de la page - Nom du site</title>
  </head>
  <body>

    <!--
      code de la page
     -->

    <!-- Script en version es6 module et nomodule pour les navigateurs le ne supportant pas -->
    <script type="module" src="dsfr.module.min.js"></script>
    <script type="text/javascript" nomodule src="dsfr.nomodule.min.js"></script>
  </body>
</html>

Les CSS

Afin d’inclure la totalitĂ© des composants et des styles du systĂšme de design, il est nĂ©cessaire d’inclure la feuille de style dist/dsfr.min.css. Les classes utilitaires, notamment les icĂŽnes, sont disponibles dans un fichier Ă  part dans dist/utility/utility.scss.

<html>
  <head>
    <link rel="stylesheet" href="dsfr.min.css">
    <link rel="stylesheet" href="utility/utility.min.css">

Il est aussi possible d’importer uniquement ce que l’on souhaite utiliser. En effet, pour ajouter un composant seul il suffit d’importer son CSS ainsi que celui de chacune des dĂ©pendances de ce composant. Ces dĂ©pendances sont listĂ©s dans le README.md de chaque package.

<html>
  <head>
    <link rel="stylesheet" href="core.min.css">
    <link rel="stylesheet" href="link.min.css">
    <link rel="stylesheet" href="button.min.css">

Le Javascript

L’ensemble du code javascript nĂ©cessaire au bon fonctionnement du DS se trouve dans deux fichiers dist/dsfr.module.min.js et dist/dsfr.nomodule.min.js.

Le fichier dsfr.module.min.js utilise les modules javascript natifs - sa balise script d’appel doit avoir l’attribut type=”module”. Le fichier dsfr.nomodule.min.js est utilisĂ© par les anciens navigateurs ne supportant pas les modules javascript (es6) - sa balise script doit contenir l’attribut nomodule. Il est impĂ©ratif d’appeler les deux fichiers javascript afin que le code s’exĂ©cute correctement sur l’ensemble des navigateurs supportĂ©s :

    <script type="module" src="dsfr.module.min.js"></script>
    <script type="text/javascript" nomodule src="dsfr.nomodule.min.js"></script>
  </body>
</html>

NB : Le package analytics est gĂ©rĂ© indĂ©pendament et doit ĂȘtre ajoutĂ© aprĂšs le js du dsfr. Voir documention analytics

De la mĂȘme façon que le CSS il est possible d’importer uniquement le JS des composants utilisĂ©s (et leurs dĂ©pendances).

IcĂŽnes

Les icĂŽnes sont stockĂ©es dans dist/icons et classĂ©es par catĂ©gories. Le design systĂšme utilise principalement des icĂŽnes de la librairie remixIcon. Il existe aussi des icĂŽnes personnalisĂ©es, celles-ci sont prĂ©fixĂ©e par “fr--”.

Afin d’utiliser ces icĂŽnes, des classes utilitaires CSS sont associĂ©s Ă  chaque icĂŽne. Par ex. : fr-icon-error-fill Ces classes sont disponible dans utility qui importe dist/utility/icons/icons.css. Il est aussi possible d’importer uniquement certaines catĂ©gories d’icĂŽnes afin d’optimiser le poids. Par ex. : dist/utility/icons/system/system.css pour les icĂŽnes “system”.

Pour plus d’informations : Voir la documentation des icînes.

Favicon

La documentation des favicons détaille la façon de les implémenter dans vos pages.

Fonctionnement

BEM

Le DSFR utilise la méthodologie BEM (Block - Element - Modifier) comme convention de nommage des classes CSS. Elle permet aux développeurs une meilleure compréhension de la relation entre HTML et CSS dans un projet donné.

Selon cette mĂ©thodologie, un block reprĂ©sente le plus haut niveau d'abstraction d'un nouveau composant, par exemple .parent. Des Ă©lĂ©ments (ou enfants), peuvent ĂȘtre placĂ©s Ă  l'intĂ©rieur de ces blocks, et sont dĂ©signĂ©s par deux underscore prĂ©cĂ©dĂ©s du nom du block : .parent__element. Les modifiers quant Ă  eux, servent Ă  manipuler les blocs, de maniĂšre Ă  les styliser de maniĂšre indĂ©pendante en s'assurant de ne pas induire de changement Ă  des blocks sans aucun rapport avec celui-ci. Ils sont notĂ©s Ă  l'aide de deux tirets prĂ©cĂ©dĂ©s du nom du block comme suit : .parent--modifier.

Utilisation

Le DSFR est constituĂ© de diffĂ©rents composants, que vous pouvez utiliser indĂ©pendamment au sein de votre projet. Une documentation spĂ©cifique est prĂ©vue pour chaque composant, prĂ©cisant ses principes d’utilisation, ainsi que les snippets de code HTML Ă  utiliser pour votre projet.

🙌 Vous ĂȘtes maintenant prĂȘt(e) Ă  utiliser le DSFR.

Contribution

Le processus de contribution est détaillé sur la page CONTRIBUTING.md.

Documentation

Documentation développeurs

dsfr's People

Contributors

keryans avatar lab9fr avatar zellerbaptiste avatar jchourdeaux avatar cpelletier avatar zhell avatar rafaelbucher avatar mlbiche avatar bzg avatar emillumine avatar damienguezou avatar comxd avatar tony-tran avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.