Services publics et administration · Nouvelle ressource

Système de design USWDS.

Associez les tokens d’espacement de USWDS, les rôles de thème, les tableaux sémantiques et les accordéons natifs dans une comparaison d’offres consultable.

Guide OpenDesign8 chapitres23 entrées de référenceGuide de l’application d’origine
01

Aperçu de l’interface du système de design USWDS

Recherchez et filtrez des enregistrements fictifs, récupérez-vous lorsqu’aucun résultat n’est trouvé et dépliez les panneaux natifs des exigences.

Comparaison des opportunités de rechercheOuvrir l’exemple complet
USWDS 3.14.0 CSS natif et accordéon JavaScript ; surcharge explicite de la police système pour l’étude et filtrage local personnalisé. · Référence de mise en œuvre
02

Référence du système de design USWDS

Distribution native des composants USWDS 3.14.0. Jetons par défaut tirés de la documentation officielle ; substitutions de polices de l’aperçu choisies explicitement pour ce projet local.

Unités d’espacement

Source
Nom / règleValeur / configurationUtilisation
0.5 / 054pxEspacement par demi-unités et syntaxe des utilitaires
18pxUnité d’espacement de base
1.5 / 10512pxEspacement intermédiaire
216pxMarge intérieure compacte
324pxEspacement entre contenus associés
432pxEspacement des sections
540pxSéparation plus importante
648pxGrand espacement
tablet640pxJeton de largeur nommé
desktop1024pxJeton de largeur nommé

Correspondance typographique par défaut

Source
Nom / règleValeur / configurationUtilisation
sanssource-sans-proJeton de famille par type
serifmerriweatherJeton de famille par type
body / uisansCorrespondance par rôle
headingserifCorrespondance par rôle
codemono → roboto-monoCorrespondance du rôle de code

Couleurs du thème par défaut

Source
Nom / règleValeur / configurationUtilisation
primaryblue-60v / #005ea2Alias principal
primary-lighterblue-10 / #d9e8f6Nuance complémentaire du primaire
primary-darkblue-warm-70v / #1a4480Alias principal plus foncé
inkgray-90 / #1b1b1bAlias du texte principal

Contrats des composants

Source
Nom / règleValeur / configurationUtilisation
aria-controlsPanel IDAssocie chaque bouton d’accordéon à son contenu.
aria-expandedtrue / falseLe JavaScript natif gère l’état ouvert.
data-allow-multipleAccordion root attributePermet d’ouvrir plusieurs panneaux indépendamment.
usa-accordion--borderedRoot modifierFournit la variante avec bordure.
03

Guide complet du système de design USWDS

Un guide pratique pour choisir, appliquer et évaluer ce système dans une interface réelle.

DESIGN-uswds.md

Des conseils complets, un point de départ pour la mise en œuvre et des liens vers les sources.

Télécharger le guide

USWDS Foundation configurable : système de design

Les jetons par défaut constituent une configuration de départ

USWDS distingue les jetons du système, les paramètres du thème du projet, les classes utilitaires et les composants. La référence ci-dessous répertorie les choix de thème par défaut de la documentation actuelle. Un programme fédéral peut configurer d’autres rôles typographiques ou alias de couleur sans remplacer tous les composants.

Extrait de ce guide OpenDesign

L’aperçu est une comparaison indépendante de possibilités de recherche, qui utilise 3.14.0 CSS et l’accordéon JavaScript. Il ne comprend ni la bannière gouvernementale ni les marques d’identité visuelle. Les noms et étapes des programmes sont fictifs, et le filtrage s’effectue entièrement dans le navigateur.

Consultez la spécification associée

Espacement et jetons de thème du système de design USWDS

Tenez compte de l’unité, pas du chiffre

Une unité d’espacement USWDS vaut 8px : units(2) correspond à 16px, tandis que units(3) correspond à 24px. Les jetons en demi-unités permettent de définir des espacements plus petits, et la syntaxe des utilitaires utilise 05 pour une demi-unité. Un utilitaire margin-2 ne signifie pas une marge de deux pixels.

L’échelle comprend également des largeurs nommées, comme tablette et ordinateur. Ces noms sont des jetons réutilisables, et non une obligation de repenser chaque page pour chaque largeur. La comparaison utilise grid-container autour du contenu et une zone défilante dédiée au tableau.

scss
@use "uswds-core" as *;
.opportunity-meta {
  padding: units(2);
  margin-bottom: units(3);
}

Référence du code

Consultez la spécification associée

Polices et rôles du système de design USWDS

Un rôle peut changer sans qu’il soit nécessaire de renommer les composants

