Frise chronologique
VTimeline liste des événements datés dans l’ordre. Chaque VTimelineItem a un marqueur sur la ligne, une date, un titre et son propre contenu.
Utilisation
Order shipped
The parcel left our warehouse in Lyon.Payment confirmed
Paid by card ending in 4242.Order placed
Three items, delivered to Paris.
Exemples
Dates en colonne
layout="split" place les dates dans une colonne de l’autre côté de la ligne, aussi large que la date la plus longue, jusqu’au tiers de la largeur. Sous 30rem, la frise revient à stacked.
Order shipped
The parcel left our warehouse in Lyon.Payment confirmed
Paid by card ending in 4242.Order placed
Three items, delivered to Paris.
Côtés alternés
layout="alternate" envoie un événement sur deux de l’autre côté de la ligne, face à sa date, et revient à stacked sous 36rem. Une année ou un mois s’écrit à cette précision. Les deux dispositions côte à côte prennent leur largeur de leur parent : dans une rangée flex, donnez à la frise une base propre.
Project started
A handful of components for an internal tool.First public preview
Published on npm with twelve components.Version 1.0
A stable API, documented in English and French.Version 2.0
Design tokens, dark theme and nineteen new components.
Horizontale
orientation="horizontal" dispose les événements en largeur, marqueurs, dates et titres alignés. Quand ils ne tiennent plus, la liste défile et devient un arrêt de tabulation pour qu’on puisse la faire défiler au clavier.
Research
Design
Build
Beta
Launch
Marqueurs
tone colore le marqueur et icon le dessine dans une pastille ronde. Le slot marker le remplace, par exemple par un avatar. Les marqueurs sont masqués aux lecteurs d’écran : dites dans le titre ce que signifie le ton.
Deployed to production
Release 2.0.1 is live.Tests retried
Two browser tests passed on the second attempt.Build failed
Type error in the date input.Camille approved the changes
Commit pushed
Dates
timeText affiche une date relative tandis que <time> garde la date exacte. locale et formatOptions changent l’écriture des jours et des instants. Sur une page rendue côté serveur, définissez timeZone dans formatOptions pour les dates qui portent un décalage.
Camille commented
Sam approved
Alex opened it
Kick-off
Design review
Release
API
Props
| Prop | Type | Défaut |
|---|---|---|
orientation | TimelineOrientation'vertical' | 'horizontal' | 'vertical' |
| Événements de haut en bas ou de gauche à droite. | ||
layout | TimelineLayout'stacked' | 'split' | 'alternate' | 'stacked' |
| Place des dates d’une frise verticale : au-dessus des titres, en colonne de l’autre côté de la ligne, ou face au contenu sur des côtés alternés. | ||
size | TimelineSize'sm' | 'md' | 'md' |
| Densité des espacements, des marqueurs et du texte du contenu. | ||
headingLevel | TimelineHeadingLevel1 | 2 | 3 | 4 | 5 | 6 | aucune |
Rend les titres en h1 à h6. Sans elle, ce sont des paragraphes. | ||
locale | string | aucune |
| Locale d’écriture des dates. Par défaut, celle du design system. | ||
formatOptions | Intl.DateTimeFormatOptions | aucune |
Options Intl.DateTimeFormat des jours et des instants. Les années et les mois gardent leur format. | ||
| Prop | Type | Défaut |
|---|---|---|
datetime | string | aucune |
Année, mois, jour ou instant ISO, écrit dans la locale à l’intérieur d’un <time>. | ||
timeText | string | aucune |
| Texte visible qui remplace la date écrite. | ||
title | string | aucune |
Ce qui s’est passé. Remplacé par le slot title. | ||
tone | TimelineItemTone'neutral' | 'accent' | 'danger' | 'success' | 'warning' | 'accent' |
| Couleur du marqueur. | ||
icon | IconSource | aucune |
| Icône dessinée dans une pastille ronde à la place du point. | ||
Slots
| Slot | Type |
|---|---|
default | {} |
Enfants VTimelineItem. | |
| Slot | Type |
|---|---|
default | {} |
| Détails de l’événement. | |
title | {} |
| Titre avec balisage. | |
marker | {} |
| Remplace le point ou la pastille. C’est une décoration. | |
Types
Types utilisés dans les tables d’API. Importez les types exportés depuis vectis-ui.
export interface BuiltinIcon {
name: string
paths: readonly [string] | readonly [string, string]
}export type IconRender =
| { path: string; viewBox?: string }
| { component: Component; props?: Record<string, unknown> }
| { src: string }
| { text: string; class?: string }
| { class: string }export type IconSource = string | BuiltinIcon | IconRender
Variables CSS
| Token | Valeur |
|---|---|
--vectis-control-size-timeline-dot-sm | 0.5rem |
--vectis-control-size-timeline-dot-md | 0.625rem |
--vectis-control-size-timeline-icon-sm | 1.5rem |
--vectis-control-size-timeline-icon-md | 2rem |
--vectis-control-size-timeline-item-min | 12rem |