Copié dans le presse-papier
Convention de nommage Figma → SFCMS 7 - félixcréation v1.0 - Symfony 7.4
Introduction

Pourquoi cette convention ?

Nous utilisons Claude Code avec le MCP Figma pour importer automatiquement vos maquettes dans le CMS. L'IA lit la structure de vos fichiers Figma et crée les pages, zones, colonnes et blocs en base de données - éditables immédiatement dans le back-office.

Le processus

1
Vous maquettez Dans Figma, en nommant
les calques avec des préfixes
2
Claude Code lit Via le MCP Figma,
il reçoit la structure complète
3
Il interprète Identifie chaque élément
comme un bloc CMS
4
Il crée en base Pages, zones, colonnes,
blocs - prêts en BO
Votre travail créatif ne change pas. La seule différence : vous nommez vos frames et composants avec des préfixes normalisés entre crochets. Le design reste entièrement libre.
Fondamentaux

Les 5 règles d'or

Tout le système repose sur ces principes simples.

Les 5 règles

  1. Le préfixe est toujours entre crochets - [slider] [nav] [faq]
  2. Les variantes sont séparées par un pipe | - [slider|splide] [cta|primary]
  3. Les variantes sont cumulables - [slider|splide|rounded]
  4. Le reste du nom est libre (votre description) - [slider|splide|rounded] Témoignages clients
  5. Insensible à la casse - [Slider] = [slider] = [SLIDER]

Anatomie d'un nom de calque

[slider|splide|rounded] Témoignages clients
Type de bloc Variante / Template Modificateur Nom libre (pour vous)
Structure

Structure de page

Le CMS structure chaque page en : Page → Zones → Colonnes → Blocs. Votre maquette Figma doit refléter cette hiérarchie via l'imbrication des frames.

Préfixe FigmaÉlément CMSDescription
[page]Page + LayoutFrame racine de la page. Contient toutes les zones.
[page|home]Page d'accueilTemplate home.html.twig, marquée comme index du site.
[page|cms]Page contenuTemplate cms.html.twig. Le plus courant.
[page|legacy]Page légalePages réglementaires : mentions légales, politique de confidentialité, gestion des cookies. Template legacy.html.twig, alimenté par les informations légales du site.
[page|product-index]Liste produitsPage catalogue paginée (module Catalog), template catalog/index.html.twig.
[page|product-view]Fiche produitDétail d'un produit (module Catalog), template catalog/view.html.twig.
[page|newscast-index]Liste actualitésListe paginée des articles (module Newscast), template newscast/index.html.twig.
[page|newscast-view]Fiche actualitéDétail d'un article (module Newscast), template de vue du module.
[zone]ZoneSection horizontale. Contient des colonnes.
[zone|section]Zone <section>Rendu HTML sémantique avec balise <section>.
[zone|fullwidth]Zone pleine largeurPas de container, bord à bord.
[col]ColonneGrille Bootstrap (1-12). Taille déduite de la largeur dans Figma.
Auto-détection Les frames de premier niveau dans une page sont automatiquement interprétés comme des zones. Les frames côte à côte (auto-layout horizontal) sont interprétés comme des colonnes. Le préfixe [zone] ou [col] n'est nécessaire que pour lever une ambiguïté.

Exemple - Page d'accueil complète

Arborescence Figma Figma Layers
[page|home] Accueil ├── [nav|fixed] Navigation principale ├── [zone|fullwidth] Hero │ └── [slider|home] Slider Hero │ ├── Slide 1 - Bienvenue │ └── Slide 2 - Offre du moment ├── [zone|section] Nos services │ ├── [title|header] Ce que nous faisons │ ├── [col] Service 1 │ │ └── [card] Création web │ ├── [col] Service 2 │ │ └── [card] SEO │ └── [col] Service 3 │ └── [card] Hébergement ├── [zone|bg:dark] Chiffres clés │ ├── [counter] +200 clients │ ├── [counter] 15 ans d'expérience │ └── [counter] 98% de satisfaction ├── [zone|section] Témoignages │ └── [slider|splide|rounded] Avis clients ├── [zone] Dernières actus │ └── [newscast|teaser] 3 derniers articles └── [footer] Pied de page

Exemple - Page intérieure simple

