Feature Card

Bloc éditorial compact — icône + titre + corps — avec une affordance d'interactivité visuelle (bordure animée). Pour les sections narratives « valeur par rôle ». Compact editorial block — icon + title + body — with a visual interactivity affordance (animated border). For "value by role" narrative sections.

VariantesVariants

WCAG 2.1 AA vérifié automatiquement avant chaque commit. WCAG 2.1 AA automatically checked before every commit. Tokens sémantiques, contrats de composants et décisions documentées. Semantic tokens, component contracts, and documented decisions.

Règles absoluesAbsolute rules

Tokens de composantComponent tokens

Token CSSRéférenceReferenceValeurValue
--agtc-semantic-color-background-overlay-darksemantic.color.background.overlay-darkrgba(12, 15, 25, 0.78)
--agtc-semantic-color-border-overlay-darksemantic.color.border.overlay-darkrgba(255, 255, 255, 0.06)
--agtc-semantic-color-action-primarysemantic.color.action.primary#007a68
--agtc-semantic-color-brand-accentsemantic.color.brand.accent#ed6b86
--agtc-semantic-space-component-padding-lgsemantic.space.component.padding-lg16px
--agtc-semantic-color-action-primarysemantic.color.action.primary#007a68
--agtc-semantic-color-text-on-dark-secondarysemantic.color.text.on-dark-secondaryrgba(255,255,255,0.75)

AccessibilitéAccessibility

ImplémentationImplementation

<!-- Contexte SaaS — variante par défaut -->
<agtc-feature-card heading="Accessibility" heading-level="3">
  <svg slot="icon" ...></svg>
  WCAG 2.1 AA automatically checked before every commit.
</agtc-feature-card>

<!-- Contexte marketing -->
<agtc-feature-card heading="Designers" variant="marketing" heading-level="3">
  <svg slot="icon" ...></svg>
  Semantic tokens, component contracts, and documented decisions.
</agtc-feature-card>

DOs et DON'TsDOs and DON'Ts

À faireDo

  • Icône qui représente l'intention du bloc, pas une décorationIcon that represents the block's intent, not decoration
  • 1 à 2 phrases courtes dans le corps — pas de liste imbriquée1 to 2 short sentences in the body — no nested list
  • Un seul niveau de titre par section, ajusté avec heading-levelOne heading level per section, adjusted with heading-level

À éviterDon't

  • Bouton primaire à l'intérieur — ce n'est pas une zone d'actionPrimary button inside — not an action zone
  • variant="marketing" hors d'une page data-context="marketing"variant="marketing" outside a data-context="marketing" page
  • Utiliser pour de la navigation — placer un <a> à l'intérieur si cliquableUse for navigation — place an <a> inside if clickable

UX Patterns Reference

Review approved on 2026-06-25 (ADR-063).

PatternSourceAppliedJustification
Icon + title pairingNN/g — Icons & Indicators✅Functional signal: the icon helps identify the block before reading the title
Controlled interactivity affordanceIxDF — UI Design Patterns✅scaleX animation only on hover/focus — no distracting idle animation
Non-interactive by defaultSmashing Magazine — Card patterns✅:host is neither <a> nor <button> — the action goes inside if needed
Touch targets ≥ 24×24pxIxDF — Touch Targets✅36px icon, non-interactive — compliant with WCAG 2.5.8
Flexible heading levelNN/g — Visual Hierarchy✅heading-level attribute (default 3) — avoids skipped levels in page hierarchy
Contextual variantDashboard Design Patterns✅default / marketing — adapts emphasis without duplicating the component
prefers-reduced-motionIxDF — Accessibility✅Border always visible (scaleX(1)), transition disabled
Accessible markupIF — Data Patterns Catalogue✅role="heading" + aria-level in the shadow DOM — SR-agnostic of the wrapper tag
Contribuer à ce projet Contribute to this project

Ce système est ouvert aux contributions — tokens, composants, décisions architecturales, corrections d'accessibilité ou documentation. Toute amélioration est bienvenue. This system welcomes contributions — tokens, components, architectural decisions, accessibility fixes, or documentation. Every improvement counts.

Voir sur GitHub View on GitHub