Communitygithub.com

borghei/ui-design-system

Générer des jetons de design, créer des palettes de couleurs, calculer des échelles typographiques, construire des systèmes de composants et préparer la documentation pour la remise aux développeurs.

Qu'est-ce que ui-design-system ?

Cette compétence pour agent IA (compatible avec Claude Code, Cursor, Codex, etc.) automatise la création d'un système de design UI complet à partir d'une couleur de marque. Elle génère des jetons de design (couleurs, typographie, espacement, ombres, animations), construit une hiérarchie de composants (atomes, molécules, organismes), calcule une typographie fluide et des points d'arrêt responsifs, et prépare les exports pour les développeurs (CSS, SCSS, JSON) avec des intégrations pour React, Tailwind, et styled-components. L'utilisateur interagit via des invites en langage naturel comme « générer une palette de couleurs » ou « préparer une remise aux développeurs ». L'agent exécute un script Python (`design_token_generator.py`) pour générer les jetons, puis suit des workflows structurés pour construire le système de composants, valider l'accessibilité WCAG, et synchroniser avec Figma via Tokens Studio. La compétence couvre tout, de la génération initiale à la documentation de la remise, avec des tables de référence intégrées pour les échelles de couleurs, la typographie (ratio 1.25x), et les presets de style (moderne, classique, ludique).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/borghei/Claude-Skills/tree/HEAD/product-team/ui-design-system

Demander à votre IA préférée

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

Documentation

Système de Design UI

Générer des jetons de design, créer des palettes de couleurs, calculer des échelles typographiques, construire des systèmes de composants, et préparer la documentation pour la remise aux développeurs.


Table des matières


Termes déclencheurs

Utilisez cette compétence lorsque vous avez besoin de :

  • "générer des jetons de design"
  • "créer une palette de couleurs"
  • "construire une échelle typographique"
  • "calculer un système d'espacement"
  • "créer un système de design"
  • "générer des variables CSS"
  • "exporter des jetons SCSS"
  • "mettre en place une architecture de composants"
  • "documenter une bibliothèque de composants"
  • "calculer des points d'arrêt responsifs"
  • "préparer une remise aux développeurs"
  • "convertir une couleur de marque en palette"
  • "vérifier le contraste WCAG"
  • "construire un système de grille 8pt"

Clarifier d'abord