Arborescence Figma Figma Layers
[page|cms] Qui sommes-nous ├── [zone] Introduction │ ├── [title|header] Notre histoire │ ├── [intro] Depuis 2010, nous accompagnons... │ └── [image] Photo équipe ├── [zone|section] Notre équipe │ ├── [col] Jean Dupont │ │ ├── [image|rounded] Portrait │ │ ├── [title] Jean Dupont │ │ └── [text] Directeur général │ └── [col] Marie Martin │ ├── [image|rounded] Portrait │ ├── [title] Marie Martin │ └── [text] Directrice créative └── [zone] Nous contacter ├── [text] Envie d'en savoir plus ? └── [cta|primary] Contactez-nous
Contenu

Titres & Textes

Les briques de base pour tout contenu éditorial.

Préfixe FigmaBloc CMSQuand l'utiliser
[title]titleTitre principal d'une section (H2, H3…)
[title|header]title-headerEn-tête de section complet : titre + sous-titre + chapô
[text]textParagraphe de texte, contenu riche HTML
[intro]layout-introTexte d'introduction / chapô (mise en forme distincte)
[blockquote]blockquoteCitation mise en exergue

Exemple - Zone éditoriale classique

Contenu éditorial Figma
[zone|section] À propos ├── [title|header] Notre vision → BlockIntl.title + .subTitle ├── [intro] Depuis 15 ans, nous croyons que... → BlockIntl.introduction ├── [text] Lorem ipsum dolor sit amet... → BlockIntl.body (HTML) ├── [blockquote] "L'innovation est ce qui distingue..." └── [text] Suite du contenu...
Médias

Images & Médias

Images, vidéos, galeries - les médias sont importés automatiquement depuis Figma et rattachés aux entités Media du CMS.

Préfixe FigmaBloc CMSQuand l'utiliser
[image]mediaImage seule (photo, illustration)
[image|rounded]media + radiusImage avec coins arrondis (portrait, avatar…)
[video]videoVidéo embed (YouTube, Vimeo, MP4)
[gallery]Gallery (3 cols)Grille d'images, 3 colonnes par défaut
[gallery|popup]Gallery + lightboxGalerie avec ouverture plein écran au clic
[gallery|3cols]Gallery 3 colonnesExplicite : 3 colonnes
[gallery|4cols]Gallery 4 colonnesGalerie plus dense

Exemple - Zone avec galerie et vidéo

Médias Figma
[zone|section] Nos réalisations ├── [title|header] Portfolio ├── [gallery|popup|4cols] Projets récents │ ├── Projet Alpha.jpg ← chaque image = 1 MediaRelation │ ├── Projet Beta.jpg │ ├── Projet Gamma.jpg │ └── Projet Delta.jpg ├── [separator] ├── [title] Découvrez notre processus └── [video] Vidéo de présentation ← embed YouTube/Vimeo

Logos & image d'en-tête

Ces trois éléments sont des médias globaux du site (réglés une seule fois dans le back-office, sous Information → Logos), pas des images de contenu. Taguez-les explicitement pour que Claude Code les rattache à la bonne catégorie au lieu de les importer comme une image de bloc.

Préfixe FigmaCatégorie CMSQuand l'utiliser
[logo]logoLogo principal du site, affiché dans la navigation
[logo|footer]footerLogo de pied de page (souvent version monochrome / claire)
[image|header]title-headerImage d'en-tête / bandeau par défaut des pages intérieures
Médias uniques, réutilisés partout Inutile de répéter ces tags sur chaque page : un seul [logo] et un seul [logo|footer] suffisent pour tout le site. S'ils ne sont pas tagués, Claude Code retombe sur la détection automatique (une image dans un [nav] ou [footer] est traitée comme logo), mais le tag explicite lève toute ambiguïté.

Exemple - Logos en nav / footer & bandeau de page

Logos & en-tête Figma
[nav|fixed] Navigation principale ├── [logo] Logo principal → catégorie « logo » └── [nav-link] Accueil [page|cms] Qui sommes-nous ├── [image|header] Bandeau de la page → catégorie « title-header » └── [zone] Contenu… [footer] Pied de page └── [logo|footer] Logo pied de page → catégorie « footer »
Interactions

Boutons / CTA

Deux familles distinctes. [btn] pour les boutons d'interface (génère les classes Bootstrap btn-*) et [cta] pour les appels à l'action mis en avant (génère les classes cta-*). Chaque famille porte ses propres variantes de style.