Le jeton sans-serif par défaut correspond à Source Sans Pro, et le jeton serif à Merriweather. Les rôles body et UI correspondent au sans-serif ; le rôle heading, au serif. La fonction family("body") résout cette chaîne. Dans la documentation d’un projet, distinguez le rôle sémantique de la famille de polices finale.

L’aperçu local utilise explicitement Helvetica/Arial pour le corps du texte et Georgia pour les titres, afin d’éviter tout téléchargement de polices. Il s’agit d’une surcharge propre à cette étude, et non de l’identité typographique standard de USWDS. Dans une version de production, configurez ces rôles via les paramètres uswds-core ou copiez les fichiers de polices distribués.

scss
@use "uswds-core" with (
  $theme-font-type-sans: "helvetica",
  $theme-font-type-serif: "georgia",
  $theme-font-role-body: "sans",
  $theme-font-role-heading: "serif"
);

Référence du code

Consultez la spécification associée

Alias de couleur du thème du système de design USWDS

Associez les alias à leur rôle

L’alias primary par défaut correspond à blue-60v, #005ea2. Primary-dark correspond à blue-warm-70v, #1a4480 ; ink correspond à gray-90, #1b1b1b. Il s’agit de valeurs de thème, et non d’une affirmation selon laquelle tous les sites USWDS doivent utiliser la même couleur de marque.

Utilisez l’alias sémantique pour une action ou un traitement de titre, et un jeton de couleur système uniquement lorsque c’est bien le choix de conception retenu. Remplacer un alias primary dans les paramètres est plus contrôlé que de remplacer chaque chaîne hexadécimale correspondante dans CSS compilé.

Consultez la spécification associée

Lignes d’offres comparables du système de design USWDS

Préservez la sémantique du tableau

L’exemple utilise une légende, des en-têtes de colonne avec scope="col" et un nom d’offre avec scope="row". Il s’agit d’un tableau, car les lecteurs comparent les mêmes champs de thème et d’étape entre plusieurs entrées. Ces relations restent accessibles lorsque la zone défile.

Le conteneur défilant possède tabindex="0" afin que les utilisateurs du clavier puissent y accéder. Il confine les données trop larges à cette zone, au lieu d’élargir tout le document. L’aperçu contient des cellules de texte ordinaires ; si des données de programme manquaient, il faudrait prévoir un état de contenu explicite plutôt que d’inventer un nombre.

Consultez la spécification associée

Le tri est une amélioration distincte

USWDS permet de trier les en-têtes grâce à data-sortable. Un tableau triable nécessite également une zone usa-table__announcement-region avec aria-live="polite". Pour les valeurs numériques, data-sort-value peut être nécessaire afin qu’un montant formaté soit trié comme une valeur plutôt que par ordre alphabétique. Cette comparaison n’active pas le tri, car le filtre par thème sur trois lignes est la démonstration souhaitée.

Consultez la spécification associée

Les exigences sous forme de panneaux dépliables dans le système de design USWDS

Reliez les identifiants du bouton et du panneau

Chaque usa-accordion__button possède un attribut aria-controls qui pointe vers le usa-accordion__content associé. Le composant natif JavaScript met à jour aria-expanded et la visibilité. Le modificateur de bordure change l’encadrement ; data-allow-multiple permet de laisser plusieurs sections ouvertes.

Le bouton est placé dans un titre afin que la structure du contenu reste compréhensible. Les exigences nécessaires pour déterminer si un programme est pertinent doivent rester visibles au-dessus du panneau dépliable. Ici, les panneaux contiennent des notes de préparation complémentaires et une explication du jeu de données fictif.

  • Le titre décrit le sujet du panneau.
  • Le bouton porte l’état déplié et l’identifiant cible.
  • Le panneau conserve le même identifiant lorsque sa visibilité change.

Consultez la spécification associée

Installer l’arborescence complète des ressources du système de design USWDS

Préservez les chemins utilisés par CSS compilé

Installez @uswds/[email protected] et copiez son répertoire dist sans regrouper css, js, img et fonts dans un seul dossier. La feuille de style utilise des chemins relatifs vers les icônes et les polices. Sinon, une page peut sembler en partie correcte tout en étant dépourvue des symboles des panneaux dépliables ou des polices.

Chargez uswds-init.min.js dans l’en-tête, puis la feuille de style, et enfin uswds.min.js après le balisage du corps. La bibliothèque incluse ajoute le comportement de l’accordéon. Le champ de recherche et le filtre par thème ci-dessous reposent sur une logique personnalisée de l’application ; ils n’interrogent aucun service de recherche à distance.

Consultez la spécification associée

Filtrage et récupération dans le système de design USWDS

Une recherche doit présenter son résultat