Avant de générer les jetons ou le système, clarifiez les éléments ci-dessous. Lorsqu'un élément est manquant ou vague et modifierait le résultat, demandez-le ; lorsqu'il ne le modifierait pas, utilisez une valeur par défaut raisonnable et mentionnez celle que vous avez utilisée.

  • Couleur primaire de la marque (hex) : la graine pour la palette complète (détermine l'échelle de couleurs et les vérifications de contraste WCAG).
  • Préréglage de style : moderne, classique ou ludique (définit les polices, le rayon des bordures et le style des ombres).
  • Format de sortie et framework : CSS, SCSS ou JSON pour Tailwind/styled-components/Figma (détermine l'export et la remise aux développeurs).

Posez des questions sur les deux ou trois éléments qui comptent le plus pour cette demande, pas sur toute la liste. Si l'utilisateur souhaite un résultat immédiat, produisez-le et énoncez vos hypothèses en haut.

Workflows

Workflow 1 : Générer des jetons de design

Situation : Vous avez une couleur de marque et avez besoin d'un système complet de jetons de design.

Étapes :

  1. Identifier la couleur de marque et le style

    • Couleur primaire de la marque (format hexadécimal)
    • Préférence de style : modern | classic | playful
  2. Générer les jetons à l'aide du script

    python scripts/design_token_generator.py "#0066CC" modern json
    
  3. Examiner les catégories générées

    • Couleurs : primaire, secondaire, neutre, sémantique, surface
    • Typographie : fontFamily, fontSize, fontWeight, lineHeight
    • Espacement : échelle basée sur la grille 8pt (0-64)
    • Bordures : radius, width
    • Ombres : none jusqu'à 2xl
    • Animation : duration, easing
    • Points d'arrêt : xs jusqu'à 2xl
  4. Exporter dans le format cible

    # Propriétés personnalisées CSS
    python scripts/design_token_generator.py "#0066CC" modern css > design-tokens.css
    
    # Variables SCSS
    python scripts/design_token_generator.py "#0066CC" modern scss > _design-tokens.scss
    
    # JSON pour Figma/outillage
    python scripts/design_token_generator.py "#0066CC" modern json > design-tokens.json
    
  5. Valider l'accessibilité

    • Vérifier que le contraste des couleurs respecte WCAG AA (4.5:1 normal, 3:1 grand texte)
    • Vérifier que les couleurs sémantiques ont des couleurs de contraste définies

Workflow 2 : Créer un système de composants

Situation : Vous devez structurer une bibliothèque de composants en utilisant des jetons de design.

Étapes :

  1. Définir la hiérarchie des composants

    • Atomes : Bouton, Champ, Icône, Étiquette, Badge
    • Molécules : ChampFormulaire, BarreRecherche, Carte, ÉlémentListe
    • Organismes : En-tête, PiedDePage, TableauDonnées, Modale
    • Modèles : DispositionTableauBord, DispositionAuth
  2. Mapper les jetons aux composants

    ComposantJetons utilisés
    Boutoncouleurs, dimensionnement, bordures, ombres, typographie
    Champcouleurs, dimensionnement, bordures, espacement
    Cartecouleurs, bordures, ombres, espacement
    Modalecouleurs, ombres, espacement, z-index, animation
  3. Définir les motifs de variantes

    Variantes de taille :

    sm : hauteur 32px, paddingX 12px, fontSize 14px
    md : hauteur 40px, paddingX 16px, fontSize 16px
    lg : hauteur 48px, paddingX 20px, fontSize 18px
    

    Variantes de couleur :

    primary : fond primary-500, texte blanc
    secondary : fond neutral-100, texte neutral-900
    ghost : fond transparent, texte neutral-700
    
  4. Documenter l'API du composant

    • Interface des props avec types
    • Options de variantes
    • Gestion des états (survol, actif, focus, désactivé)
    • Exigences d'accessibilité
  5. Référence : Voir references/component-architecture.md


Workflow 3 : Design responsive

Situation : Vous avez besoin de points d'arrêt, de typographie fluide ou d'espacement responsive.

Étapes :

  1. Définir les points d'arrêt

    NomLargeurCible
    xs0Petits téléphones
    sm480pxGrands téléphones
    md640pxTablettes
    lg768pxPetits ordinateurs portables
    xl1024pxOrdinateurs de bureau
    2xl1280pxGrands écrans
  2. Calculer la typographie fluide

    Formule : clamp(min, préféré, max)

    /* 16px à 24px entre les fenêtres de 320px et 1200px */
    font-size: clamp(1rem, 0.5rem + 2vw, 1.5rem);
    

    Échelles pré-calculées :

    --fluid-h1: clamp(2rem, 1rem + 3.6vw, 4rem);
    --fluid-h2: clamp(1.75rem, 1rem + 2.3vw, 3rem);
    --fluid-h3: clamp(1.5rem, 1rem + 1.4vw, 2.25rem);
    --fluid-body: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
    
  3. Configurer l'espacement responsive

    JetonMobileTabletteBureau
    --space-md12px16px16px
    --space-lg16px24px32px
    --space-xl24px32px48px
    --space-section48px80px120px
  4. Référence : Voir references/responsive-calculations.md


Workflow 4 : Remise aux développeurs

Situation : Vous devez remettre des jetons de design à l'équipe de développement.

Étapes :

  1. Exporter les jetons dans les formats requis

    # Pour les projets CSS
    python scripts/design_token_generator.py "#0066CC" modern css
    
    # Pour les projets SCSS
    python scripts/design_token_generator.py "#0066CC" modern scss
    
    # Pour JavaScript/TypeScript
    python scripts/design_token_generator.py "#0066CC" modern json
    
  2. Préparer l'intégration du framework

    React + Variables CSS :

    import './design-tokens.css';
    
    <button className="btn btn-primary">Cliquez</button>
    

    Configuration Tailwind :

    const tokens = require('./design-tokens.json');
    
    module.exports = {
      theme: {
        colors: tokens.colors,
        fontFamily: tokens.typography.fontFamily
      }
    };
    

    styled-components :

    import tokens from './design-tokens.json';
    
    const Button = styled.button`
      background: ${tokens.colors.primary['500']};
      padding: ${tokens.spacing['2']} ${tokens.spacing['4']};
    `;
    
  3. Synchroniser avec Figma

    • Installer le plug-in Tokens Studio
    • Importer design-tokens.json
    • Les jetons se synchronisent automatiquement avec les styles Figma
  4. Liste de vérification pour la remise

    • Fichiers de jetons ajoutés au projet
    • Pipeline de build configuré
    • Thème/Variables CSS importés
    • Bibliothèque de composants alignée
    • Documentation générée
  5. Référence : Voir references/developer-handoff.md


Référence des outils

design_token_generator.py

Génère un système complet de jetons de design à partir d'une couleur de marque.

ArgumentValeursDéfautDescription
brand_colorCouleur hexadécimale#0066CCCouleur primaire de la marque
stylemodern, classic, playfulmodernPréréglage de style de design
formatjson, css, scss, summaryjsonFormat de sortie

Exemples :

# Générer des jetons JSON (par défaut)
python scripts/design_token_generator.py "#0066CC"

# Style classique avec sortie CSS
python scripts/design_token_generator.py "#8B4513" classic css

# Vue résumée du style ludique
python scripts/design_token_generator.py "#FF6B6B" playful summary

Catégories de sortie :

CatégorieDescriptionValeurs clés
colorsPalettes de couleursprimary, secondary, neutral, semantic, surface
typographySystème de policesfontFamily, fontSize, fontWeight, lineHeight
spacingGrille 8ptÉchelle 0-64, sémantique (xs-3xl)
sizingTailles de composantscontainer, button, input, icon
bordersValeurs de borduresradius (par style), width
shadowsStyles d'ombresnone jusqu'à 2xl, inner
animationJetons de mouvementduration, easing, keyframes
breakpointsResponsifxs, sm, md, lg, xl, 2xl
z-indexSystème de calquesbase jusqu'à notification

Tableaux de référence rapide

Génération d'échelle de couleurs

ÉtapeLuminositéSaturationCas d'utilisation
5095% fixe30%Arrière-plans subtils
10095% fixe38%Arrière-plans clairs
20095% fixe46%États de survol
30095% fixe54%Bordures
40095% fixe62%États désactivés
500Original70%Couleur de base/par défaut
600Original × 0.878%Survol (foncé)
700Original × 0.686%États actifs
800Original × 0.494%Texte
900Original × 0.2100%Titres

Échelle typographique (ratio 1.25x)

TailleValeurCalcul
xs10px16 ÷ 1.25²
sm13px16 ÷ 1.25¹
base16pxBase
lg20px16 × 1.25¹
xl25px16 × 1.25²
2xl31px16 × 1.25³
3xl39px16 × 1.25⁴
4xl49px16 × 1.25⁵
5xl61px16 × 1.25⁶

Exigences de contraste WCAG

NiveauTexte normalGrand texte
AA4.5:13:1
AAA7:14.5:1

Grand texte : ≥18pt régulier ou ≥14pt gras

Préréglages de style

AspectModerneClassiqueLudique
Police sansInterHelveticaPoppins
Police monoFira CodeCourierSource Code Pro
Rayon par défaut8px4px16px
OmbresSuperposées, subtilesCouche uniqueDouces, prononcées

Base de connaissances

Guides de référence détaillés dans references/ :

FichierContenu
token-generation.mdAlgorithmes de couleur, espace HSV, contraste WCAG, échelles de type
component-architecture.mdDesign atomique, conventions de nommage, motifs de props
responsive-calculations.mdPoints d'arrêt, typographie fluide, systèmes de grille
developer-handoff.mdFormats d'export, configuration framework, synchronisation Figma

Liste de vérification de validation

Génération de jetons

  • Couleur de marque fournie au format hexadécimal
  • Le style correspond aux exigences du projet
  • Toutes les catégories de jetons générées
  • Les couleurs sémantiques incluent des valeurs de contraste

Système de composants

  • Toutes les tailles implémentées (sm, md, lg)
  • Toutes les variantes implémentées (primary, secondary, ghost)
  • Tous les états fonctionnent (survol, actif, focus, désactivé)
  • Utilise uniquement des jetons de design (pas de valeurs codées en dur)

Accessibilité

  • Le contraste des couleurs respecte WCAG AA
  • Les indicateurs de focus sont visibles
  • Les cibles tactiles ≥ 44×44px
  • Éléments HTML sémantiques utilisés

Remise aux développeurs

  • Jetons exportés dans le format requis
  • Intégration framework documentée
  • Outil de design synchronisé
  • Documentation des composants complète

Dépannage

ProblèmeCauseSolution
Les couleurs générées échouent au contraste WCAGCouleur de marque trop claire ou trop saturéeUtilisez des nuances plus foncées (600+) pour le texte sur fond clair ; vérifiez avec un outil de contraste
L'export de jetons a des valeurs incorrectesMauvais argument de format ou syntaxe de couleurAssurez-vous que la couleur hexadécimale est entre guillemets (ex. "#0066CC") ; vérifiez que le format est json, css, ou scss
L'échelle typographique trop grande/petiteLe ratio par défaut 1.25x ne correspond pas au designModifiez type_scale_ratio dans la classe DesignTokenGenerator (1.125 pour plus serré, 1.333 pour plus lâche)
Conflit de variables SCSS avec l'existantCollision de noms de jetonsPréfixez tous les jetons avec l'espace de noms du projet (modifiez la fonction d'export)
Les outils de design affichent des couleurs différentesArrondi hexadécimal dans la génération d'échelle de couleursUtilisez l'export JSON comme source de vérité ; synchronisez avec le plug-in Tokens Studio
Les valeurs d'espacement ne s'alignent pas sur la grilleEspacement personnalisé mélangé à la grille 8ptUtilisez uniquement les valeurs du système d'espacement généré ; évitez les valeurs arbitraires en pixels
Les jetons d'ombre semblent incorrects en mode sombreOmbres conçues pour fonds clairsCréez des jetons d'ombre séparés pour le mode sombre avec des valeurs d'opacité plus claires

Critères de succès

CritèreCibleComment mesurer
Cohérence des jetonsZéro valeur de couleur/d'espacement codée en dur dans le codebaseNombre de violations des règles de lint
Conformité WCAG AATous les textes couleur respectent un rapport de contraste de 4.5:1Vérificateur de contraste automatisé ou audit manuel
Couverture des formats d'exportCSS, SCSS et JSON génèrent correctementExécutez le générateur avec chaque format ; validez la sortie
Synchronisation design-développement<24h entre la mise à jour du jeton et le déploiement du codeTemps entre le changement Figma et la production
Couverture des jetons de composants100% des composants utilisent des jetons de designAuditez les styles des composants pour les valeurs codées en dur
Cohérence typographiqueTout le texte utilise l'échelle typographique du système de designAudit visuel sur toutes les pages
Comportement responsiveLa typographie fluide fonctionne sur tous les points d'arrêtTestez aux largeurs xs, sm, md, lg, xl, 2xl

Périmètre et limitations

Dans le périmètre :

  • Génération complète de jetons de design à partir d'une couleur de marque
  • Génération de palettes de couleurs (primaire, secondaire, neutre, sémantique)
  • Système typographique avec échelle modulaire
  • Système d'espacement basé sur la grille 8pt
  • Jetons de dimensionnement de composants, bordures, ombres, animations
  • Export vers les propriétés personnalisées CSS, les variables SCSS et JSON
  • Définitions de points d'arrêt responsifs
  • Tableaux de référence de contraste WCAG

Hors périmètre :

  • Génération de jetons pour le mode sombre (nécessite un mappage de palette séparé)
  • Bibliothèque de design d'animation/mouvement
  • Génération de système d'icônes
  • Implémentation de changement de thème à l'exécution
  • Intégration d'API ou de plug-in Figma (utilisez Tokens Studio)
  • Tests de régression visuelle
  • Conversion du design en code (utilisez Figma Dev Mode ou Locofy)

Points d'intégration

…

[tronqué pour la traduction]

Individual skills in this repo

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

Skills associés