Boutons [btn]

Boutons d'action et d'interface. Style Bootstrap standard.

Préfixe FigmaStyle CSS généréRendu
[btn]btn (défaut)Bouton standard
[btn|primary]btn-primaryBouton couleur principale du site
[btn|secondary]btn-secondaryBouton couleur secondaire
[btn|outline]btn-outline-primaryBouton contour, fond transparent
[btn|back]bouton retourRetour à la page précédente

CTA [cta]

Appels à l'action mis en avant. Génère les classes cta-* (style propre au site, distinct des boutons d'interface).

Préfixe FigmaStyle CSS généréRendu
[cta]cta (défaut)CTA standard
[cta|primary]cta-primaryCTA couleur principale du site
[cta|secondary]cta-secondaryCTA couleur secondaire
[cta|outline]cta-outlineCTA contour, fond transparent
[cta|link]lien simpleTexte cliquable (pas de bouton)
[cta|external]lien externeOuvre dans un nouvel onglet

Exemple - Zone avec CTA multiples

Call-to-action Figma
[zone|section|bg:primary] Passez à l'action ├── [title] Prêt à démarrer votre projet ? ├── [text] Contactez-nous pour un devis gratuit... ├── [cta|primary] Demander un devis → targetStyle="cta-primary" ├── [cta|outline] En savoir plus → targetStyle="cta-outline" └── [cta|link] Voir nos tarifs → → lien simple
Carrousels

Carrousels / Sliders

5 templates de carrousel disponibles, chacun déclinable en droit (coins carrés) ou arrondi (border-radius).

Les 5 templates

PréfixeTemplateComportement
[slider]bootstrapCarousel classique, 1 slide visible, effet fondu
[slider|splide]splideMulti-items : 4 desktop / 3 miniPC / 2 tablette / 1 mobile
[slider|banner]bannerBannière lente (15s), idéale pour des logos partenaires
[slider|home]main-homeSlider héro plein écran pour la page d'accueil
[slider|two-columns]two-columnsSlider en 2 colonnes (image + contenu texte)

Droit vs Arrondi

DROIT - par défaut
Coins carrés, pas de border-radius
radius = false

Pas de modificateur nécessaire

ARRONDI
Coins arrondis sur les images
radius = true

Ajouter |rounded

Toutes les combinaisons

[slider]Bootstrap droit
[slider|rounded]Bootstrap arrondi
[slider|splide]Splide droit
[slider|splide|rounded]Splide arrondi
[slider|banner]Bannière droit
[slider|banner|rounded]Bannière arrondi
[slider|home]Hero droit
[slider|home|rounded]Hero arrondi
[slider|two-columns]2 colonnes droit
[slider|two-columns|rounded]2 colonnes arrondi

Options supplémentaires

ModificateurEffetExemple
items:NNombre d'items visibles par écran (splide) - optionnel[slider|splide|items:3]
indicatorsPoints de pagination[slider|splide|indicators]
no-controlsMasquer les flèches[slider|banner|no-controls]
no-autoplayPas de défilement automatique[slider|no-autoplay]
progressBarre de progression[slider|splide|progress]
thumbnailsVignettes de navigation[slider|thumbnails]
popupLightbox au clic[slider|popup]
fadeTransition fondu (défaut)[slider|fade]
slideTransition glissement[slider|slide]
Nombre d'items par écran (splide uniquement) Optionnel. Sans tag, le splide affiche 4 items en desktop, 3 en miniPC, 2 en tablette, 1 en mobile. Pour forcer une valeur :
  • items:N - fixe le nombre d'items en desktop, les breakpoints inférieurs s'ajustent automatiquement. Ex. [slider|splide|items:3]
  • items:D-M-T-Mo - contrôle complet par breakpoint : desktop / miniPC / tablette / mobile. Ex. [slider|splide|items:4-3-2-1]
Ces valeurs alimentent les champs itemsPerSlide / itemsPerSlideMiniPC / itemsPerSlideTablet / itemsPerSlideMobile, toujours modifiables ensuite dans le back-office.

Exemple - Slider héro (droit)