Les styles natifs des éléments label, input, select et button mettent les commandes en forme ; l’application compare la recherche et le thème sélectionné aux trois entrées fictives. Le nombre de résultats se trouve dans une zone dynamique polie. Si aucun résultat ne correspond, un message explicatif et une action de réinitialisation s’affichent, tandis que la recherche saisie est conservée.

La démonstration distingue volontairement la découverte d’une possibilité de la candidature. Ouvrir le contenu préparatoire ne crée pas de brouillon et ne marque aucune exigence comme remplie. Une véritable demande de financement nécessiterait sa propre politique de programme, son système d’authentification et un état de transaction persistant.

  1. Filtrez sur « Environnement » et examinez les possibilités restantes.
  2. Recherchez une expression sans résultat, puis utilisez « Effacer les filtres ».
  3. Ouvrez les deux panneaux de préparation et vérifiez que chacun possède son propre état de développement.

Consultez la spécification associée

Exemples de composants du système de design USWDS

Accordéon de préparation complémentaire

Un élément de divulgation natif USWDS, avec un lien explicite entre le bouton et le panneau.

html
<div class="usa-accordion usa-accordion--bordered" data-allow-multiple>
  <h3 class="usa-accordion__heading">
    <button type="button" class="usa-accordion__button"
      aria-expanded="false" aria-controls="preparation">Before you prepare a draft</button>
  </h3>
  <div id="preparation" class="usa-accordion__content usa-prose" hidden>
    <p>This fictional opportunity asks for a project summary and a named contact.</p>
  </div>
</div>

Référence du code

Tableau comparatif des possibilités

La légende et les en-têtes de ligne et de colonne préservent les relations de comparaison.

html
<div class="usa-table-container--scrollable" tabindex="0">
  <table class="usa-table usa-table--borderless">
    <caption>Illustrative research opportunities</caption>
    <thead><tr><th scope="col">Opportunity</th><th scope="col">Topic</th><th scope="col">Stage</th></tr></thead>
    <tbody><tr><th scope="row">Community water study</th><td>Environment</td><td>Example draft</td></tr></tbody>
  </table>
</div>

Référence du code

Exemple autonome complet

Le document complet comprend sa mise en page, ses contrôles et son initialisation. Extrayez l’archive d’exemple liée pour obtenir les ressources de fournisseur avec leurs chemins relatifs exacts, puis servez le contenu via HTTP.

