Communitygithub.com

Système de sélection de dates et de calendrier

Concevoir un cadre systématique pour la sélection de dates et d'heures, gérer les grilles de calendrier, les sélecteurs de plages et les interfaces de planification afin de garantir précision et accessibilité.

Qu'est-ce que Système de sélection de dates et de calendrier ?

Le Système de sélection de dates et de calendrier fournit une méthodologie complète pour concevoir des interfaces de sélection de dates, de plages ou de créneaux horaires. Il répond au problème de friction élevée lié à la manipulation de modèles mentaux complexes (par exemple, « mardi prochain », « le dernier week-end du mois »). Ce système garantit que les sélecteurs de dates soient visuellement clairs, faciles à naviguer au clavier et au toucher, et offrent un retour immédiat sur la validité et la disponibilité. Il couvre les cas d'utilisation courants comme les réservations, la planification, les analyses et la saisie de dates de naissance, tout en précisant quand ne pas l'utiliser (par exemple, pour des dates simples ou mémorisées). Il détaille les entrées (mode de sélection, contraintes, contexte, localisation), les sorties (spécification de l'anatomie de la grille, matrice d'états, spécification de connexion à l'entrée, plan d'accessibilité), et un flux de travail en cinq étapes : sélection du motif de saisie, conception de la grille du calendrier, définition de la logique de plage, conception pour l'accessibilité et planification des adaptations responsives. Il inclut des règles de décision, des contraintes (accessibilité WCAG AA, réactivité, localisation) et des schémas d'échec courants à éviter.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coastdigitalgroup/coastai-skills/tree/HEAD/website-design/calendar-and-date-system

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Système de sélection de dates et de calendrier ?

Objectif

Le système de sélection de dates et de calendrier fournit une méthodologie pour concevoir des interfaces permettant aux utilisateurs de sélectionner des dates uniques, des plages de dates ou des créneaux horaires spécifiques. La sélection de dates est une tâche à forte friction qui implique des modèles mentaux complexes (par exemple, « mardi prochain », « le dernier week-end du mois »). Ce système garantit que les sélecteurs de dates soient visuellement clairs, faciles à naviguer au clavier et au toucher, et offrent un retour immédiat sur la validité et la disponibilité.

Cas d'utilisation

  • Réservations : Sélection des dates d'arrivée/départ pour des hôtels ou des vols.
  • Planification : Choix d'un créneau horaire pour une réunion, un rendez-vous ou une livraison.
  • Analytique et rapports : Définition d'une plage de dates personnalisée (Date de début à Date de fin) pour le filtrage des données.
  • Saisie de date de naissance : Capture de la date de naissance pour la vérification de l'âge ou la configuration du profil.
  • Planification d'événements : Gestion des délais ou jalons dans un outil de gestion de projet.