Hero Slider Figma
[slider|home] Hero principal ← template=main-home, radius=false ├── Slide 1 │ ├── Image hero printemps.jpg ← SliderMediaRelation │ ├── [title] Bienvenue chez Félix ← MediaRelation.title │ └── [cta|primary] Découvrir nos services ← MediaRelation.targetLink └── Slide 2 ├── Image hero offre.jpg ├── [title] Offre spéciale été └── [cta|secondary] En profiter

Exemple - Témoignages multi-items (arrondi)

Splide arrondi Figma
[slider|splide|rounded|indicators] Témoignages clients ├── Slide - Jean D. ← radius=true sur chaque slide │ ├── [image|rounded] Portrait │ └── [text] "Très satisfait du service..." ├── Slide - Marie M. │ ├── [image|rounded] Portrait │ └── [text] "Service impeccable..." ├── Slide - Pierre L. │ └── ... └── Slide - Sophie B. └── ...

Exemple - Logos partenaires (bannière arrondi, sans flèches)

Banner arrondi Figma
[slider|banner|rounded|no-controls] Nos partenaires ├── Logo partenaire 1.png ├── Logo partenaire 2.png ├── Logo partenaire 3.png └── Logo partenaire 4.png
Composants

Cards (fiches)

Bloc composite : image + titre + texte + CTA. Le composant le plus courant pour présenter des services, produits ou articles en grille.

Préfixe FigmaBloc CMSDescription
[card]cardFiche standard (coins droits)
[card|rounded]card + radiusFiche avec coins arrondis et ombre

Exemple - Grille de services (3 colonnes)

Cards en grille Figma
[zone|section] Nos services ├── [title|header] Ce que nous proposons ├── [col] Col 1 ← auto-détecté comme col-md-4 (1/3) │ └── [card|rounded] Création web │ ├── [image] illustration-web.jpg → BlockMediaRelation │ ├── [title] Création de site internet → BlockIntl.title │ ├── [text] Sites vitrines, e-commerce... → BlockIntl.body │ └── [cta|primary] En savoir plus → BlockIntl.targetLink ├── [col] Col 2 │ └── [card|rounded] SEO │ ├── [image] illustration-seo.jpg │ ├── [title] Référencement naturel │ ├── [text] Optimisation on-page... │ └── [cta|primary] En savoir plus └── [col] Col 3 └── [card|rounded] Hébergement ├── [image] illustration-hosting.jpg ├── [title] Hébergement & maintenance ├── [text] Serveurs sécurisés... └── [cta|primary] En savoir plus
Composants

FAQ / Accordéon

Accordéon de questions/réponses avec données structurées SEO (Schema.org) générées automatiquement.

Préfixe FigmaEntité CMSDescription
[faq]Module FaqAccordéon classique (1 ouverte à la fois)
[faq|all-open]Module FaqToutes les réponses visibles par défaut
[faq|all-closed]Module FaqToutes fermées par défaut
[faq|no-microdata]Module FaqSans données structurées SEO
[faq-question]Entité QuestionChaque paire question/réponse

Exemple - FAQ complète

FAQ Figma
[zone|section] Questions fréquentes ├── [title|header] Vos questions, nos réponses └── [faq] FAQ principale ├── [faq-question] Comment passer commande ? │ └── Vous pouvez commander directement → QuestionIntl.body sur notre site, 24h/24. Il vous suffit de créer un compte et... ├── [faq-question] Quels sont les délais de livraison ? │ └── Comptez 48h ouvrées en moyenne pour la France métropolitaine... ├── [faq-question] Comment retourner un article ? │ └── Vous disposez de 14 jours pour nous retourner tout article non utilisé... └── [faq-question] Proposez-vous un SAV ? └── Oui, notre équipe SAV est disponible du lundi au vendredi de 9h à 18h...
Contenu des questions Le nom du calque [faq-question] devient le titre (la question affichée). Le contenu texte à l'intérieur du frame devient la réponse.
Modules

Modules spécialisés

Fonctionnalités métier du CMS. Le préfixe indique à Claude Code quel module instancier.

Onglets

Préfixe FigmaModule CMSDescription
[tab]Tab horizontalOnglets en haut, contenu en dessous
[tab|vertical]Tab verticalOnglets à gauche, contenu à droite
[tab|accordion]Tab accordéonVersion dépliable
[tab-content]ContentContenu d'un onglet individuel
Onglets Figma
[tab] Nos formules ├── [tab-content] Formule Starter │ ├── [title] Starter - 490€/mois │ ├── [text] Idéal pour débuter... │ └── [cta|primary] Choisir cette formule ├── [tab-content] Formule Pro │ └── ... └── [tab-content] Formule Enterprise └── ...