html
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Research opportunities — OpenDesign study</title><script src="vendor/uswds-3.14.0/uswds-init.min.js"></script><link rel="stylesheet" href="vendor/uswds-3.14.0/css/uswds.min.css"><style>body,body *,body *:before,body *:after{font-family:Helvetica,Arial,sans-serif!important}h1,h2{font-family:Georgia,serif!important}body{color:#1b1b1b;margin:0}[hidden]{display:none!important}.study-head{background:#d9e8f6;padding:16px 0;border-bottom:4px solid #005ea2}.study-head p{margin:0}.study-form{display:flex;gap:24px;align-items:end;flex-wrap:wrap}.study-form>div{flex:1;min-width:200px}.study-form .usa-input,.study-form .usa-select{max-width:none}.usa-table{width:100%}.study-main{padding-top:32px;padding-bottom:48px}.usa-table th{min-width:120px}#count{margin-top:24px}.study-note{border-top:1px solid #a9aeb1;margin-top:32px;padding-top:16px;line-height:1.5}</style></head><body><header class="study-head"><div class="grid-container"><p><strong>OpenDesign · USWDS component study</strong><br>Fictional research records. No application is submitted.</p></div></header><main class="grid-container study-main"><h1>Research opportunities</h1><p class="usa-intro">Compare topics and read the preparation notes.</p><form class="study-form" id="filters"><div><label class="usa-label" for="query">Search opportunity names</label><input class="usa-input" id="query" type="search"></div><div><label class="usa-label" for="topic">Topic</label><select class="usa-select" id="topic"><option value="">All topics</option><option>Environment</option><option>Transport</option><option>Education</option></select></div><button type="submit" class="usa-button">Apply filters</button><button type="button" class="usa-button usa-button--outline" id="clear">Clear filters</button></form><p id="count" aria-live="polite">3 opportunities</p><div class="usa-table-container--scrollable" tabindex="0"><table class="usa-table usa-table--borderless"><caption>Illustrative research opportunities</caption><thead><tr><th scope="col">Opportunity</th><th scope="col">Topic</th><th scope="col">Stage</th></tr></thead><tbody><tr data-topic="Environment"><th scope="row">Community water study</th><td>Environment</td><td>Example draft</td></tr><tr data-topic="Transport"><th scope="row">Accessible transport research</th><td>Transport</td><td>Example review</td></tr><tr data-topic="Education"><th scope="row">Local skills survey</th><td>Education</td><td>Example draft</td></tr></tbody></table></div><p id="empty" hidden>No matching opportunities. Broaden the topic or clear the filters.</p><h2>Preparation notes</h2><div class="usa-accordion usa-accordion--bordered" data-allow-multiple>
  <h3 class="usa-accordion__heading">
    <button type="button" class="usa-accordion__button"
      aria-expanded="false" aria-controls="preparation">Before you prepare a draft</button>
  </h3>
  <div id="preparation" class="usa-accordion__content usa-prose" hidden>
    <p>This fictional opportunity asks for a project summary and a named contact.</p>
  </div>
<h3 class="usa-accordion__heading"><button type="button" class="usa-accordion__button" aria-expanded="false" aria-controls="scope">What the example data means</button></h3><div id="scope" class="usa-accordion__content usa-prose" hidden><p>Draft and review are demonstration stages. They do not indicate an actual funding programme or eligibility decision.</p></div>
</div><p class="study-note">USWDS 3.14.0 native accordion and styles, with local Helvetica/Georgia font overrides. Filters are original application code. <a href="vendor/uswds-3.14.0/LICENSE.md">Distribution licence</a>.</p></main><script src="vendor/uswds-3.14.0/uswds.min.js"></script><script>const rows=[...document.querySelectorAll('tbody tr')],q=document.getElementById('query'),t=document.getElementById('topic');function filter(){let n=0;for(const row of rows){const show=(!t.value||row.dataset.topic===t.value)&&row.firstElementChild.textContent.toLowerCase().includes(q.value.trim().toLowerCase());row.hidden=!show;if(show)n++}document.getElementById('count').textContent=n+' '+(n===1?'opportunity':'opportunities');document.getElementById('empty').hidden=n!==0;}document.getElementById('filters').addEventListener('submit',e=>{e.preventDefault();filter()});document.getElementById('clear').addEventListener('click',()=>{q.value='';t.value='';filter();q.focus()});</script></body></html>

Référence du code

  • Téléchargez l’exemple complet depuis les sources. Son fichier README indique la commande exacte pour le lancer localement.
  • Conservez des chemins relatifs pour les ressources de fournisseur par rapport à ce document ; l’archive contient toutes les ressources utilisées par cet aperçu.
04

Configuration de l’agent du système de design USWDS

Point de départ de l’implémentation

Préservez la structure du répertoire dist pour que CSS puisse trouver les polices et les icônes. Il s’agit de la distribution précompilée ; la personnalisation du thème nécessite une compilation Sass. L’archive ZIP complète de l’exemple fonctionnel, dans Sources, comprend aussi les dépendances exactes de l’aperçu et le document complet. Décompressez-la, exécutez python3 -m http.server 8080 dans ce répertoire, puis ouvrez http://localhost:8080/uswds.html. N’ouvrez pas les exemples utilisant des modules avec file://.

sh / html
npm install @uswds/[email protected]
mkdir -p public/assets/uswds
cp -R node_modules/@uswds/uswds/dist public/assets/uswds/

<!-- HTML head -->
<script src="/assets/uswds/dist/js/uswds-init.min.js"></script>
<link rel="stylesheet" href="/assets/uswds/dist/css/uswds.min.css">
<!-- After the component markup, before closing body -->
<script src="/assets/uswds/dist/js/uswds.min.js"></script>

Un prompt pour votre projet

Prompt pour l’agent IA
Créez un comparatif fictif de possibilités de recherche avec USWDS 3.14.0. Chargez l’arborescence complète des ressources dist, le script d’initialisation, la feuille de style des composants et JavaScript. Présentez les entrées comparables dans un tableau sémantique avec une légende et des en-têtes de colonne ; proposez une recherche et un filtre par catégorie clairement étiquetés, un nombre de résultats, un état utile en l’absence de correspondance et une commande de réinitialisation. Utilisez des accordéons natifs pour les exigences complémentaires, tout en laissant visibles les informations essentielles à la comparaison. Respectez les unités d’espacement et les correspondances des rôles du thème documentées ; indiquez clairement la surcharge de la police système. Ne transformez pas ce répertoire en processus de candidature et ne laissez pas entendre qu’il existe de véritables critères d’admissibilité ou engagements d’attribution.
05

Sources et périmètre du système de design USWDS

Étude indépendante des composants de USWDS 3.14.0. Entrées fictives concernant des possibilités de recherche ; aucune revendication d’identité fédérale ni aucun point de terminaison de candidature. Helvetica/Arial et Georgia sont des polices de substitution locales, et non les ressources de police par défaut de USWDS.