Introduction

L'équipe de GitHub Copilot CLI a demandé une petite bannière pour la nouvelle expérience en ligne de commande, mais ils ont découvert que créer une animation ASCII dans un terminal est l'un des problèmes d'ingénierie d'interface utilisateur les plus contraints. Cette tâche a nécessité un travail d'ingénierie sérieux, une complexité inattendue, une chaîne d'outils de conception personnalisée et un couplage étroit entre un designer et un ingénieur expérimenté en ligne de commande.

Contexte Technique

Les terminaux interprètent les codes de couleur ANSI de manière différente, les lecteurs d'écran traitent les caractères qui changent rapidement comme du bruit, les moteurs de disposition varient, les tampons clignotent et les utilisateurs remplacent les couleurs globales pour des raisons d'accessibilité. Il n'y a pas de canevas, pas de compositeur, pas de modèle de rendu cohérent et pas de cadre d'animation standard. Pour résoudre ces problèmes, l'équipe a dû créer une chaîne d'outils de conception personnalisée pour gérer les contraintes d'accessibilité et les inconsistencies des terminaux.

Analyse et Implications

L'animation de la bannière ASCII a nécessité plus de 6 000 lignes de code TypeScript, dont la plupart étaient dédiées à la gestion des inconsistencies des terminaux, des contraintes d'accessibilité et de la logique de rendu maintenable. Les implications concrètes incluent la nécessité d'une approche personnalisée pour la conception et la mise en œuvre d'animations ASCII, la prise en compte des contraintes d'accessibilité dès le départ et la création d'outils de conception spécialisés pour gérer les complexities des terminaux.

Perspective

Il est important de surveiller les évolutions futures des technologies de terminal et des outils de conception pour améliorer l'expérience utilisateur et la prise en compte des contraintes d'accessibilité. Les limites et les inconnues incluent la standardisation des codes de couleur ANSI, l'amélioration des outils de conception pour les animations ASCII et la mise en œuvre de cadres d'animation plus efficaces pour les terminaux.