FormattedDate
Type de ressource : Composant Astro (UI atomique)
Fichier source :src/components/FormattedDate.astro
Statut : Actif
1. Vue dâensemble
Section titled â1. Vue dâensembleâ1.1. Description
Section titled â1.1. DescriptionâComposant pour lâaffichage formatĂ© dâune date. Utilise lâĂ©lĂ©ment HTML <time> avec lâattribut datetime pour lâaccessibilitĂ© et le SEO. Formate la date en anglais (en-us) avec le format âshortâ (ex: Jan 1, 2024).
1.2. Objectif
Section titled â1.2. Objectifâ- Formater les dates de maniĂšre cohĂ©rente sur tout le site
- Assurer lâaccessibilitĂ© via lâĂ©lĂ©ment
<time>et lâattributdatetime - Simplifier lâaffichage des dates (ex: dates de publication des articles)
- Fournir un format de date standardisé
1.3. Caractéristiques
Section titled â1.3. CaractĂ©ristiquesâ| PropriĂ©tĂ© | Valeur |
|---|---|
| Type | UI atomique |
| Hydratation | Aucune |
| Framework JS | Aucun |
| Accessibilité | Conforme (élément <time>) |
| Responsive | Non applicable |
2. Architecture et structure
Section titled â2. Architecture et structureâ2.1. Emplacement dans lâarborescence
Section titled â2.1. Emplacement dans lâarborescenceâsrc/components/âââ BaseHead.astroâââ Header.astroâââ Footer.astroâââ FormattedDate.astroâââ HeaderLink.astro2.2. Composants dĂ©pendants
Section titled â2.2. Composants dĂ©pendantsâ| Composant parent | Fichier | Relation |
|---|---|---|
| BlogPost layout | src/layouts/BlogPost.astro |
Utilisation pour les dates de publication |
| Autres pages | src/pages/*.astro |
Utilisation pour lâaffichage de dates |
2.3. Composants enfants utilisés
Section titled â2.3. Composants enfants utilisĂ©sâAucun composant enfant nâest utilisĂ© (composant leaf).
3. Implémentation
Section titled â3. ImplĂ©mentationâ3.1. Variante : Composant UI atomique (HTML + CSS purs)
Section titled â3.1. Variante : Composant UI atomique (HTML + CSS purs)â---interface Props { date: Date;}
const { date } = Astro.props;---
<time datetime={date.toISOString()}> { date.toLocaleDateString('en-us', { year: 'numeric', month: 'short', day: 'numeric', }) }</time>3.2. Utilisation dans une page
Section titled â3.2. Utilisation dans une pageâ---import FormattedDate from '../components/FormattedDate.astro';const publishDate = new Date('2024-01-15');---
<p>Published on <FormattedDate date={publishDate} /></p>4. Props et interface
Section titled â4. Props et interfaceâ4.1. Props obligatoires
Section titled â4.1. Props obligatoiresâ| Prop | Type | Description | Exemple |
|---|---|---|---|
date |
Date |
Date Ă formater | new Date('2024-01-15') |
4.2. Props optionnelles
Section titled â4.2. Props optionnellesâAucune prop nâest disponible.
4.3. Slots
Section titled â4.3. SlotsâAucun slot nâest implĂ©mentĂ© dans ce composant.
5. StratĂ©gie dâhydratation
Section titled â5. StratĂ©gie dâhydratationâ5.1. Politique dâhydratation
Section titled â5.1. Politique dâhydratationâ| Type de composant | StratĂ©gie | Rationale |
|---|---|---|
| Composant UI atomique | Aucune | HTML pur, pas dâinteraction |
5.2. Directives Astro utilisées
Section titled â5.2. Directives Astro utilisĂ©esâAucune directive nâest utilisĂ©e (composant HTML pur).
5.3. Impact sur les performances
Section titled â5.3. Impact sur les performancesâ| MĂ©trique | Sans hydratation |
|---|---|
| HTML size | +0.2 KB |
| CSS size | 0 KB |
| JS size | 0 KB |
| TTI | Immédiat |
6. Styles et design system
Section titled â6. Styles et design systemâ6.1. Utilisation des design tokens
Section titled â6.1. Utilisation des design tokensâNon applicable - le composant nâa pas de styles inline.
6.2. Responsive design
Section titled â6.2. Responsive designâNon applicable - le composant est responsive par dĂ©faut.
6.3. Mode sombre
Section titled â6.3. Mode sombreâNon implĂ©mentĂ© - le composant utilise les styles par dĂ©faut du navigateur.
7. Accessibilité (a11y)
Section titled â7. AccessibilitĂ© (a11y)â7.1. ConformitĂ© WCAG 2.1 AA
Section titled â7.1. ConformitĂ© WCAG 2.1 AAâ| CritĂšre | ImplĂ©mentation | Statut |
|---|---|---|
| 1.3.1 Info and Relationships | ĂlĂ©ment <time> avec datetime |
â |
| 1.4.3 Contrast (Minimum) | Non applicable (pas de styles) | N/A |
| 2.4.7 Focus Visible | Non applicable (pas dâinteraction) | N/A |
7.2. Attributs ARIA utilisés
Section titled â7.2. Attributs ARIA utilisĂ©sâAucun attribut ARIA nâest utilisĂ© (Ă©lĂ©ment HTML sĂ©mantique <time>).
7.3. Navigation clavier
Section titled â7.3. Navigation clavierâNon applicable (composant non interactif).
7.4. Tests dâaccessibilitĂ©
Section titled â7.4. Tests dâaccessibilitĂ©â# Test avec Lighthousenpx lighthouse http://localhost:4321/ --view8. Performance et optimisation
Section titled â8. Performance et optimisationâ8.1. Optimisations appliquĂ©es
Section titled â8.1. Optimisations appliquĂ©esâ- â HTML statique par dĂ©faut
- â Pas de CSS
- â Pas de JavaScript
- â
Utilisation de lâĂ©lĂ©ment
<time>natif
8.2. Core Web Vitals
Section titled â8.2. Core Web Vitalsâ| MĂ©trique | Objectif | StratĂ©gie |
|---|---|---|
| LCP | < 2.5s | Pas de JS bloquant |
| INP | < 200ms | Pas de JS |
| CLS | < 0.1 | Pas de layout shift |
8.3. Taille du composant
Section titled â8.3. Taille du composantâ| Type | HTML | CSS | JS (hydratĂ©) | Total |
|---|---|---|---|---|
| UI atomique | 0.2 KB | 0 KB | 0 KB | 0.2 KB |
9. Débogage et troubleshooting
Section titled â9. DĂ©bogage et troubleshootingâ9.1. ProblĂšmes courants
Section titled â9.1. ProblĂšmes courantsâ| SymptĂŽme | Cause probable | Solution |
|---|---|---|
| Date incorrecte | Format de date invalide | VĂ©rifier que lâobjet Date est valide |
| Format incorrect | Locale incorrecte | VĂ©rifier la locale âen-usâ |
9.2. Tests manuels
Section titled â9.2. Tests manuelsâ# Test localnpm run dev
# Vérification du format# Vérifier que la date est affichée au format "Jan 1, 2024"9.3. Logs et monitoring
Section titled â9.3. Logs et monitoringâNon applicable (composant statique).
10. Bonnes pratiques
Section titled â10. Bonnes pratiquesâ10.1. Architecture
Section titled â10.1. Architectureâ- â
Utiliser lâĂ©lĂ©ment
<time>pour lâaccessibilitĂ© - â
Fournir lâattribut
datetimepour le SEO - â Typer les props avec TypeScript
- â
Utiliser
toLocaleDateStringpour le formatage localisé
10.2. Accessibilité
Section titled â10.2. AccessibilitĂ©â- â
Utiliser lâĂ©lĂ©ment HTML sĂ©mantique
<time> - â
Fournir lâattribut
datetimepour les lecteurs dâĂ©cran
10.3. Performance
Section titled â10.3. Performanceâ- â Ăviter lâhydratation (pas dâinteraction requise)
- â Pas de JavaScript
10.4. Maintenance
Section titled â10.4. Maintenanceâ- â Mettre Ă jour la locale si nĂ©cessaire
- â Mettre Ă jour le format de date si nĂ©cessaire
11. Ăvolutions et roadmap
Section titled â11. Ăvolutions et roadmapâ11.1. AmĂ©liorations planifiĂ©es
Section titled â11.1. AmĂ©liorations planifiĂ©esâ- Support de diffĂ©rentes locales (via props)
- Support de différents formats de date (via props)
- Ajout de styles personnalisables
11.2. Limitations connues
Section titled â11.2. Limitations connuesâ- â Locale hardcodĂ©e (âen-usâ)
- â Format de date hardcodĂ© (âshortâ)
- â Pas de support de lâheure
- â Pas de styles personnalisables
12. Ressources liées
Section titled â12. Ressources liĂ©esâ- Documentation Astro : Components
- Documentation MDN : time element
- Documentation MDN : toLocaleDateString
- Composants associés :
src/layouts/BlogPost.astro
13. Historique des modifications
Section titled â13. Historique des modificationsâ| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-15 | 1.0 | Création initiale | Devin |