button-primary
Action principale d'une vue
- Quand l'utiliser
- L'action que la personne est venue faire sur la vue : valider, envoyer, créer.
- À éviter
- Pas plus d'un par bande ; pour une deuxième action, prendre le bouton secondaire.
Tous les composants décrits dans la charte du groupe (DESIGN.md de @humanskills/ui) et dans les spécifications produit design-intranet.md, design-event.md et design-ats.md. Chaque fiche donne le nom du composant, sa fonction, deux lignes de description et un rendu de ses variantes, reconstruit à partir des valeurs de la spec. Le site Monsieur Guiz est hors périmètre.
Les valeurs que tous les composants combinent. Un seul violet d'encre remplit, le violet électrique ne sert qu'aux signaux, aucune bordure ni ombre grise.
Ajoutés au preset en avance, avec les mêmes noms et les mêmes valeurs que sur la branche feat/palette-corail, pour que la bascule ne renomme rien. Trois échelles de dix nuances, le rouge de sens négatif et ses deux variantes, un voile crème et les trois premiers gris neutres. Le reste de la palette Corail et l'échelle de gris complète ne sont pas encore là.
title-pageSe former à l'IAtitle-page title-page--on-darkSe former à l'IAtitle-sectionÉvènements à venirtitle-cardAtelier prompttitle-card-compactDojo agents IAtitle-card-phraseUn titre qui est une phrase reste en casse normalechiffre-cle87 %eyebrowNos expertisesbody14px / 300 / 22,4px, interlettrage 0,5px partout.label-formAdresse emailbutton-labelValiderComposants communs à tous les produits HSK. Ils vivent dans le package sous forme de classe CSS (@humanskills/ui/styles.css) ou de composant React. Une spec produit peut les surcharger, jamais l'inverse.
Action principale d'une vue
Action secondaire
Action sur fond sombre
Confirmer une action destructrice
Action répétée où l'icône est l'information
tone="danger") n'est ni décoratif ni en aplat : une icône ou un bouton à contour qui détruit, rien d'autre.Lien vers un réseau social
Action fantôme de troisième niveau
back). Sur fond sombre : onDark (blanc) ; jamais sur fond clair.Déplier et replier une zone sur place
Lien nom : un nom que l'on clique
Conteneur de toute la page
Bloc fonctionnel d'un outil
as="a", as={Link}). La marge a quatre valeurs (padding) : none, sm 16 px, md 24 px (par défaut), lg 24 px puis 32 px dès sm:.Contenant simple : aucun relief.
tone="tint" : voile violet à 8 %, pour le bloc mis en avant (un par page).
Carte vitrine mise en avant
Cadrer les usages, former les équipes, mesurer les effets.
Chiffre clé ou message fort isolé
Illustration en alternance avec du texte
Carte à grande image ou aperçu de vidéo, contenu en dessous
TileCard). Une carte qui porte des boutons d'action n'est pas un lien. Les boutons de la zone actions prennent la taille sm imposée par la carte : le produit ne la choisit pas.Carte à titre et carré à droite, contenu en dessous
Bloc de conversion en fin de page
Bandeau d'ouverture et mire de connexion
Trois nouveautés depuis ta dernière visite.
Avec ton compte Google du groupe.
Étiquette au-dessus d'un titre de section
Métadonnée non cliquable
Filtre à un critère, onglet, sélecteur
Filtrage à facettes multiples
Message d'état dans une page
Champ complet : libellé, champ, aide, erreur
Field relie lui-même le libellé au champ (for/id) et l'aide ou l'erreur au champ (aria-describedby, aria-invalid) : on ne pose plus d'id à la main. aside porte ce qui va à droite du libellé (un compteur), hideLabel cache le libellé à l'œil mais pas aux lecteurs d'écran.Checkbox porte son libellé) ni pour une recherche dont l'icône dit le sens (aria-label sur le champ).Une phrase, à l'indicatif.
Cette adresse n'est pas valide.
Liste à choix unique
input-field, flèche d'encre), la liste a la surface des menus : blanc, filet léger, ombre douce, survol crème, coche d'encre sur la ligne choisie. Elle se ferme au choix et garde la valeur affichée. Clavier complet (flèches, Entrée, Échap, une lettre). Sous sm, le sélecteur natif prend le relais.MultiSelectFilter, des cases) ni pour des actions (ActionMenu, le clic fait quelque chose et rien n'est retenu).Liste de menu
listbox et option à poser). MenuItem as rend un li, un button, un label (avec une case) ou un Link ; tone="danger" met le rouge de sens négatif ; MenuLabel sert d'en-tête ou de ligne « Aucun résultat ».Champ de formulaire
Recherche dans une rangée d'actions
Choix binaire ou l'un des deux
Réponse à choisir dans une question
role="radiogroup".variant="radio" pour une carte de réglage (mode d'import) à la place d'une réponse, tone="danger" pour le choix qui détruit.Liste de données d'un outil
Table pose le cadre, les en-têtes et les marges (lignes aérées, 12 px en haut et en bas) : on compose avec Th, Tr et Td.| Nom | Rôle | Statut | Dernière connexion | Actions |
|---|---|---|---|---|
| Camille Durand | Admin | Actif | 21/10/2026 | |
| Lou Martin | Membre | Invité | Jamais | |
| Sacha Petit | Membre | Désactivé | 02/09/2026 |
3 utilisateurs
| Nom | Rôle | Statut |
|---|---|---|
Aucune assignationAucune assignation ne permet de générer un aperçu. | ||
Recherche et filtres au-dessus d'un tableau
Menus et popovers
MenuList, MenuItem et MenuLabel sont la surface et la ligne communes de tous les menus à entrées (ces menus-ci, « Bouton à menu », « Liste à choix unique », les filtres à cases, les salles libres de l'intranet) : pas de trait entre les lignes, le survol suffit.Bouton qui ouvre un menu
Modale et panneau latéral
Fond de fenêtre : le voile derrière toute modale
.modal-scrim) est le violet d'encre à 40 %, flouté de 4 px : la page se devine sans se lire. Le même dans tous les outils. Il porte le comportement : Échap ferme, la page ne défile plus, Tab reste dans la fenêtre, un clic à côté ferme (sauf pour une question ou une saisie, dismissOnBackdrop={false}). Trois placements : centre, bas d'écran sur téléphone (sheet), plein écran sur téléphone puis en haut (top).Valeur numérique mise en avant
Liste consultée entrée par entrée
Accordion pose le <details> natif, le filet du haut, un en-tête à 16 px de marge qui prend le fond violet clair au survol, et le chevron qui pivote. Le filet du bas se pose sur la dernière entrée.Onglets verticaux : une colonne d'entrées
Bloc à onglets verticaux : onglets et contenu d'un seul tenant
Desktop et tablette en paysage (à partir de 1024 px)
Un environnement de travail qui permet à chacun de se former, de s'exprimer et de s'épanouir.
Un programme de formation dédié à l'intelligence artificielle et une plateforme de formation en ligne.
Mobile et tablette en portrait (sous 1024 px)
Un environnement de travail qui permet à chacun de se former.
Onglets horizontaux : une rangée au-dessus du contenu
Bloc à onglets horizontaux : onglets et contenu d'un seul tenant
keepMounted garde tous les contenus dans la page (un aperçu qu'un bouton imprime d'où que l'on soit).Étapier : la chronologie entière d'un parcours
Une étape de l'étapier, et son rond numéroté
Stepper : un lien (href) ou un bouton de sélection (onClick). Trois états lisibles sans la couleur : une coche pour l'étape faite, « Tu es ici » ou l'action (« Continuer ») pour l'étape en cours, la durée sinon. StepMarker est le rond numéroté seul : cerclé sans état, plein d'encre avec une coche une fois faite, plein violet pour l'étape en cours ; il numérote aussi les éléments d'une procédure qui s'enchaînent sans état.Stepper : l'étape est un élément de liste. Pas pour une carte de contenu : PreviewCard.Ligne à vignette : une liste de contenus, vignette à gauche
default (vignette de 128 px, date et type en capitales violettes, logo de la marque, titre en phrase, description) et small (vignette de 80 px, titre et type). Chaque ligne garde un visuel : l'image, sinon l'icône de sa catégorie, sinon un fond neutre, pour que la colonne reste alignée.PreviewCard. Pas pour des lignes à pictogramme et action (agenda). La ligne ne porte pas ses filets : c'est la liste qui les trace.Liste vide
Panel tone="veil") : ses marges sont celles de l'échelle des panneaux (24 px, puis 32 px dès 640 px), le fond est le voile violet à 4 %, sans cadre.Avancement de 0 à 100 %
size="sm" (6 px) dans une ligne de tableau, md (8 px) ailleurs.Stepper) ni pour une attente de durée inconnue (Spinner) : la barre dit combien, pas quoi.Vidéo qui présente un outil à son arrivée
Tu la retrouves dans le menu de ton compte.
Bouton d'aide flottant de tous les outils
Barre haute de tous les outils
Navigation latérale
Coque des pages d'administration
Pied de page du site vitrine
Écrire et afficher un contenu riche
Le dojo dure deux heures. Le support est sur la page de l'atelier.
On repart avec un agent qui tourne, pas avec des slides.Programme-dojo.pdfPDF, 240 KoOuvrir
/
Composants propres à l'intranet, qui suivent les tokens du groupe sans en introduire. Les composants promus dans la charte le 25/09 (panel, link-tertiary, card-event...) sont rangés plus haut. Plusieurs fiches touchent l'Academy, qui n'a pas de spec propre.
Numéro d'ordre en gouttière
Ce qui se lit dans l'ordre
Premier bilan carbone
Label Engagé RSE
Objectif neutralité
À qui s'adresser
Pour tout ce qui touche à ton parcours.
Colonne qui suit un fil
3 nouveaux
Carte-lien d'un listing
Ligne d'agenda ou d'actualité
Reprendre ses formations Academy
Carnet de recherche
Renvoi vers l'Academy
Trouver une formation
Les trois prochains dojos datés
Scène illustrée calée sur sa colonne voisine
Un skill Claude, dit par ce qu'il permet
Bouton qui ouvre un menu de liens
Dire où en est une annonce
Saisir une annonce du back-office
event.hsk précise la charte là où sa classe publiée ne porte pas ce qu'elle annonce. Règle transverse : un volet ou une fenêtre ne se pose jamais dans un conteneur space-y, sinon il se décale.
Champ complet de la console
Sélecteurs de date et d'heure
Tableau des participants
| Prénom | Nom | Entreprise | Statut | Depuis | Décision |
|---|---|---|---|---|---|
| Inès | Moreau | Elevate | Inscrite | 3 j | |
| Hugo | Bernard | Client | Liste d'attente | 1 j |
Aperçu de la page publique
Programme d'un évènement dans l'éditeur
Ce que l'ATS ajoute à la charte : couleurs de sens, tableaux de données, fiches candidat. Les contrôles portent 44px ; une étiquette n'est pas un contrôle, sa croix a une cible de 24px.
Dire un manque, une issue, une obligation
Libre ou pris
Vivier et listes de données
| Nom | Métier | Disponibilité | Étape |
|---|---|---|---|
| Camille Durand | Product owner | Libre | Entretien |
| Yanis Roux | Data engineer | En mission | Présenté |
| Léa Fontaine | Scrum master | Sourcé |
Trier et filtrer depuis la colonne
Redimensionner deux colonnes à la fois
Bloc de fiche repliable au doigt
Aucun CV déposé
Menu d'un bloc à partir de trois actions
Allonger ou réduire une rangée d'étiquettes
Reconnaître une organisation ou une personne
Donner une position, déposer
Afficher et changer l'étape
Déposer un brief ou un CV
Carte d'identité d'une fiche
Ce que la lecture automatique a posé
Un lien est un nom ou un verbe
Déplier une saisie secondaire
La conversation avec un candidat
Les fichiers lus pour cet inventaire, et ce qu'ils ne couvrent pas encore.
humanskills-ui/DESIGN.md v1.0 (04/10) et sa version livrée dans event (07/10, avec l'éditeur de contenu).
humanskills-intranet/design-intranet.md, sections 1 et 2.
event/design-event.md du 13/10/2026.
ATS-dev/design-ats.md, sections 1 à 3.
Pas de design-academy.md : l'Academy consomme @humanskills/ui tel quel. Ses composants visibles vivent côté intranet (encart-academy, bloc-me-former, RechercheCatalogue).
Relevés par le registre de l'ATS : ils existent dans @humanskills/ui mais aucune spec ne les décrit en détail.
Aucun composant ne correspond à cette recherche.