Aller au contenu

Typographie

Le système typographique TDS est conçu pour la lisibilité dans les interfaces gouvernementales : hiérarchie claire, tailles suffisantes pour l’accessibilité, polices adaptées au français et à l’arabe.


Polices institutionnelles

RôlePoliceVariable CSSUsage
PrincipaleSource Sans 3--tds-font-family-primaryTous les textes en français
ArabeNoto Naskh Arabic--tds-font-family-arabicTextes en arabe (RTL)
MonospaceJetBrains Mono--tds-font-family-monoCode, références techniques
SecoursPublic Sans(dans le stack primary)Fallback institutionnel
body {
font-family: var(--tds-font-family-primary);
}
/* Passage automatique en arabe */
html[lang="ar"], :lang(ar) {
direction: rtl;
font-family: var(--tds-font-family-arabic);
}
code, kbd, samp, pre {
font-family: var(--tds-font-family-mono);
}

Échelle de tailles

L’échelle TDS est basée sur une racine de 16px. Elle utilise rem pour respecter les préférences de zoom des utilisateurs.

TokenVariable CSSValeurÉquivalent pxUsage
xs--tds-font-size-xs0.75rem12pxCaptions, légendes
sm--tds-font-size-sm0.875rem14pxLabels, helper text
md--tds-font-size-md1rem16pxCorps, formulaires (défaut)
lg--tds-font-size-lg1.125rem18pxCorps large, descriptions
xl--tds-font-size-xl1.25rem20pxSous-titres, intro
2xl--tds-font-size-2xl1.5rem24pxH3, titres de carte
3xl--tds-font-size-3xl1.875rem30pxH2, sous-pages
4xl--tds-font-size-4xl2.25rem36pxTitre de page principal
5xl--tds-font-size-5xl3rem48pxDisplay, héros

Hauteurs de ligne

Chaque taille a une hauteur de ligne associée, optimisée pour sa taille.

TokenVariable CSSValeurPrincipe
xs--tds-line-height-xs1.2Serré pour les micro-labels
sm--tds-line-height-sm1.3Labels compacts
md--tds-line-height-md1.5Corps — confort de lecture optimal
lg--tds-line-height-lg1.5Corps large — même confort
xl--tds-line-height-xl1.35Sous-titres
2xl--tds-line-height-2xl1.3H3
3xl--tds-line-height-3xl1.2H2
4xl--tds-line-height-4xl1.15Titres de page
5xl--tds-line-height-5xl1.1Display — très serré acceptable

Poids typographiques

TokenVariable CSSValeurUsage recommandé
light--tds-font-weight-light300Display large uniquement
regular--tds-font-weight-regular400Texte de paragraphe par défaut
medium--tds-font-weight-medium500Liens, éléments UI modérés
semibold--tds-font-weight-semibold600Titres, boutons, labels
bold--tds-font-weight-bold700Emphase, alertes, titres courts
xbold--tds-font-weight-xbold800Cas rares / identitaires

Styles textuels officiels

Ces styles combinent taille, hauteur de ligne, poids et espacement de lettres. Ils sont les seules combinaisons validées pour les interfaces TDS.

Display

font-size: var(--tds-font-size-5xl); /* 48px */
line-height: var(--tds-line-height-5xl); /* 1.1 */
font-weight: var(--tds-font-weight-semibold); /* 600 */
letter-spacing: -0.02em;
/* Usage : héros, bannières d'accueil — utiliser avec parcimonie */

Page Title (H1)

font-size: var(--tds-font-size-4xl); /* 36px */
line-height: var(--tds-line-height-4xl); /* 1.15 */
font-weight: var(--tds-font-weight-semibold); /* 600 */
letter-spacing: -0.02em;
/* Usage : titre principal de chaque page, unique par page */

Section Title (H2)

font-size: var(--tds-font-size-2xl); /* 24px */
line-height: var(--tds-line-height-2xl); /* 1.3 */
font-weight: var(--tds-font-weight-semibold); /* 600 */
letter-spacing: -0.01em;

Subsection Title (H3)

font-size: var(--tds-font-size-xl); /* 20px */
line-height: var(--tds-line-height-xl); /* 1.35 */
font-weight: var(--tds-font-weight-medium); /* 500 */
letter-spacing: 0;

Body (défaut)

font-size: var(--tds-font-size-md); /* 16px */
line-height: var(--tds-line-height-md); /* 1.5 */
font-weight: var(--tds-font-weight-regular); /* 400 */
/* Usage : texte de paragraphe, formulaires, contenu principal */

Label (champs de formulaire)

font-size: var(--tds-font-size-sm); /* 14px */
line-height: var(--tds-line-height-sm); /* 1.3 */
font-weight: var(--tds-font-weight-semibold); /* 600 */
/* Usage : labels de formulaire, titres de champ */

Button

font-size: var(--tds-font-size-md); /* 16px */
line-height: var(--tds-line-height-md); /* 1.5 */
font-weight: var(--tds-font-weight-semibold); /* 600 */
letter-spacing: 0.01em;
/* Usage : texte des boutons et CTA */

Typographie responsive

TDS recommande d’adapter les titres avec clamp() pour une hiérarchie fluide.

/* H1 adaptatif */
h1 {
font-size: clamp(
var(--tds-font-size-3xl), /* min : 30px */
5vw,
var(--tds-font-size-4xl) /* max : 36px */
);
}
/* Display pour les héros */
.hero-title {
font-size: clamp(
var(--tds-font-size-4xl), /* min : 36px */
6vw,
var(--tds-font-size-5xl) /* max : 48px */
);
}

Variables CSS — Référence

/* Familles */
--tds-font-family-primary: "Source Sans 3", "Public Sans", system-ui, ...;
--tds-font-family-arabic: "Noto Naskh Arabic", "Noto Sans Arabic", ...;
--tds-font-family-mono: "JetBrains Mono", ui-monospace, ...;
/* Tailles */
--tds-font-size-xs: 0.75rem;
--tds-font-size-sm: 0.875rem;
--tds-font-size-md: 1rem;
--tds-font-size-lg: 1.125rem;
--tds-font-size-xl: 1.25rem;
--tds-font-size-2xl: 1.5rem;
--tds-font-size-3xl: 1.875rem;
--tds-font-size-4xl: 2.25rem;
--tds-font-size-5xl: 3rem;
/* Hauteurs de ligne */
--tds-line-height-xs: 1.2;
--tds-line-height-sm: 1.3;
--tds-line-height-md: 1.5;
--tds-line-height-lg: 1.5;
--tds-line-height-xl: 1.35;
--tds-line-height-2xl: 1.3;
--tds-line-height-3xl: 1.2;
--tds-line-height-4xl: 1.15;
--tds-line-height-5xl: 1.1;
/* Poids */
--tds-font-weight-light: 300;
--tds-font-weight-regular: 400;
--tds-font-weight-medium: 500;
--tds-font-weight-semibold: 600;
--tds-font-weight-bold: 700;
--tds-font-weight-xbold: 800;