Services publics et administration · Nouvelle ressource
Système de design NSW.
Découvrez les tokens de design de NSW, la typographie Public Sans et des onglets natifs accessibles au clavier grâce à un guide d’atelier complet accompagné d’une liste de lecture locale autonome.
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-brand-light
#cbedfd
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-brand-supplementary
#146cfd
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-brand-accent
#d7153a
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-brand-accent-light
#ffe6ea
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-grey-01
#22272b
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-grey-02
#495054
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-grey-03
#cdd3d6
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-grey-04
#ebebeb
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-off-white
#f2f2f2
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-text-dark
#22272b
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
--nsw-text-light
#fff
Thème par défaut réel de la version 3.27.0. Text-light désigne un texte de couleur claire sur des surfaces sombres, et non un texte peu mis en évidence sur fond blanc.
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size
16px
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-normal
400
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-bold
700
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size-md-mobile
1.125rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size-md-desktop
1.25rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size-lg-mobile
1.375rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size-lg-desktop
1.5rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size-xl-mobile
1.75rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size-xl-desktop
2rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size-xxl-mobile
2.25rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-font-size-xxl-desktop
3rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
--nsw-border-radius
0.25rem
Référence typographique réactive publiée et rôle partagé pour les arrondis. Les styles typographiques pour mobile et ordinateur ne constituent pas des familles de polices distinctes.
03
Guide complet système de design NSW
Un guide pratique pour choisir, appliquer et évaluer ce système dans une interface réelle.
DESIGN-nsw.md
Des conseils complets, un point de départ pour la mise en œuvre et des liens vers les sources.
Environnement d’exécution épinglé et thème système de design NSW
Utilisez l’implémentation native des onglets
L’exemple utilise nsw-design-system 3.27.0. Il importe le package CSS et la classe Tabs, puis initialise le groupe unique d’onglets après avoir créé la structure. Cette initialisation ciblée évite d’enregistrer des composants sans rapport qui ne sont pas présents. La documentation en ligne peut décrire une version plus récente ; le code téléchargeable et les valeurs des jetons restent liés au package vérifié.
Séparez les composants de l’état de l’application
La classe native Tabs gère la sélection des onglets, la visibilité des panneaux et la navigation au clavier. L’application gère un Set d’invites enregistrées. Le passage d’une étape à l’autre ne modifie donc pas la liste de lecture. Cette séparation est explicite dans le code source : aucun magasin global caché, aucune requête au serveur dorsal et aucune imitation d’un compte gouvernemental.
Système de design NSW Rôles de marque et surfaces lisibles
Utilisez les rôles sombre et clair en paire
La couleur de marque sombre par défaut est #002664, tandis que la surface claire est #CBEDFD. Le panneau de consigne utilise le rôle clair, et une action sombre. L’onglet actif reprend le traitement d’accentuation du package. Il s’agit des rôles réels du thème, et non d’une palette bleue arbitraire choisie pour évoquer un site du secteur public. L’exemple n’utilise pas de logo officiel du gouvernement.
Interprétez soigneusement les noms des jetons
Le jeton text-light est blanc. Il doit être utilisé sur un arrière-plan sombre et ne doit pas servir de synonyme générique pour un texte atténué. Le texte secondaire des étapes utilise plutôt le rôle neutre plus sombre. La référence comprend des paires de couleurs de premier plan et d’arrière-plan pour les statuts, mais l’atelier n’invente pas d’alerte d’erreur ou de réussite dans le seul but d’afficher toutes les couleurs disponibles.
Système de design NSW Public Sans et échelle responsive
Chargez la police avant d’examiner la mise en page
L’exemple charge localement les graisses 400 et 700 de Public Sans. Le package définit séparément les tailles pour mobile et ordinateur : le texte moyen passe de 1.125rem à 1.25rem, et la taille de référence du plus grand titre passe de 2.25rem à 3rem. Ces paires contribuent à préserver la hiérarchie de lecture lorsque la largeur disponible change.
Gardez une hiérarchie de contenu sobre
Une courte étiquette d’étape précède un titre descriptif, une introduction, un paragraphe explicatif et une consigne enregistrée. La page ne transforme pas chaque phrase en carte. Sur les écrans étroits, la liste de lecture apparaît sous le panneau de l’étape, tandis que la courte barre de trois onglets reste utilisable sans que le texte soit comprimé sur plusieurs lignes.
Système de design NSW Balisage des onglets et comportement au clavier
Laissez le composant enrichir de vrais liens
La liste d’onglets initiale contient des liens vers des identifiants de contenu uniques. L’initialisation ajoute les sémantiques tablist/tab/tabpanel, gère la sélection et définit l’onglet pouvant recevoir le focus. Les valeurs href doivent être correctes pour que le composant puisse trouver les panneaux correspondants. Ne dupliquez pas les identifiants si la page contient plusieurs groupes d’onglets.
Associez chaque lien d’onglet à l’identifiant d’un seul panneau.
Initialisez le groupe après avoir inséré son balisage.
Laissez le composant natif gérer la sélection et le focus clavier.
Vérifiez la sélection au clavier, ainsi que les clics
Système de design NSW Consignes enregistrées et retours clairs
Ne liez pas l’état enregistré à l’onglet visible
Le bouton d’action de chaque étape ajoute la consigne à un Set ou l’en retire, met à jour aria-pressed et remplace son libellé de Save par Remove. Le nombre d’éléments et le contenu de la liste de lecture sont dérivés de ce Set. Lorsqu’on revient à une étape enregistrée, son état sélectionné est correctement affiché. Clear reading list supprime toutes les sélections et est désactivé lorsque la liste est vide.
Expliquez les limites de la persistance
La liste de lecture est conservée dans l’état local de la page et disparaît au rechargement. L’interface le précise clairement. Une véritable liste persistante nécessiterait un modèle de stockage explicite et un comportement de restauration, qui ne sont ni l’un ni l’autre sous-entendus ici. Le contenu est un exercice original de discussion sur le design, et non un guide d’admissibilité à un service ni une prétendue reproduction d’un processus officiel de NSW.
Système de design NSW Implémentation complète et vérification
Reproduisez la source avec ses dépendances
Créez un projet Vite vanilla, installez nsw-design-system 3.27.0 et Public Sans, puis enregistrez le fichier d’entrée fourni et nsw.css. Conservez un élément de montage à la racine. Le contenu complet des trois étapes, les consignes originales, l’initialisation native de Tabs et les gestionnaires de la liste de lecture sont inclus. Le comportement d’enregistrement et de réinitialisation n’est pas remplacé par du pseudocode.
Installez la version épinglée du package NSW et les fichiers de police Public Sans.
Enregistrez le fichier d’entrée complet et nsw.css avec un élément de montage à la racine.
Enregistrez des consignes dans deux onglets différents et vérifiez que leur état est conservé.
Utilisez ArrowRight, videz la liste et examinez son état vide.
Séparez la navigation par onglets du contenu enregistré
Initialisez la classe Tabs native seulement après la création de ses liens cibles et de ses panneaux. La correspondance des identifiants de fragment définit le contrat d’enrichissement : modifier l’identifiant d’un panneau sans modifier son href rompt le lien, même si les libellés des onglets semblent toujours corrects. Si plusieurs groupes figurent sur une même page, attribuez des identifiants distincts à chacun.
Traitez la liste de lecture comme un état applicatif indépendant de l’instance d’onglets. L’état enregistré d’une consigne doit être conservé lors du changement de panneau, et aria-pressed doit refléter cet état au retour dans le panneau. Utilisez des onglets pour du contenu de même niveau auquel les lecteurs peuvent revenir ; un formulaire séquentiel exigeant de valider les étapes nécessite un autre modèle de navigation. La persistance nécessite également une politique explicite de stockage et de restauration, au lieu de modifier silencieusement cet exemple limité à la page.
Système de design NSW Exemples de composants du système de design
main.js — exemple complet d’onglets natifs et de liste de lecture
Comprend tout le contenu original des étapes, l’initialisation des onglets et la logique complète d’enregistrement, de suppression et de réinitialisation.
javascript
import Tabs from 'nsw-design-system/src/components/tabs/tabs.js';
import 'nsw-design-system/css';
import '@fontsource/public-sans/latin-400.css';
import '@fontsource/public-sans/latin-700.css';
import './nsw.css';
const sessions=[['Prepare','Choose one question to explore','Start with a clear outcome rather than a long list of activities.','Write a one-sentence purpose. Identify the people who can answer the question and the evidence you already have.'],['Discuss','Make room for different views','Use a short, structured discussion to compare observations.','Ask participants to describe what they noticed before proposing solutions. Keep a separate record of assumptions that need evidence.'],['Review','Turn observations into a next step','End with an action that has an owner and a clear reason.','Choose one improvement to investigate. Record what would count as success and when the group will review the result.']];
document.getElementById('root').innerHTML=`<main><p class="eyebrow">NSW DESIGN SYSTEM / ORIGINAL WORKSHOP STUDY</p><h1>Plan a focused discussion</h1><p class="nsw-intro">Move between three stages and save useful prompts to a local reading list.</p><div class="layout"><section class="nsw-tabs js-tabs"><ul class="nsw-tabs__list">${sessions.map(([name],i)=>`<li><a href="#session-${i}">${name}</a></li>`).join('')}</ul>${sessions.map(([name,title,lead,body],i)=>`<section id="session-${i}" class="nsw-tabs__content"><p class="step">STAGE ${i+1} / 3</p><h2>${title}</h2><p class="nsw-intro">${lead}</p><p>${body}</p><div class="prompt"><h3>Prompt to keep</h3><blockquote>${['What do we need to understand before choosing a solution?','Which observations are shared, and where do they differ?','What is the smallest next step that would reduce uncertainty?'][i]}</blockquote><button class="nsw-button nsw-button--dark save" data-index="${i}" aria-pressed="false">Save this prompt</button></div></section>`).join('')}</section><aside><h2>Your reading list</h2><p id="count" role="status">0 prompts saved</p><ul id="saved"></ul><p id="empty">Save a prompt from any stage. Changing tabs keeps your selection.</p><button class="nsw-button nsw-button--white" id="clear" disabled>Clear reading list</button><p class="note">This is an original local study using NSW 3.27.0 tabs and CSS. Nothing is stored after reloading.</p></aside></div></main>`;
new Tabs(document.querySelector('.js-tabs')).init();const saved=new Set();const $=id=>document.getElementById(id);function render(){$('count').textContent=saved.size+' prompt'+(saved.size===1?'':'s')+' saved';$('saved').replaceChildren(...[...saved].sort().map(i=>{const li=document.createElement('li');li.textContent=sessions[i][0]+': '+sessions[i][1];return li}));$('empty').hidden=saved.size>0;$('clear').disabled=!saved.size;document.querySelectorAll('.save').forEach(b=>{const yes=saved.has(Number(b.dataset.index));b.setAttribute('aria-pressed',String(yes));b.textContent=yes?'Remove saved prompt':'Save this prompt'})}document.querySelectorAll('.save').forEach(b=>b.addEventListener('click',()=>{const i=Number(b.dataset.index);saved.has(i)?saved.delete(i):saved.add(i);render()}));$('clear').addEventListener('click',()=>{saved.clear();render()});
L’étiquette secondaire de l’étape utilise un ton neutre sombre ; --nsw-text-light est blanc.
04
Système de design NSW Configuration de l’agent IA
Point de départ de l’implémentation
Les clics natifs sur les onglets et les touches fléchées, la conservation de l’état enregistré, la suppression des éléments et la mise en page responsive ont été testés localement.
sh
npm create vite@latest nsw-workshop -- --template vanilla
cd nsw-workshop
npm install
npm install [email protected] @fontsource/public-sans
# Replace src/main.js and add src/nsw.css. Keep <div id="root"></div>.
npm run dev
Un prompt pour votre projet
Prompt pour l’agent IA
Créez le guide d’atelier NSW avec Tabs natif de la version 3.27.0, Public Sans et les rôles sémantiques réels. Préservez les identifiants uniques des panneaux, la sélection au clavier, l’état indépendant des consignes enregistrées et une liste de lecture utile lorsqu’elle est vide. Indiquez clairement que la persistance est limitée à la page et évitez toute affirmation concernant un service officiel.
05
Système de design NSW Sources et périmètre
Étude d’atelier rédigée par OpenDesign avec NSW Design System 3.27.0. Le comportement natif des onglets est réel ; le contenu et le processus d’enregistrement des consignes relèvent d’une logique applicative locale originale.