Communitygithub.com

SrRusian/atomic-page-builder

À utiliser lors de la composition d'une page, d'une vue ou d'une fonctionnalité à partir de composants existant déjà dans le système de design du projet. Assemble uniquement la mise en page ; n'invente jamais de nouveaux atomes, molécules ou organismes. Si un composant nécessaire manque, s'arrête et passe la main à la compétence atomic-design.

Qu'est-ce que atomic-page-builder ?

Cette compétence est conçue pour les agents AI qui doivent assembler des pages ou des vues en utilisant exclusivement des composants existants d'un système de design. Elle évite toute création de nouveaux composants, se concentrant uniquement sur la composition et la mise en page. Elle s'intègre avec des outils comme Claude Code ou Cursor pour analyser des spécifications de design (Figma, maquettes) et générer du code (React, CSS) en respectant les tokens de design et le comportement responsive. Si un composant requis est manquant, la compétence s'arrête et déclenche une compétence complémentaire appelée `atomic-design` pour créer le composant manquant. Elle inclut des vérifications automatiques sur plusieurs tailles d'écran, l'accessibilité et la conformité au design source. C'est un outil essentiel pour maintenir la cohérence du système de design tout en accélérant le développement de pages.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SrRusian/claude-toolkit/tree/HEAD/plugins/design-kit/skills/atomic-page-builder

Demander à votre IA préférée

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

Documentation

Atomic Page Builder

Composer des pages à partir de composants existants. Cette compétence assemble ; atomic-design crée.

Règles

À faireÀ ne pas faire
Importer des composants depuis le système de designCréer de nouveaux atomes, molécules ou organismes
Prendre les valeurs de mise en page depuis la source de design (Figma, spécification, maquette)Deviner les grilles, espacements ou marges
Utiliser des styles limités au composant qui lisent depuis les tokensCoder en dur des valeurs (#333, 24px)
Correspondre exactement au design, y compris le comportement responsiveArrondir les valeurs ou ajouter des "améliorations"
Utiliser uniquement la bibliothèque de composants du projetImporter une bibliothèque UI externe que le projet n'utilise pas

Passage à atomic-design

Basculer vers atomic-design lorsque :

  • un atome, une molécule ou un organisme nécessaire n'existe pas ;
  • un nouveau token est requis ;
  • une valeur de token a changé dans le design et doit d'abord être mise à jour.

Flux de travail

  1. Obtenir la spécification de mise en page. Si une source de design existe (Figma via MCP, une spécification, une capture d'écran), en extraire la grille, les espacements, les marges et les points de rupture. Si aucune n'existe, en demander une ou énoncer explicitement les hypothèses. Noter les surcharges spécifiques à la page.
  2. Inventaire. Lister les composants que le projet possède déjà (atomes, molécules, organismes, templates) avec leurs props.
  3. Analyse des écarts. Mapper chaque région de la page à un composant existant. Lister tout élément non apparié.
  4. Construire ou s'arrêter.
    • Tout existe : composer la page, en respectant la spécification à 100%.
    • Quelque chose manque : s'arrêter, signaler les écarts, et basculer vers atomic-design.
  5. Vérifier. Comparer avec le design aux largeurs mobile, tablette et desktop.

Modèle de page

/** Page Dashboard. Mise en page depuis : <lien design ou id de nœud> */
import { DashboardLayout } from '@/design-system/templates/DashboardLayout';
import { Card } from '@/design-system/molecules/Card';
import { DataTable } from '@/design-system/organisms/DataTable';
import styles from './Dashboard.module.css';

export const Dashboard = () => (
  <DashboardLayout>
    <div className={styles.statsGrid}>
      <Card title="Revenu">$12 450</Card>
    </div>
    <DataTable columns={columns} data={data} />
  </DashboardLayout>
);
.statsGrid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-4);
}
@media (min-width: 768px) {
  .statsGrid { grid-template-columns: repeat(3, 1fr); gap: var(--spacing-6); }
}

Adapter les chemins d'import et l'approche de style au projet.

Vérification

Afficher la page dans un vrai navigateur (playwright-cli) à 375, 768 et 1440 px en mode clair et sombre, lire la console, et comparer avec la source de design. Vérifier également l'ordre des titres, les points de repère, la navigation au clavier, et les états de chargement, vide et d'erreur.

Fonctionne avec

BesoinCompétence ou outil
Composant ou token manquantatomic-design (compagnon requis)
Critique ou polissage au niveau de la pageimpeccable
Audit d'accessibilitéfixing-accessibility, design:accessibility-review
Métadonnées de page, titres, Open Graphfixing-metadata
Transfert à l'ingénieriedesign:design-handoff

Règles supplémentaires

  • Composer dans les slots du template ; ne pas accéder à l'intérieur d'un composant ni surcharger ses styles.
  • Les styles spécifiques à la page se limitent à la mise en page (grille, espacements, placement) ; tout ce qui est visuel appartient à un composant ou un token.
  • Ne jamais copier-coller un composant pour le modifier ; demander une variante via atomic-design.
  • Transmettre un contenu réel et représentatif (noms longs, listes vides, erreurs) lors de la vérification de la page.
  • Définir le titre du document et un h1 par page.
  • Un fichier de page contient uniquement la composition et le câblage des données ; pas de logique UI réutilisable.

Références

FichierLire lorsque
references/design-source-extraction.mdExtraction des valeurs de mise en page et rédaction de la spécification de page
references/inventory-and-gaps.mdInventaire des composants et recherche des écarts
references/composition-patterns.mdMises en page, slots, états des données, ordre des imports

Liste de vérification de sortie

  • Les valeurs de mise en page proviennent de la source de design, pas de suppositions
  • Le comportement responsive correspond au design
  • Toutes les imports proviennent du système de design du projet
  • Aucune valeur codée en dur
  • Aucun nouveau composant
  • Lien de design documenté dans le fichier de page

Skills associés