Formulaires

Préfixe FigmaBloc CMSType de champ
[form]Module FormConteneur du formulaire
[form|step]Module StepFormFormulaire multi-étapes
[form-field|text]form-textChamp texte simple
[form-field|email]form-emailChamp email
[form-field|phone]form-phoneChamp téléphone
[form-field|textarea]form-textareaZone de texte multiligne
[form-field|select]form-choice-typeListe déroulante
[form-field|checkbox]form-checkboxCase à cocher
[form-field|file]form-fileUpload de fichier
[form-field|date]form-dateSélecteur de date
[form-field|gdpr]form-gdprConsentement RGPD (obligatoire)
[form-field|submit]form-submitBouton d'envoi

Champ obligatoire ou facultatif

Par défaut, un champ est facultatif. Pour le rendre obligatoire, on ajoute le modificateur required à la fin de ses variantes : un champ email facultatif [form-field|email] devient obligatoire en écrivant [form-field|email|required].

ModificateurPropriété CMSExemple
requiredFieldConfiguration.required = true[form-field|email|required]
(aucun)FieldConfiguration.required = false (défaut)[form-field|text]
Champ obligatoire vs facultatif Figma
[form] Formulaire de contact ├── [form-field|text|required] Nom → required=true, validé à l'envoi ├── [form-field|email|required] Email → required=true ├── [form-field|phone] Téléphone → required=false (facultatif, défaut) ├── [form-field|gdpr] J'accepte la politique... → toujours obligatoire └── [form-field|submit] Envoyer
Par défaut, un champ est facultatif Sans modificateur, required = false. Le tag required bascule le champ en obligatoire et active la validation côté formulaire. Le champ [form-field|gdpr] reste toujours obligatoire, qu'on l'indique ou non. required se cumule avec les autres variantes : [form-field|email|required], [form-field|textarea|required].
Formulaire Figma
[zone|section] Contact ├── [title|header] Contactez-nous └── [form] Formulaire de contact ├── [form-field|text|required] Nom → obligatoire ├── [form-field|text] Prénom → facultatif ├── [form-field|email|required] Email → obligatoire ├── [form-field|phone] Téléphone ├── [form-field|select] Sujet ├── [form-field|textarea|required] Votre message → obligatoire ├── [form-field|gdpr] J'accepte la politique... └── [form-field|submit] Envoyer

Index & Listes (Actualités, Produits…)

Préfixe FigmaAction CMSDescription
[newscast|index]Newscast indexListe paginée de toutes les actualités
[newscast|teaser]Newscast teaserAperçu des 3-4 derniers articles
[newscast|teaser|slider]Newscast teaser sliderDernières actus en carrousel
[catalog|index]Catalog indexGrille de produits avec filtres
[catalog|teaser]Catalog teaserSélection de produits vedettes
[catalog|teaser|slider]Catalog teaser sliderProduits en carrousel
[portfolio|index]PortfolioGrille de réalisations
[recruitment|index]RecruitmentListe d'offres d'emploi

Filtres sur un index

Par défaut, un index ne présente aucun formulaire de filtres. Ajouter le modificateur filters sur l'action d'index pour afficher le filtre par catégorie : [newscast|index|filters].

ModificateurPropriété CMSExemple
filtersListing.displayFilters = true[newscast|index|filters]
filters-inlineListing.filtersInline = true[newscast|index|filters|filters-inline]
Deux affichages possibles pour les filtres filters active le formulaire de filtres de l'index (filtre par catégorie). Par défaut, il s'affiche sous forme de menu déroulant avec recherche. En ajoutant filters-inline, les filtres passent en ligne (boutons / chips de catégories côte à côte). Ces modificateurs s'appliquent à n'importe quel index : [newscast|index|filters], [catalog|index|filters|filters-inline], [portfolio|index|filters].
Index d'actualités avec filtres Figma
[page|newscast-index] Toutes nos actualités └── [zone|section] Liste des articles ├── [title|header] Nos actualités └── [newscast|index|filters|filters-inline] Articles filtrables → displayFilters=true, filtersInline=true
Index produits avec filtres Figma
[page|product-index] Tous nos produits └── [zone|section] Catalogue ├── [title|header] Notre catalogue └── [catalog|index|filters|filters-inline] Produits filtrables → displayFilters=true, filtersInline=true
Actualités Figma
[zone|section] Nos actualités ├── [title|header] Les dernières nouvelles ├── [newscast|teaser] Aperçu blog ← affiche les 3 derniers articles │ ├── Article 1 - aperçu visuel (maquetter le rendu souhaité) │ ├── Article 2 - aperçu visuel │ └── Article 3 - aperçu visuel └── [cta|primary] Voir toutes les actualités