Quand ne PAS l'utiliser

  • Dates simples : Si vous n'avez besoin que d'une seule date bien connue (comme « Aujourd'hui » ou « Hier »), utilisez un simple bouton ou un lien.
  • Dates mémorisées : Pour les dates que les utilisateurs connaissent par cœur (comme les anniversaires ou les dates d'expiration de cartes de crédit), utilisez des entrées de texte standard avec type="number" ou type="tel" plutôt qu'une grille de calendrier, car elles sont plus rapides à taper qu'à naviguer sur une grille.
  • Temps relatif : Si l'utilisateur n'a besoin que de sélectionner « Les 7 derniers jours » ou « Ce mois-ci », utilisez une liste déroulante ou un groupe de boutons au lieu d'un calendrier complet.

Entrées

  1. Mode de sélection : Date unique, Plage de dates ou Créneau horaire.
  2. Contraintes : Dates minimales/maximales, dates désactivées (par exemple, dates passées, créneaux entièrement réservés).
  3. Contexte : S'agit-il d'un élément de page autonome ou d'un déclencheur de popover/modal ?
  4. Localisation : Formats de date régionaux (MM/JJ/AAAA vs JJ/MM/AAAA) et premier jour de la semaine (dimanche vs lundi).

Sorties

  1. Spécification de l'anatomie de la grille : Définition visuelle de l'en-tête du mois, des étiquettes des jours de la semaine et des cellules de jours.
  2. Matrice d'états : Traitements visuels pour les états Aujourd'hui, Sélectionné, Début de plage, Fin de plage, Dans la plage, Survol et Désactivé.
  3. Spécification de connexion à l'entrée : Comment le calendrier se rapporte au champ de saisie de texte (icône de déclenchement, formatage et prise en charge de la saisie manuelle).
  4. Plan d'accessibilité : Raccourcis clavier (Flèches, Entrée, Échap) et régions live ARIA pour les mises à jour de statut.

Flux de travail

1. Sélectionner le motif de saisie

Choisissez comment l'utilisateur saisit la date :

  • Saisie directe : Champ de texte masqué. Idéal pour une saisie rapide de dates connues.
  • Déclencheur de sélecteur : Une entrée avec une icône de calendrier qui ouvre une superposition. Standard pour la plupart des cas d'utilisation.
  • En ligne/ Persistant : Le calendrier est toujours visible sur la page. Idéal pour les tâches lourdes en planification.

2. Concevoir la grille du calendrier

Établissez un rythme spatial cohérent pour la vue mensuelle :

  • En-tête : Mois et Année avec les boutons de navigation « Précédent » et « Suivant ».
  • Ligne des jours de la semaine : Étiquettes d'une seule lettre ou courtes (L, M, M, J, V, S, D) pour une orientation rapide.
  • La grille à 7 colonnes : Assurez-vous que chaque cellule de jour a suffisamment d'espace pour la date et les indicateurs de statut potentiels (par exemple, un point pour un événement).

3. Définir la logique de plage (si applicable)

Lors de la sélection d'une plage, l'interface doit suivre trois états :

  • Début de sélection : La première date cliquée.
  • La « portée » : La connexion visuelle entre le début et la position de survol actuelle.
  • Fin de sélection : La deuxième date cliquée, finalisant la plage.
  • Retour visuel : Utilisez un remplissage d'arrière-plan subtil pour les dates « Dans la plage », avec des formes distinctes ou un contraste plus élevé pour les extrémités « Début » et « Fin ».

4. Concevoir pour l'accessibilité

  • Navigation au clavier : Les utilisateurs doivent pouvoir se déplacer entre les jours à l'aide des touches Flèche, changer de mois avec PageUp/PageDown et sélectionner avec Entrée.
  • Gestion du focus : Lorsque le sélecteur s'ouvre, le focus doit se déplacer sur la date actuellement sélectionnée ou « Aujourd'hui ».
  • Rôles ARIA : Utilisez role="grid" pour le calendrier, role="columnheader" pour les jours de la semaine et role="gridcell" pour les jours. Utilisez aria-selected="true" pour la sélection active.

5. Planifier les adaptations responsives

  • Vue mobile : Sur les petits écrans, une vue à mois unique est souvent la meilleure. Pour la sélection de plages, envisagez d'empiler deux mois verticalement ou d'utiliser une superposition plein écran.
  • Cibles tactiles : Assurez-vous que chaque cellule de jour mesure au moins 44x44px ou fournissez un espacement adéquat pour éviter les clics accidentels.

Règles de décision

  • La règle « Tapez d'abord » : Autorisez toujours les utilisateurs à taper manuellement la date dans le champ de saisie. Ne les forcez pas à utiliser le calendrier.
  • Limites de mois : Si vous sélectionnez une date très éloignée dans le passé ou le futur (par exemple, 5+ ans), fournissez un sélecteur déroulant Année/Mois au lieu de forcer l'utilisateur à cliquer sur « Suivant » des dizaines de fois.
  • Retour immédiat : Si un utilisateur sélectionne une date invalide (par exemple, un dimanche pour une livraison en semaine uniquement), affichez immédiatement un message d'erreur contextuel plutôt que d'attendre la soumission du formulaire.
  • Début de semaine : Par défaut, utilisez les paramètres régionaux de l'utilisateur (généralement dimanche aux États-Unis, lundi au Royaume-Uni/UE).

Contraintes

  • Accessibilité : Doit respecter le contraste AA des WCAG (4,5:1) pour tous les états de date. Les dates sélectionnées doivent être distinguables par plus que la couleur (par exemple, un arrière-plan solide par rapport à aucun arrière-plan).
  • Réactivité : Les calendriers ne doivent jamais déborder de la fenêtre d'affichage. Les sélecteurs popover doivent utiliser une logique de « retournement » pour rester visibles s'il n'y a pas de place en dessous de l'entrée.
  • Localisation : Prendre en charge différents formats de date et traductions pour les noms des mois et des jours.

Schémas d'échec courants

  • Le « cliqueur infini » : Obliger les utilisateurs à cliquer sur 12 mois pour trouver une date au lieu de fournir un sélecteur d'année.
  • Entrée cachée : Empêcher les utilisateurs de taper la date, ce qui frustre les utilisateurs expérimentés et ceux ayant des troubles moteurs.
  • Petites cibles : Concevoir une grille avec des cellules de 20px impossible à utiliser sur un appareil mobile.
  • Manque de contexte « Aujourd'hui » : Ne pas mettre en évidence la date actuelle, ce qui rend plus difficile pour les utilisateurs de s'orienter.
  • Plages confuses : Ne pas distinguer clairement le « Début » et la « Fin » d'une plage, ou ne pas afficher la portée « Dans la plage ».

Critères de validation

  • Les utilisateurs peuvent naviguer dans le calendrier et sélectionner une date en utilisant uniquement le clavier.
  • La saisie manuelle de texte est prise en charge et validée dans le champ de saisie.
  • La date d'aujourd'hui est visuellement distincte mais n'entre pas en concurrence avec la sélection.
  • Les sélections de plage ont un traitement visuel clair « Début », « Fin » et « Portée ».
  • Les cibles tactiles pour les cellules de jour respectent la recommandation de 44x44px (ou minimum 24x24px avec espacement).
  • Les ratios de contraste pour tous les états (Survol, Sélectionné, Désactivé) respectent les normes WCAG AA.
  • Le calendrier adapte sa disposition (ou passe en plein écran) sur les appareils mobiles.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for progressive disclosure using accordions, ensuring structural integrity, visual affordances, and accessibility across different content densities and devices.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for long-form content, managing readability, vertical rhythm, and information density to ensure a superior reading experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for informational elements that communicate state (Badges) and categorization (Tags) with clarity and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for non-overlay notifications, managing global announcements and contextual inline alerts to communicate system states without interrupting the user's flow.

coastdigitalgroup/coastai-skills

Design and implement a systematic, asymmetrical bento-grid layout framework to organize diverse content types cohesively while maintaining strict visual hierarchy, logical focus order, and responsive flexibility.

coastdigitalgroup/coastai-skills

Design a responsive, mobile-first bottom navigation bar and persistent action dock system for mobile websites and web applications, establishing spatial anchors, tab bar anatomy, badge indicators, thumb-zone ergonomics, safe area inset handling, active/inactive state contrast, and desktop responsive adaptation rules.

coastdigitalgroup/coastai-skills

Design a mobile-first bottom sheet overlay system with configurable detents, drag affordances, safe area padding, responsive desktop modal/popover adaptation, and WCAG AA accessibility compliance.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for secondary navigation trails that provide orientation, context, and one-click access to parent levels in deep information architectures.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for buttons and interactive triggers, managing visual hierarchy, variant logic, and action grouping to ensure clear intent and accessible interaction.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for modular content containers that maintain hierarchy, structural integrity, and action alignment across variable content and responsive viewports.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for horizontal discovery components, managing navigation affordances, scroll behavior, and accessibility to ensure effective content density without compromising usability.

coastdigitalgroup/coastai-skills

Design a systematic, highly accessible, and developer-friendly UI layout framework for code blocks, snippet showcases, multi-file code tabs, line-highlighting, diff views, and syntax token contrast in technical documentation and developer platforms.

coastdigitalgroup/coastai-skills

Design a systematic framework for global command menus (Cmd+K panels) that combines keyboard-driven navigation, command execution, and shortcut discovery into an accessible, responsive overlay.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for threaded conversations, managing nesting depths, action hierarchies, and community signaling to foster engagement and readability.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for side-by-side comparison interfaces, managing high attribute density and responsive complexity to support informed decision-making.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for user privacy, managing consent banners, preference centers, and persistent privacy controls to balance legal compliance with user trust.

coastdigitalgroup/coastai-skills

Design and implement a systematic, highly accessible, and responsive visual layout framework for conversational chat widgets, live chat boxes, and chatbot panels that ensures clear message scannability, native focus flow, and seamless mobile keyboard adaptation.

coastdigitalgroup/coastai-skills

Design a systematic, accessible, and high-conversion framework for custom select dropdowns and comboboxes, defining anatomy, states, search-filtering, and responsive mobile-adaptive patterns.

coastdigitalgroup/coastai-skills

Design and specify a systematic dark theme framework, establishing rules for elevation-based surface colors, desaturated brand accents, text legibility, and media adaptation to ensure an accessible, low-fatigue experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic color palette that ensures WCAG 2.2 accessibility compliance. Trigger this skill when asked to define brand colors, create UI themes, or establish a visual system for a website.

Skills associés