Typographie
Système typographique de Swellr : quatre familles de polices, échelle de taille, poids et règles d'usage.
Les familles typographiques
Swellr utilise quatre polices complémentaires, chacune assignée à un rôle précis dans l'interface.
live better.
Prévisions en temps réel, carte des spots, sessions communautaires.
fontFamily: 'DINAlternate-Bold' sur iOS et prévoir une police de substitution (Arial Black) sur Android.
Échelle typographique
13 niveaux de taille, de 10px à 48px. Chaque taille correspond à un token CSS et un usage précis.
| Aperçu | Token CSS | Rem | Px | Usage recommandé |
|---|---|---|---|---|
| Swellr — Surf smarter | --text-xs | 0.625rem | 10px | Labels très petits, badges discrets, footnotes |
| Swellr — Surf smarter | --text-sm | 0.75rem | 12px | Captions, métadonnées, horodatages |
| Swellr — Surf smarter | --text-caption | 0.8125rem | 13px | Labels de formulaires, helper text |
| Swellr — Surf smarter | --text-base | 0.875rem | 14px | Corps de texte app, descriptions courtes |
| Swellr — Surf smarter | --text-md | 0.9375rem | 15px | Corps légèrement agrandi, items de liste |
| Swellr — Surf smarter | --text-lg | 1rem | 16px | Corps standard web, boutons principaux |
| Swellr — Surf smarter | --text-xl | 1.125rem | 18px | Sous-titres, body large landing page |
| Swellr — Surf smarter | --text-2xl | 1.25rem | 20px | H4, titre de carte, section header app |
| Swellr — Surf smarter | --text-3xl | 1.75rem | 28px | H3, App Titre (Manrope Bold mobile) |
| Swellr — Surf smarter | --text-4xl | 1.875rem | 30px | H2 mobile, titres section landing |
| Swellr — Surf smarter | --text-5xl | 2rem | 32px | H1 Section (H2 desktop), hero sous-titre |
| Swellr — Surf smarter | --text-6xl | 2.5rem | 40px | H1 mobile, page title charte graphique |
| Swellr — Surf smarter | --text-7xl | 3rem | 48px | H1 Display desktop, hero principal |
Interlignage (line-height)
Letter-spacing
Styles prédéfinis
12 combinaisons typographiques prêtes à l'emploi, couvrant tous les cas d'usage de l'interface Swellr.
Paires recommandées
Exemples de compositions typographiques titre + corps, appliquées aux contextes réels de Swellr.
Les meilleures prévisions surf,
directement sur ton téléphone.
Swellr agrège les données de houle, vent et marée de plusieurs sources pour te donner une prévision claire et actionnable. Plus besoin de jongler entre différents sites — tout est dans une seule application pensée pour les surfeurs.
Disponible sur iOS et Android · Gratuit · Sans publicité
Règles d'usage
Principes fondamentaux pour maintenir la cohérence typographique sur toutes les surfaces Swellr.
style.css. Utiliser systématiquement les variables CSS (var(--text-xl)) plutôt que des valeurs hardcodées.Tableau de référence : élément → règle typographique
| Élément UI | Police | Poids | Taille min | Taille max | Note |
|---|---|---|---|---|---|
| H1 Hero / Landing | Manrope | ExtraBold 800 | --text-6xl (40px) | --text-7xl (48px) | letter-spacing -0.8px |
| H1 Section / Page | Manrope | Bold 700 | --text-5xl (32px) | --text-6xl (40px) | letter-spacing -0.4px |
| H2 Sous-section | Manrope | SemiBold 600 | --text-4xl (30px) | --text-5xl (32px) | line-height 1.3 |
| H3 Carte / Feature | Manrope | SemiBold 600 | --text-3xl (28px) | --text-4xl (30px) | line-height 1.3 |
| H4 Item / Spot | Manrope | SemiBold 600 | --text-2xl (20px) | --text-3xl (28px) | line-height 1.3 |
| App Header titre | Manrope | Bold 700 | --text-3xl (28px) | --text-3xl (28px) | mobile uniquement |
| Corps de texte | Inter | Regular 400 | --text-base (14px) | --text-lg (16px) | line-height 1.5–1.625 |
| Caption / Meta | Inter | Regular 400 | --text-sm (12px) | --text-caption (13px) | line-height 1.5 |
| Bouton principal | Inter | SemiBold 600 | --text-base (14px) | --text-lg (16px) | line-height 1.5 |
| Label / Tag | Inter | SemiBold 600 | 11px | --text-sm (12px) | UPPERCASE · ls 2.4px |
| Nav Bottom App | Manrope | Bold 700 | 11px | --text-sm (12px) | app mobile |
| Données numériques | DIN Alternate | Bold 700 | --text-3xl (28px) | --text-7xl (48px) | dashboard / météo |
| Texte accessibilité | Inclusive Sans | Regular 400 | --text-base (14px) | --text-lg (16px) | sections A11y |
| Input / Formulaire | Inter | Regular 400 | --text-base (14px) | --text-md (15px) | placeholder: 400, valeur: 500 |
assets/css/style.css qui contient l'ensemble des tokens typographiques. Ne jamais redéfinir les variables CSS dans une page individuelle — utiliser uniquement les classes utilitaires et les variables existantes.
Implémentation technique
Polices réellement chargées sur chaque surface — App mobile Expo et Landing page web.
Expo Mobile Polices chargées (FontAssets)
Font.loadAsync() (expo-font) dans FontService.ts, qui utilise le barrel assets/fonts/index.ts. Seules 4 polices TTF sont chargées — les autres variantes utilisent la police système en fallback.
| Nom de famille (fontFamily) | Fichier TTF | Variante | Usage dans l'app |
|---|---|---|---|
| Inter-Medium | Inter-Medium.ttf | Weight 500 | Titres principaux (Typography.title — 48px) |
| Manrope-Regular | Manrope-Regular.ttf | Weight 400 | Corps de texte mobile (manrope24, manrope15, manrope14, manrope16) |
| DINAlternate-Bold | DINAlternate-Bold.ttf | Weight 700 | Données numériques : houle, températures, scores (dinBold24, dinBold15) |
| InclusiveSans-Regular | InclusiveSans-Regular.ttf | Weight 400 | Textes accessibilité (inclusive24, inclusive15) |
Manrope-Bold et Inter-SemiBold sont référencés dans Typography.ts (manropeBold15, interSemiBold16) mais leurs fichiers TTF ne sont pas présents dans assets/fonts/. Ces styles tombent sur la police système. La navigation bas (tab bar) utilise Manrope-Bold — prévoir l'ajout de Manrope-Bold.ttf si ce rendu doit être assuré.
Landing Web Polices auto-hébergées (@font-face)
public/fonts/ via @font-face déclarés dans src/styles/fonts.css. Format WOFF2 uniquement, avec font-display: swap.
| Famille | Poids chargés | Fichiers WOFF2 |
|---|---|---|
| Inter | 400 · 500 · 600 · 700 |
Inter-Regular.woff2 Inter-Medium.woff2 Inter-SemiBold.woff2 Inter-Bold.woff2 |
| Manrope | 400 · 600 · 700 |
Manrope-Regular.woff2 Manrope-SemiBold.woff2 Manrope-Bold.woff2 |
| Inclusive Sans | 400 | InclusiveSans-Regular.woff2 |
| DIN Alternate | 700 | DINAlternate-Bold.woff2 |