Autres modules

Préfixe FigmaModule CMSDescription
[contact]ContactBloc coordonnées (adresse, tél, email)
[map]MapCarte interactive (OpenStreetMap/Google)
[map|contact]Map contactCarte avec template contact
[agenda]AgendaCalendrier d'événements
[timeline]TimelineFrise chronologique
[table]TableTableau de données
[newsletter]NewsletterFormulaire d'inscription newsletter
[search]SearchBarre ou page de recherche
[separator]separatorLigne de séparation
[counter]counterChiffre clé / compteur animé
[widget]widgetCode personnalisé / embed
[share]social-networksBoutons de partage réseaux sociaux
[icon]iconIcône (FontAwesome)
[alert]alertBandeau d'information / alerte
[collapse]collapseBloc dépliable (hors FAQ)
[modal]modalPop-up / fenêtre modale déclenchée au clic
[zone-nav]zones-navigationNavigation entre les zones de la page
Contact + Map Figma
[zone|section] Nous trouver ├── [col] Infos │ ├── [title] Nos coordonnées │ ├── [contact] Adresse & téléphone │ └── [form] Formulaire rapide │ ├── [form-field|text] Nom │ ├── [form-field|email] Email │ ├── [form-field|textarea] Message │ ├── [form-field|gdpr] RGPD │ └── [form-field|submit] Envoyer └── [col] Carte └── [map|contact] Notre localisation
Modificateurs

Modificateurs visuels transversaux

Ces modificateurs s'ajoutent à n'importe quel préfixe pour préciser le rendu. Ils se cumulent avec le pipe |.

Couleur de fond [bg]

Calqué sur l'utilitaire Bootstrap bg-*. Concerne uniquement le fond - à ne pas confondre avec la couleur du texte text:*.

ModificateurPropriété CMSExemple
bg:primarybackgroundColor = "bg-primary"[zone|bg:primary]
bg:secondarybackgroundColor = "bg-secondary"[zone|bg:secondary]
bg:darkbackgroundColor = "bg-dark"[zone|bg:dark]
bg:lightbackgroundColor = "bg-light"[zone|bg:light]
bg:whitebackgroundColor = "bg-white"[zone|bg:white]
bg:#HEXhexadecimalCode = "#HEX"[zone|bg:#1A1A2E]
bg-fixedbackgroundFixed = true[zone|bg-fixed]
bg-parallaxbackgroundParallax = true[zone|bg-parallax]

Couleur de texte [text]

Calqué sur l'utilitaire Bootstrap text-*. Définit la couleur du texte (champ color), indépendamment du fond. Comme pour bg:*, la valeur référence une couleur de la palette du site et se cumule avec un fond : [zone|bg:dark|text:white].

ModificateurPropriété CMSExemple
text:primarycolor = "text-primary"[title|text:primary]
text:secondarycolor = "text-secondary"[text|text:secondary]
text:darkcolor = "text-dark"[title|text:dark]
text:lightcolor = "text-light"[text|text:light]
text:whitecolor = "text-white"[title|text:white]
Fond et texte sont deux familles distinctes bg:* agit sur le fond (propriété backgroundColor, classe bg-{code}) ; text:* agit sur la couleur du texte (propriété color, classe text-{code}). Les deux sont cumulables : [zone|bg:dark|text:white].

Dans les deux cas, la valeur n'est pas figée : elle référence le slug d'une couleur de la palette du site (entité Color, gérée dans le back-office), au format bg-{code} / text-{code}. Les raccourcis bg:* et text:* ne s'appliquent qu'aux couleurs réellement présentes dans la palette du projet. Le raccourci bg:#HEX écrit directement dans hexadecimalCode et reste valable quelle que soit la palette.

Forme & Ombre

