Le package core est utilisé comme fondation du Design System, il contient plusieurs éléments fondamentaux.
### Typographie
Les typographies Marianne® et Spectral sont les typographies officielles de la charte de l'État. Leur usage crée une cohérence entre les interfaces et offre une expérience positive à l’utilisateur. Leur respect renforce également la reconnaissance de la parole de l’État.
### Icônes
Les icônes fonctionnelles sont des symboles visuels qui accompagnent l’utilisateur dans ses actions et qui aident à sa compréhension de l’interface.
### Icônes de favoris - Favicon
L’icône de favoris est un petit icône associé à un site web. Il permet à l’utilisateur de repérer qu’il se trouve sur un site de l'état.
### Medias
Les médias désignent vos contenus photos et vidéos. Lorsqu’ils sont intégré à une page de contenu, il est recommandé de suivre les règles décrites ci-dessous.
### Grille
La grille proposée par le design system vous permet de structurer vos pages et vos contenus simplement.
<h1>Test de titre H1</h1>
<h2>Test de titre H2</h2>
<h3>Test de titre H3</h3>
<h4>Test de titre H4</h4>
<h5>Test de titre H5</h5>
<h6>Test de titre H6</h6>
Lorem ipsum dolor sit amet, consectetur adipiscing, lien interne incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p>Lorem [...] adipiscing, <a title="titre lien interne" href="#" target="_self">lien interne</a> incididunt, [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, lien externe - nouvelle fenêtre incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p>Lorem [...] adipiscing, <a title="titre lien externe - nouvelle fenêtre" href="#" target="_blank" rel="noopener">lien externe - nouvelle fenêtre</a> incididunt, [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, lien externe - nouvelle fenêtre incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p>Lorem [...] adipiscing, <a class="fr-raw-link" title="titre lien externe - nouvelle fenêtre" href="#" target="_blank" rel="noopener">lien externe - nouvelle fenêtre</a> incididunt, [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, lien externe - nouvelle fenêtre incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p>Lorem [...] adipiscing, <a class="fr-reset-link" title="titre lien externe - nouvelle fenêtre" href="#" target="_blank" rel="noopener">lien externe - nouvelle fenêtre</a> incididunt, [...] elit ut.</p>
<ul>
<li>Item list
<ul>
<li>Item list
<ul>
<li>Item list</li>
<li>Item list</li>
<li>Item list</li>
</ul>
</li>
<li>Item list</li>
<li>Item list</li>
</ul>
</li>
<li>Lorem [...] elit ut.</li>
<li>Item list</li>
</ul>
<ol>
<li>Item list
<ol>
<li>Item list
<ol>
<li>Item list</li>
<li>Item list</li>
<li>Item list</li>
</ol>
</li>
<li>Lorem [...] elit ut.</li>
<li>Item list</li>
</ol>
</li>
<li>Item list</li>
<li>Item list</li>
</ol>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p>Lorem [...] elit ut.</p>
<hr>
<p>Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, un texte avec un exposant incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p>Lorem [...] adipiscing, un texte avec un <sup>exposant</sup> incididunt, [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, un texte avec un indice incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p>Lorem [...] adipiscing, un texte avec un <sub>indice</sub> incididunt, [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p>Lorem [...] elit ut.</p>
<span class="fr-hr"></span>
<p>Lorem [...] elit ut.</p>
<span class="fr-hr fr-hr--sm"></span>
<p>Lorem [...] elit ut.</p>
<hr class="fr-hr--sm">
<p>Lorem [...] elit ut.</p>
<h5 class="fr-h1">Test de titre h5 avec class fr-h1</h5>
<h5 class="fr-h2">Test de titre h5 avec class fr-h2</h5>
<h5 class="fr-h3">Test de titre h5 avec class fr-h3</h5>
<h5 class="fr-h4">Test de titre h5 avec class fr-h4</h5>
<h5 class="fr-h5">Test de titre h5 avec class fr-h5</h5>
<h5 class="fr-h6">Test de titre h5 avec class fr-h6</h5>
<h5 class="fr-display--xl">Test de titre h5 avec class fr-display-xl</h5>
<h5 class="fr-display--lg">Test de titre h5 avec class fr-display-lg</h5>
<h5 class="fr-display--md">Test de titre h5 avec class fr-display-md</h5>
<h5 class="fr-display--sm">Test de titre h5 avec class fr-display-sm</h5>
<h5 class="fr-display--xs">Test de titre h5 avec class fr-display-xs</h5>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--lead">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--lg">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--md">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--sm">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--xs">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--light">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--regular">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--bold">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--regular fr-text--alt">Lorem [...] elit ut.</p>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<p class="fr-text--heavy fr-text--alt">Lorem [...] elit ut.</p>
<span class="fr-icon-warning-fill fr-icon--lg" aria-hidden="true"></span>
<span class="fr-icon-warning-fill" aria-hidden="true"></span>
<span class="fr-icon-warning-fill fr-icon--sm" aria-hidden="true"></span>
<meta name="theme-color" content="#000091"><!-- Défini la couleur de thème du navigateur (Safari/Android) -->
<link rel="apple-touch-icon" href="../../dist/favicon/apple-touch-icon.png"><!-- 180×180 -->
<link rel="icon" href="../../dist/favicon/favicon.svg" type="image/svg+xml">
<!-- si favicon.ico peut etre placé à la racine du serveur, retirer la ligne ci-dessous -->
<link rel="shortcut icon" href="../../dist/favicon/favicon.ico" type="image/x-icon"><!-- 32×32 -->
<link rel="manifest" href="../../dist/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 -->
L'icône de favori (favicon) du design système est disponible sous différents formats et tailles pour correspondre aux différents supports.
<div>
<img class="fr-responsive-img" src="../../example/img/placeholder.16x9.png" alt="[À MODIFIER - vide ou texte alternatif de l’image]" />
<!-- L’alternative de l’image (attribut alt) doit toujours être présente, sa valeur peut-être vide (image n’apportant pas de sens supplémentaire au contexte) ou non (porteuse de texte ou apportant du sens) selon votre contexte -->
</div>
<div>
<img class="fr-responsive-img fr-responsive-img--32x9" src="../../example/img/placeholder.16x9.png" alt="[À MODIFIER - vide ou texte alternatif de l’image]" />
<!-- L’alternative de l’image (attribut alt) doit toujours être présente, sa valeur peut-être vide (image n’apportant pas de sens supplémentaire au contexte) ou non (porteuse de texte ou apportant du sens) selon votre contexte -->
</div>
<div>
<img class="fr-responsive-img fr-responsive-img--16x9" src="../../example/img/placeholder.16x9.png" alt="[À MODIFIER - vide ou texte alternatif de l’image]" />
<!-- L’alternative de l’image (attribut alt) doit toujours être présente, sa valeur peut-être vide (image n’apportant pas de sens supplémentaire au contexte) ou non (porteuse de texte ou apportant du sens) selon votre contexte -->
</div>
<div>
<img class="fr-responsive-img fr-responsive-img--3x2" src="../../example/img/placeholder.16x9.png" alt="[À MODIFIER - vide ou texte alternatif de l’image]" />
<!-- L’alternative de l’image (attribut alt) doit toujours être présente, sa valeur peut-être vide (image n’apportant pas de sens supplémentaire au contexte) ou non (porteuse de texte ou apportant du sens) selon votre contexte -->
</div>
<div>
<img class="fr-responsive-img fr-responsive-img--4x3" src="../../example/img/placeholder.16x9.png" alt="[À MODIFIER - vide ou texte alternatif de l’image]" />
<!-- L’alternative de l’image (attribut alt) doit toujours être présente, sa valeur peut-être vide (image n’apportant pas de sens supplémentaire au contexte) ou non (porteuse de texte ou apportant du sens) selon votre contexte -->
</div>
<div>
<img class="fr-responsive-img fr-responsive-img--1x1" src="../../example/img/placeholder.16x9.png" alt="[À MODIFIER - vide ou texte alternatif de l’image]" />
<!-- L’alternative de l’image (attribut alt) doit toujours être présente, sa valeur peut-être vide (image n’apportant pas de sens supplémentaire au contexte) ou non (porteuse de texte ou apportant du sens) selon votre contexte -->
</div>
<div>
<img class="fr-responsive-img fr-responsive-img--3x4" src="../../example/img/placeholder.16x9.png" alt="[À MODIFIER - vide ou texte alternatif de l’image]" />
<!-- L’alternative de l’image (attribut alt) doit toujours être présente, sa valeur peut-être vide (image n’apportant pas de sens supplémentaire au contexte) ou non (porteuse de texte ou apportant du sens) selon votre contexte -->
</div>
<div>
<img class="fr-responsive-img fr-responsive-img--2x3" src="../../example/img/placeholder.16x9.png" alt="[À MODIFIER - vide ou texte alternatif de l’image]" />
<!-- L’alternative de l’image (attribut alt) doit toujours être présente, sa valeur peut-être vide (image n’apportant pas de sens supplémentaire au contexte) ou non (porteuse de texte ou apportant du sens) selon votre contexte -->
</div>
<div class="fr-responsive-vid">
<iframe title="Titre de l'iframe" class="fr-responsive-vid__player" src="https://www.youtube.com/embed/HyirpmPL43I" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="fr-responsive-vid fr-responsive-vid--4x3">
<iframe title="Titre de l'iframe" class="fr-responsive-vid__player" src="https://www.youtube.com/embed/HyirpmPL43I" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="fr-responsive-vid fr-responsive-vid--1x1">
<iframe title="Titre de l'iframe" class="fr-responsive-vid__player" src="https://www.youtube.com/embed/HyirpmPL43I" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="fr-container">
<div class="fr-grid-row">
<div class="fr-col-12">
<div class="col-demo">Lorem [...] elit ut.</div>
</div>
<div class="fr-col">
<div class="col-demo">col</div>
</div>
<div class="fr-col">
<div class="col-demo">col</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row">
<div class="fr-col">
<div class="col-demo">1/4</div>
</div>
<div class="fr-col">
<div class="col-demo">1/4</div>
</div>
<div class="fr-col">
<div class="col-demo">1/4</div>
</div>
<div class="fr-col">
<div class="col-demo">1/4</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row">
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col-12">
<div class="col-demo">Lorem [...] elit ut.</div>
</div>
<div class="fr-col">
<div class="col-demo">col</div>
</div>
<div class="fr-col">
<div class="col-demo">col</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col">
<div class="col-demo">1/4</div>
</div>
<div class="fr-col">
<div class="col-demo">1/4</div>
</div>
<div class="fr-col">
<div class="col-demo">1/4</div>
</div>
<div class="fr-col">
<div class="col-demo">1/4</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
<div class="fr-col">
<div class="col-demo">1/6</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row">
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-2">
<div class="col-demo">2/12</div>
</div>
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
<div class="fr-col-5">
<div class="col-demo">5/12</div>
</div>
<div class="fr-col-7">
<div class="col-demo">7/12</div>
</div>
<div class="fr-col-9">
<div class="col-demo">9/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-5">
<div class="col-demo">5/12</div>
</div>
<div class="fr-col-5">
<div class="col-demo">5/12</div>
</div>
<div class="fr-col-2">
<div class="col-demo">2/12</div>
</div>
<div class="fr-col-12">
<div class="col-demo">12/12</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-2">
<div class="col-demo">2/12</div>
</div>
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
<div class="fr-col-5">
<div class="col-demo">5/12</div>
</div>
<div class="fr-col-7">
<div class="col-demo">7/12</div>
</div>
<div class="fr-col-9">
<div class="col-demo">9/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-5">
<div class="col-demo">5/12</div>
</div>
<div class="fr-col-5">
<div class="col-demo">5/12</div>
</div>
<div class="fr-col-2">
<div class="col-demo">2/12</div>
</div>
<div class="fr-col-12">
<div class="col-demo">12/12</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row">
<div class="fr-col-8">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col-6">
<div class="col-demo">6/12</div>
</div>
<div class="fr-col-6">
<div class="col-demo">6/12</div>
</div>
</div>
</div>
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-6">
<div class="fr-grid-row">
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col-8">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col-6">
<div class="col-demo">6/12</div>
</div>
<div class="fr-col-6">
<div class="col-demo">6/12</div>
</div>
</div>
</div>
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-6">
<div class="fr-grid-row">
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
<div class="fr-col-4">
<div class="col-demo">4/12</div>
</div>
</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row--top fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">align top</div>
</div>
<div class="fr-col-3">
<div class="col-demo">Lorem [...] elit ut.</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align top</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align top</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row--bottom fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">align bottom</div>
</div>
<div class="fr-col-3">
<div class="col-demo">Lorem [...] elit ut.</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align bottom</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align bottom</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row--middle fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">align middle</div>
</div>
<div class="fr-col-3">
<div class="col-demo">Lorem [...] elit ut.</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align middle</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align middle</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">Lorem [...] elit ut.</div>
</div>
<div class="fr-col--top fr-col-3">
<div class="col-demo">align top</div>
</div>
<div class="fr-col--middle fr-col-3">
<div class="col-demo">align middle</div>
</div>
<div class="fr-col--bottom fr-col-3">
<div class="col-demo">align bottom</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row--left fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">align left</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align left</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row--right fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">align left</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align left</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row--center fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">align center</div>
</div>
<div class="fr-col-3">
<div class="col-demo">align center</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-3 fr-col-offset-3">
<div class="col-demo">3/12</div>
</div>
<div class="fr-col-3">
<div class="col-demo">3/12</div>
</div>
</div>
</div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters">
<div class="fr-col-12 fr-col-sm-10 fr-col-md-8 fr-col-lg-6 fr-col-xl-4">
<div class="col-demo">12 / sm-10 / md-8 / lg-6 / xl-4</div>
</div>
</div>
</div>
<div class="fr-container--fluid">
<div class="fr-grid-row">
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
<div class="fr-col-1">
<div class="col-demo">1/12</div>
</div>
</div>
</div>
<div>
<!--
un bouton toggle (qui ouvre et qui ferme) doit avoir les attributs aria-expanded (qui définit son état) et l'attribut aria-controls (dont l'id détermine l'élément sur lequel agira le bouton.
un bouton reduce (qui ne peut que fermer) doit avoir uniquement l'attribut aria-controls.
-->
<div>
<button class="fr-mb-2v fr-btn" aria-expanded="true" aria-controls="collapsed-0">
Toggle
</button>
<ul class="fr-collapse" id="collapsed-0" data-fr-group="group-id">
<li>list item</li>
<li>list item</li>
<li>
<button class="fr-mb-2v fr-btn" aria-expanded="false" aria-controls="collapsed-0-nested">
Toggle nested
</button>
<ul class="fr-collapse" id="collapsed-0-nested">
<li>list nested item</li>
<li>list nested item</li>
<li>list nested item</li>
</ul>
</li>
<li>
<button class="fr-mb-2v fr-btn" aria-controls="collapsed-0">
Close
</button>
</li>
</ul>
</div>
<div>
<button class="fr-mb-2v fr-btn" aria-expanded="false" aria-controls="collapsed-1">
Toggle
</button>
<ul class="fr-collapse" id="collapsed-1" data-fr-group="group-id">
<li>list item</li>
<li>list item</li>
<li>
<button class="fr-mb-2v fr-btn" aria-expanded="false" aria-controls="collapsed-1-nested">
Toggle nested
</button>
<ul class="fr-collapse" id="collapsed-1-nested">
<li>list nested item</li>
<li>list nested item</li>
<li>list nested item</li>
</ul>
</li>
<li>
<button class="fr-mb-2v fr-btn" aria-controls="collapsed-1">
Close
</button>
</li>
</ul>
</div>
<div>
<button class="fr-mb-2v fr-btn" aria-expanded="false" aria-controls="collapsed-2">
Toggle
</button>
<ul class="fr-collapse" id="collapsed-2" data-fr-group="group-id">
<li>list item</li>
<li>list item</li>
<li>
<button class="fr-mb-2v fr-btn" aria-expanded="false" aria-controls="collapsed-2-nested">
Toggle nested
</button>
<ul class="fr-collapse" id="collapsed-2-nested">
<li>list nested item</li>
<li>list nested item</li>
<li>list nested item</li>
</ul>
</li>
<li>
<button class="fr-mb-2v fr-btn" aria-controls="collapsed-2">
Close
</button>
</li>
</ul>
</div>
</div>
Des classes utilitaires sont disponibles pour gérer les marges intérieures et extérieures d'un élément html.
Celles-ci suivent la structure suivante (entre crochets les valeurs, facultatives, possibles):
- Le prefix : 'fr-',
- la lettre 'm' pour margin ou 'p' pour padding,
- l'orientation avec 't', 'r', 'b', 'l' (top, right, bottom, left) ou 'x', 'y' (horizontal, vertical),
- un séparateur : '-',
- le token d'espacement (nb: le signe '-' des nombres négatifs est remplacé par la lettre 'n', et 0 n'a pas d'unité 'v')
Classe | Description | Exemple d'espacement | Exemple de classe |
---|---|---|---|
fr-m- | Margin |
|
fr-m-2v |
fr-mt- | Margin top |
|
fr-mt-2v |
fr-mr- | Margin right |
|
fr-mr-2v |
fr-mb- | Margin bottom |
|
fr-mb-2v |
fr-ml- | Margin left |
|
fr-ml-2v |
fr-mx- | Margin left & right |
|
fr-mx-2v |
fr-my- | Margin top & bottom |
|
fr-my-2v |
fr-p- | Padding |
|
fr-p-2v |
fr-pt- | Padding top |
|
fr-pt-2v |
fr-pr- | Padding right |
|
fr-pr-2v |
fr-pb- | Padding bottom |
|
fr-pb-2v |
fr-pl- | Padding left |
|
fr-pl-2v |
fr-px- | Padding left & right |
|
fr-px-2v |
fr-py- | Padding top & bottom |
|
fr-py-2v |
Il est possible de définir le breakpoint à partir du quel on applique l'espacement.
Il suffit d'ajouter à la classe le breakpoint (md) avant la valeur du token. ex: fr-p-md-4v
Pour adapter les espacements à la taille de l'écran, on peut ainsi combiner les classes en partant du mobile puis en surchargeant en md
<button class="fr-px-4v fr-px-md-16v fr-btn">
4v en mobile / 16v en md
</button>
Token | rem | px | Exemple d'espacement | Exemple de classe |
---|---|---|---|---|
n8v | -2 | -32 |
1
2
|
fr-ml-n8v |
n7v | -1.75 | -28 |
1
2
|
fr-ml-n7v |
n6v | -1.5 | -24 |
1
2
|
fr-ml-n6v |
n5v | -1.25 | -20 |
1
2
|
fr-ml-n5v |
n4v | -1 | -16 |
1
2
|
fr-ml-n4v |
n3v | -0.75 | -12 |
1
2
|
fr-ml-n3v |
n2v | -0.5 | -8 |
1
2
|
fr-ml-n2v |
n1-5v | -0.375 | -6 |
1
2
|
fr-ml-n1-5v |
n1v | -0.25 | -4 |
1
2
|
fr-ml-n1v |
n0-5v | -0.125 | -2 |
1
2
|
fr-ml-n0-5v |
0 | 0 | 0 |
1
2
|
fr-ml-0 |
0-5v | 0.125 | 2 |
1
2
|
fr-ml-0-5v |
1v | 0.25 | 4 |
1
2
|
fr-ml-1v |
1-5v | 0.375 | 6 |
1
2
|
fr-ml-1-5v |
2v | 0.5 | 8 |
1
2
|
fr-ml-2v |
3v | 0.75 | 12 |
1
2
|
fr-ml-3v |
4v | 1 | 16 |
1
2
|
fr-ml-4v |
5v | 1.25 | 20 |
1
2
|
fr-ml-5v |
6v | 1.5 | 24 |
1
2
|
fr-ml-6v |
7v | 1.75 | 28 |
1
2
|
fr-ml-7v |
8v | 2 | 32 |
1
2
|
fr-ml-8v |
9v | 2.25 | 36 |
1
2
|
fr-ml-9v |
10v | 2.5 | 40 |
1
2
|
fr-ml-10v |
11v | 2.75 | 44 |
1
2
|
fr-ml-11v |
12v | 3 | 48 |
1
2
|
fr-ml-12v |
13v | 3.25 | 52 |
1
2
|
fr-ml-13v |
14v | 3.5 | 56 |
1
2
|
fr-ml-14v |
15v | 3.75 | 60 |
1
2
|
fr-ml-15v |
16v | 4 | 64 |
1
2
|
fr-ml-16v |
17v | 4.25 | 68 |
1
2
|
fr-ml-17v |
18v | 4.5 | 72 |
1
2
|
fr-ml-18v |
19v | 4.75 | 76 |
1
2
|
fr-ml-19v |
20v | 5 | 80 |
1
2
|
fr-ml-20v |
21v | 5.25 | 84 |
1
2
|
fr-ml-21v |
22v | 5.5 | 88 |
1
2
|
fr-ml-22v |
23v | 5.75 | 92 |
1
2
|
fr-ml-23v |
24v | 6 | 96 |
1
2
|
fr-ml-24v |
25v | 6.25 | 100 |
1
2
|
fr-ml-25v |
26v | 6.5 | 104 |
1
2
|
fr-ml-26v |
27v | 6.75 | 108 |
1
2
|
fr-ml-27v |
28v | 7 | 112 |
1
2
|
fr-ml-28v |
29v | 7.25 | 116 |
1
2
|
fr-ml-29v |
30v | 7.5 | 120 |
1
2
|
fr-ml-30v |
31v | 7.75 | 124 |
1
2
|
fr-ml-31v |
32v | 8 | 128 |
1
2
|
fr-ml-32v |
auto | NaN | NaN |
1
2
|
fr-ml-auto |
Regarder avec l'inspecteur les block de textes cachés grâce à ces utilitaires
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<div class="fr-sr-only">
<p>Lorem [...] elit ut.</p>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<div class="fr-sr-only-lg">
<p>Lorem [...] elit ut.</p>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<div class="fr-hidden">
<p>Lorem [...] elit ut.</p>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<div class="fr-hidden-lg">
<p>Lorem [...] elit ut.</p>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing, incididunt, ut labore et dolore magna aliqua. Vitae sapien pellentesque habitant morbi tristique senectus et. Diam maecenas sed enim ut. Accumsan lacus vel facilisis volutpat est. Ut aliquam purus sit amet luctus. Lorem ipsum dolor sit amet consectetur adipiscing elit ut.
<div class="fr-hidden fr-unhidden-lg">
<p>Lorem [...] elit ut.</p>
</div>