Grace
Roadmap des talents

Frontend

Profil Frontend Artisan — qualité d'interface.

Persona Frontend Artisan — qualité d'interface : design-first, accessibilité, composants testés, performance perçue.

Dépendances (cœur P0–P1)

flowchart TB
  classDef existing fill:#eee,stroke:#999,color:#555;
  classDef composite fill:#e7e3ff,stroke:#6d5ef6,color:#3a2f9e;
  classDef atomic fill:#fff,stroke:#6d5ef6,color:#3a2f9e;

  doerr["error-handling.domain-errors"]:::existing
  pyramid["testing.test-pyramid"]:::existing

  comp["component-patterns"]:::atomic
  a11y["accessibility"]:::composite
  ds["design-system"]:::composite
  test["testing"]:::atomic
  state["state-management"]:::atomic
  vitals["web-vitals"]:::atomic
  resil["error-resilience"]:::atomic

  comp --> ds
  a11y --> ds
  test -.-> ds
  pyramid -.-> test
  comp --> state
  a11y -.-> vitals
  doerr -.-> resil
  test -.-> a11y

Talents

P0 → P2 = à développer. Dans « Dépend de » : requires · recommends · inclut (composite).

Qualité & accessibilité

TalentTypePDépend deDescription
frontend.accessibilitycompositeP0⊃ semantic-html, aria-patterns, color-contrast · ≈ testingChapeau WCAG / RGAA regroupant les niveaux ci-dessous.
frontend.semantic-htmlatomicP0HTML sémantique : landmarks, hiérarchie de titres, structure de page, alt.
frontend.aria-patternsatomicP1→ semantic-htmlRôles & états ARIA, live regions, widgets composites (WAI-ARIA APG).
frontend.color-contrastatomicP1≈ design-systemCouleur & contraste : niveaux AA / AAA, jamais la couleur comme seul signal.
frontend.testingatomicP0≈ testing.test-pyramidVitest, Testing Library, Playwright, a11y testing.
frontend.ux-principlesatomicP2≈ accessibilityHeuristiques Nielsen, Laws of UX.

Design system & composants

TalentTypePDépend deDescription
frontend.design-systemcompositeP0→ component-patterns · ≈ accessibilityAtomic Design, design tokens, Storybook.
frontend.component-patternsatomicP1Patterns React/Vue, composition, performance de rendu.
frontend.polymorphic-componentsatomicP2≈ component-patternsComposants polymorphes : prop as, génériques typés, render props.
frontend.figma-handoffatomicP2≈ design-systemExtraction de tokens, auto-layout → CSS.
frontend.animationatomicP2≈ accessibilityFramer Motion, reduced-motion, FLIP.

Layout & adaptation

TalentTypePDépend deDescription
frontend.responsiveatomicP2≈ design-systemContainer queries, fluid typography, CSS Grid.
frontend.mobile-firstatomicP2≈ responsiveConception mobile-first, ergonomie tactile, target-size. (dev mobile natif hors périmètre Hoppr — à arbitrer avec Nico)
frontend.i18natomicP1≈ component-patternsInternationalisation, pluralisation, RTL, formats.

État & données

TalentTypePDépend deDescription
frontend.local-stateatomicP1≈ component-patternsPrimitives natives d'abord (« less is more ») : useState / useReducer / useSyncExternalStore.
frontend.state-managementatomicP1≈ local-state · → component-patternsLib externes quand l'état dépasse les primitives : état serveur vs client (TanStack Query, Zustand…).
frontend.data-vizatomicP2≈ accessibilityD3 / Chart.js / Recharts, dashboards accessibles.

Performance & résilience

TalentTypePDépend deDescription
frontend.web-vitalsatomicP1≈ accessibilityLCP / INP / CLS, SEO technique, Lighthouse.
frontend.error-resilienceatomicP1≈ error-handling.domain-errorsError Boundaries, retry, états offline.
frontend.pwaatomicP2≈ error-resilienceService Workers, Workbox, offline-first.
frontend.securityatomicP1XSS, CSP, CORS, OWASP frontend.

Architecture front

TalentTypePDépend deDescription
frontend.clean-architecturecompositeP2→ component-patterns · ≈ state-managementClean archi côté front : UI / logique / accès données séparés, ports vers l'extérieur.
frontend.solid-frontatomicP2≈ clean-architecturePrincipes SOLID appliqués aux composants & hooks.
frontend.feature-structureatomicP2Organisation par feature/slice : colocation, frontières de module.
frontend.micro-frontendscompositeP2→ monorepo · ≈ component-patternsModule Federation, déploiement indépendant.
frontend.monorepoatomicP2Turborepo / Nx, packages partagés, changesets.

On this page