ModificateurPropriété CMSS'applique à
roundedradius = trueBloc, Card, Slider, Image, Zone, Col
shadowshadow = "shadow"Tout élément

Visibilité responsive

ModificateurEffetExemple
hide-mobileMasqué sur smartphone[image|hide-mobile]
hide-tabletMasqué sur tablette[col|hide-tablet]
hide-minipcMasqué sur petit écran / mini-PC[col|hide-minipc]
hide-desktopMasqué sur desktop[zone|hide-desktop]

Exemple - Combinaisons de modificateurs

Modificateurs combinés Figma
[zone|section|bg:dark|bg-parallax|shadow] Témoignages [card|rounded|shadow|hide-mobile] Service premium [image|rounded|hide-mobile|hide-tablet] Illustration décorative [cta|primary|hide-tablet|hide-minipc|hide-desktop] Appeler maintenant [zone|fullwidth|bg:#F0E6FF] Bandeau promotion
Workflow

Bonnes pratiques & pièges à éviter

Quelques conseils pour maximiser la qualité de l'import automatisé.

À FAIRE

  • Nommer chaque section de premier niveau avec un préfixe
  • Utiliser l'auto-layout Figma (traduit en colonnes)
  • Grouper les slides dans le frame [slider]
  • Grouper les questions dans le frame [faq]
  • Mettre le vrai contenu (textes, images réels)
  • Garder une hiérarchie propre dans le panneau calques
  • Nommer les frames de manière descriptive
  • Utiliser des composants Figma pour les éléments récurrents

À ÉVITER

  • Laisser les noms par défaut (Frame 427, Group 12)
  • Imbriquer des zones dans des zones
  • Mélanger navigation et contenu dans le même frame
  • Utiliser du texte en image (illisible pour l'IA)
  • Aplatir les calques (garder la hiérarchie)
  • Dupliquer les préfixes inutilement
  • Oublier [faq-question] dans un [faq]
  • Mettre du Lorem Ipsum (le vrai texte sera importé)

Ce que le dev complète après l'import

L'import automatisé crée la structure. Ces éléments sont finalisés manuellement :
  • Responsive - Ajustements des breakpoints mobile/tablette
  • Animations - Non présentes dans Figma
  • Logique métier - Filtres, pagination, tri des index
  • SEO - Meta, canonical, Schema.org avancé
  • Formulaires - Validation, emails, configuration RGPD
  • Intégrations - Analytics, Brevo, APIs tierces
Référence

Cheat Sheet - Mémo rapide

Tous les préfixes en un coup d'œil. Cliquez pour copier.

Structure

[page] [page|home] [page|cms] [page|legacy] [page|product-index] [page|product-view] [page|newscast-index] [page|newscast-view] [zone] [zone|section] [zone|fullwidth] [col]

Navigation

[nav] [nav|fixed] [nav|always-fixed] [nav|vertical] [nav|lateral] [footer] [nav-link] [nav-link|external]

Titres & Textes

[title] [title|header] [text] [intro] [blockquote]

Médias

[image] [image|rounded] [video] [gallery] [gallery|popup] [gallery|3cols] [gallery|4cols]

Boutons

[btn] [btn|primary] [btn|secondary] [btn|outline] [btn|back]

CTA

[cta] [cta|primary] [cta|secondary] [cta|outline] [cta|link] [cta|external]

Carrousels

[slider] [slider|rounded] [slider|splide] [slider|splide|rounded] [slider|banner] [slider|banner|rounded] [slider|home] [slider|home|rounded] [slider|two-columns] [slider|two-columns|rounded]

Cards & FAQ

[card] [card|rounded] [faq] [faq|all-open] [faq|all-closed] [faq-question]

Modules

[tab] [tab|vertical] [tab|accordion] [form] [form|step] [contact] [map] [map|contact] [newscast|index] [newscast|teaser] [catalog|index] [catalog|teaser] [portfolio|index] [recruitment|index] [agenda] [timeline] [table] [newsletter] [search] [modal]

Modificateurs

rounded shadow bg:primary bg:dark bg:light bg-parallax text:primary text:dark text:white hide-mobile hide-tablet hide-minipc hide-desktop

Convention Figma SFCMS 7 - v1.0 - félixcréation - Mai 2026
Cliquez sur n'importe quel [code] pour le copier dans le presse-papier