Sparkline montre la tendance d’une série en un trait, sans axes, avec le point final, le plus haut et le plus bas écrits, en SVG statique.
Quand l’utiliser
Donner la forme d’une série (hausse, creux, pic) à côté d’une valeur déjà écrite : indicateur, ligne de tableau.
Montrer que des mesures manquent : le trait se rompt, rien n’est inventé et le tableau lié le dit.
Garder un poids minime : un seul chemin, au plus 120 points tracés, sous 10 ko et 400 nœuds.
Quand ne pas l’utiliser
Pour lire des valeurs sur une échelle : pas d’axes, utiliser LineChart.
Pour comparer plusieurs séries : une série par sparkline, au-delà le build échoue avec chart.too-many-series.
Avec des abscisses qui ne croissent pas : le build échoue avec geometry.bad-input.
Avec une série entièrement manquante : état vide, sans tracé.
Exemples
Visites mensuelles en 2025
Dernière valeur : 1 190 visites (1 décembre 2025)
Plus haut : 1 240 visites (1 novembre 2025)
Plus bas : 790 visites (1 février 2025)
Données du graphique
Visites mensuelles en 2025 : Données du graphique
Mois
Visites (visites)
1 janvier 2025
820
1 février 2025
790
1 mars 2025
880
1 avril 2025
940
1 mai 2025
1 010
1 juin 2025
980
1 juillet 2025
870
1 août 2025
810
1 septembre 2025
1 050
1 octobre 2025
1 180
1 novembre 2025
1 240
1 décembre 2025
1 190
Visites mensuelles avec quatre mois manquants
Dernière valeur : 1 190 visites (1 décembre 2025)
Plus haut : 1 240 visites (1 novembre 2025)
Plus bas : 790 visites (1 février 2025)
Données du graphique
Visites mensuelles avec quatre mois manquants : Données du graphique
Mois
Visites (visites)
1 janvier 2025
820
1 février 2025
790
1 mars 2025
880
1 avril 2025
donnée manquante
1 mai 2025
donnée manquante
1 juin 2025
980
1 juillet 2025
870
1 août 2025
810
1 septembre 2025
donnée manquante
1 octobre 2025
1 180
1 novembre 2025
1 240
1 décembre 2025
1 190
Température de consigne
Dernière valeur : 19 °C (juin 2025)
Plus haut : 19 °C (janvier 2025)
Plus bas : 19 °C (janvier 2025)
Données du graphique
Température de consigne : Données du graphique
Mois
Température de consigne (°C)
janvier 2025
19
février 2025
19
mars 2025
19
avril 2025
19
mai 2025
19
juin 2025
19
Visites mensuelles, sans légendeDonnées du graphique
Visites mensuelles, sans légende : Données du graphique
Mois
Visites (visites)
1 janvier 2025
820
1 février 2025
790
1 mars 2025
880
1 avril 2025
940
1 mai 2025
1 010
1 juin 2025
980
1 juillet 2025
870
1 août 2025
810
1 septembre 2025
1 050
1 octobre 2025
1 180
1 novembre 2025
1 240
1 décembre 2025
1 190
---
import Sparkline from '@paulperigault/astro/Sparkline.astro';
---
<Sparkline id="visites" title="Visites mensuelles en 2025" dataset={visites} />
Variantes
Recommandation d’usage
Une sparkline accompagne une valeur écrite : sans elle, le lecteur ne sait pas à quelle échelle lire la forme. Pour une valeur et sa variation, voir KpiCard.
Budgets de poids
500 points : au plus 120 points tracés (réduction LTTB, plus les deux extrêmes), sous 10 ko et 400 nœuds, tableau lié exclu.
Limites connues
Les couleurs --pp-chart-1..6 restent figées sur l’accent par défaut tant que l’issue #121 n’est pas faite.
L’échelle verticale va du plus bas au plus haut de la série : deux sparklines côte à côte ne se comparent pas entre elles.
Teinte d’accent
--pp-accent-hue règle la teinte OKLCH en degrés ; clarté et chroma restent ceux du système. Le branchement dans le build de tokens n’est pas fait (#121) : les graphiques ci-dessus utilisent les jetons figés sur la teinte 270.7. Le tableau montre ce que la dérivation donnerait pour la teinte 150, calculée à la construction de la page.
Jetons catégoriels figés et dérivation à une autre teinte
Rang
Figé, teinte 270.7, clair
Dérivé, teinte 150, clair
Dérivé, teinte 150, sombre
--pp-chart-1
oklch(47% 0.19 270.7)
oklch(47% 0.1294 150)
oklch(78% 0.1 150)
--pp-chart-2
oklch(64% 0.1491 60.7)
oklch(68% 0.31 330)
oklch(56% 0.24 315)
--pp-chart-3
oklch(20% 0.0787 30.7)
oklch(20% 0.0986 315)
oklch(88% 0.086 315)
--pp-chart-4
oklch(64% 0.1091 195.7)
oklch(48% 0.095 345)
oklch(52% 0.1235 120)
--pp-chart-5
oklch(44% 0.1781 0.7)
oklch(24% 0.0661 150)
oklch(56% 0.1 180)
--pp-chart-6
oklch(64% 0.2026 285.7)
oklch(64% 0.1346 165)
oklch(92% 0.2184 120)
Accessibilité
Clavier
Le SVG n’est pas interactif et ne reçoit pas le focus.
Le tableau lié se déplie au clavier (élément details natif).
Lecteur d’écran
Le SVG porte role="img", nommé par un title et décrit par un desc.
Le desc donne le début, la fin, la tendance chiffrée, les extrêmes et les données manquantes.
Le tableau de toutes les valeurs est lié sous le graphique, dans un details fermé.
Garanti par le composant
Le point final, le plus haut et le plus bas ont une forme distincte (cercle, triangle haut, triangle bas) et sont écrits dans la légende avec leur valeur : la couleur ne porte jamais seule le sens (WCAG 1.4.1).
La valeur finale est écrite en texte, de la taille du texte courant.
Une série qui finit sur un trou le dit : le dernier point marqué est le dernier présent.
Zéro JavaScript, aucune animation, aucun attribut style ; jeton --pp-chart-1 en clair et en sombre.
À la charge de l’intégrateur
Donner un id unique par page (lettres, chiffres, tirets).
Titrer par un fait (« Visites mensuelles en 2025 »), pas par « Aperçu ».
Des dates irrégulières sont placées à leur écart réel ; des catégories, à intervalles égaux.
Propriétés
Propriétés de Sparkline
Propriété
Type
Défaut
Description
legend
boolean
true
Légende écrite des repères (défaut : oui) ; `false` quand la valeur est écrite à côté.
labels
Partial<SparkLabels>
—
Textes de l'interface (défaut : français).
id (obligatoire)
string
—
Préfixe unique des ids du titre et de la description : lettres, chiffres et tirets.
title (obligatoire)
string
—
Titre du graphique, premier élément de son nom accessible.
dataset (obligatoire)
Dataset
—
Jeu de données (`schema: 1`) : validé, sinon le build échoue avec le code d'erreur.
locale
string
'fr'
Locale des nombres et des dates. Défaut : `fr`.
tableLabel
string
—
Libellé du tableau de données lié.
emptyLabel
string
—
Message de l'état vide (aucune valeur présente).
errorLabel
string
—
Début du message d'erreur de rendu ; le code d'erreur le suit.
class
string
—
Réservé au placement du composant dans son parent.