Générateur CSS Clip-Path & Formes

Générateur CSS Clip-Path & Formes

Générez des formes polygonales CSS clip-path avec poignées interactives. Copiez le code CSS multi-navigateurs, les masques SVG et les coordonnées réactives en pourcentages.

Préréglages :
Canevas polygonal interactif4 pts
1234
#1
X:Y:
#2
X:Y:
#3
X:Y:
#4
X:Y:
Décimales :
Conteneur de référence :
Unité des coordonnées :
-webkit-clip-path: polygon(
  0.0% 0.0%,
  100.0% 0.0%,
  100.0% 85.0%,
  0.0% 100.0%
);
clip-path: polygon(
  0.0% 0.0%,
  100.0% 0.0%,
  100.0% 85.0%,
  0.0% 100.0%
);
Intégration en production :
.clipped-banner { -webkit-clip-path: polygon(0.0% 0.0%, 100.0% 0.0%, 100.0% 85.0%, 0.0% 100.0%); clip-path: polygon(0.0% 0.0%, 100.0% 0.0%, 100.0% 85.0%, 0.0% 100.0%); }
Sommets4 pts
Surface du polygone92.5%
Périmètre386.1%
Barycentre (Cx, Cy)48.6%, 46.4%
ConvexitéConvexe
Auto-intersectionSimple (sans intersection)
Référence technique et guide d'architecture

Générateur CSS clip-path & polygones — Guide de référence

Générez des formes polygonales personnalisées avec CSS clip-path et poignées interactives. Exportez les règles CSS multi-navigateurs, le SVG et les coordonnées réactives en pourcentage.

Générateur CSS clip-path & polygones — Guide de référence — Architecture en mémoire côté client et flux de données
Générateur CSS clip-path & polygones — Guide de référence — Architecture en mémoire côté client et flux de données

Paramètres clés et contrôles

polygon() Notation fonctionnelle W3CNotation fonctionnelle CSS

Notation fonctionnelle officielle du module W3C CSS Shapes Module Level 1. Accepte une règle de remplissage facultative ('nonzero' ou 'evenodd') suivie de paires de coordonnées séparées par des virgules. Chaque sommet est constitué de deux valeurs d'espacement ou de pourcentage (X Y) séparées par une espace.

Par défaut : polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)
fill-rule (Règle d'enroulement vectoriel)Mot-clé de remplissage W3C SVG & CSS

Détermine le mode d'évaluation des tracés polygonaux sécants et des évidements intérieurs imbriqués. La valeur 'nonzero' remplit l'intégralité des boucles vectorielles closes ; 'evenodd' alterne l'état de remplissage à chaque franchissement de rayon, autorisant les découpes toriques (donuts) et les cadres ajourés.

Par défaut : nonzero
geometry-box (Boîte de référence géométrique)Modèle de boîte CSS de référence

Définit le rectangle englobant servant d'ancrage aux calculs de pourcentages. Les valeurs admises incluent 'border-box' (bordures incluses), 'padding-box' (bordures exclues), 'content-box', ou les repères SVG 'fill-box', 'stroke-box' et 'view-box'. Vaut 'border-box' par défaut sur les éléments HTML.

Par défaut : border-box
clipPathUnits (Système de coordonnées SVG)Attribut XML SVG

Spécifique aux définitions SVG <clipPath>. La valeur 'objectBoundingBox' normalise les coordonnées sous forme de fractions relatives entre 0.0 et 1.0 par rapport à la boîte englobante de l'élément cible ; 'userSpaceOnUse' verrouille les coordonnées sur le repère absolu du canevas SVG.

Par défaut : objectBoundingBox
will-change: clip-path (Indicateur GPU)Optimisation de rendu CSS (GPU Compositor)

Indique au moteur de rendu du navigateur d'isoler l'élément découpé sur sa propre couche de composition GPU avant le lancement de l'animation, éliminant les cycles de repeinture CPU (paint) et garantissant une fluidité constante de 60 à 120 FPS lors des métamorphoses keyframes.

Par défaut : clip-path

Conseils de pro et bonnes pratiques

Invariant du nombre identique de sommets pour les animations CSS

Les transitions CSS et animations @keyframes sur clip-path n'interpolent de manière fluide que si l'état initial et l'état final du polygone possèdent strictement le même nombre de sommets, déclarés dans le même ordre séquentiel. Si un triangle à 3 points mute vers un octogone à 8 sommets, le moteur de rendu échoue à interpoler la géométrie et bascule brutalement à mi-parcours (50 %). Solution : insérez des points factices colinéaires le long des arêtes du triangle afin que les deux formes déclarent rigoureusement 8 sommets.

Évidements intérieurs et cadres ajourés avec la règle Evenodd

Pour concevoir une fenêtre évidée, un anneau en donut ou un cadre photo ajouré au sein d'un polygone CSS unique, déclarez 'polygon(evenodd, ...)'. Parcourez le contour extérieur dans le sens des aiguilles d'une montre (de 0% 0% à 100% 100%), réalisez une arête de jonction vers l'intérieur, puis tracez la fenêtre interne dans le sens anti-horaire. L'algorithme de lancer de rayons 'evenodd' soustrait automatiquement cet îlot intérieur, produisant un centre transparent.

Le test d'impact des événements pointeur épouse le contour vectoriel

Contrairement à 'opacity: 0' ou 'border-radius' qui continuent d'intercepter les clics dans les angles rectangulaires transparents, 'clip-path' restreint rigoureusement les événements de pointage (clic, survol, toucher tactile) à la surface interne visible du polygone. Les clics effectués en dehors du périmètre découpé traversent instantanément vers les éléments DOM sous-jacents, sans qu'il soit nécessaire d'ajouter 'pointer-events: none'.

Suppression du liséré sous-pixel sur les éléments accélérés par le GPU

Lors de la juxtaposition de conteneurs découpés adjacents (par exemple des bannières hero scindées en diagonale), l'anti-crénelage lors de la rastérisation GPU peut laisser transparaître un fin liséré parasite de 1 pixel à la jointure. Neutralisez ce scintillement en appliquant un chevauchement microscopique de 0,2 % sur les coordonnées de l'arête commune, ou en ajoutant 'outline: 1px solid transparent' pour forcer un lissage matériel des contours.

Pièges courants et dépannage

⚠️La transition du polygone saute instantanément sans aucune animation fluide.

Vérifiez le nombre de sommets dans vos étapes d'animation CSS (@keyframes ou transition). L'interpolation géométrique polygonale exige impérativement un nombre identique de paires de coordonnées. Utilisez l'option d'équilibrage des sommets du générateur pour injecter des points d'ancrage colinéaires dans la forme la plus simple afin d'égaliser le nombre de sommets entre les deux états.

⚠️Les menus déroulants, info-bulles ou ombres portées sont tronqués hors du conteneur.

La propriété 'clip-path' découpe tout rendu descendant ainsi que les ombres 'box-shadow' qui débordent de son périmètre, tout en créant un nouveau contexte d'empilement (stacking context). Déportez l'ombre portée sur un conteneur parent avec 'filter: drop-shadow(...)', et téléportez vos menus flottants ou info-bulles (tooltips) via un portail React (React Portal) directement rattaché à document.body.

⚠️La découpe CSS clip-path ne s'affiche pas sur les anciennes versions de Safari ou WebViews iOS.

Le moteur WebKit exige le préfixe constructeur sur les moutures historiques d'iOS et macOS (Safari 13 et versions antérieures). Déclarez systématiquement la règle préfixée '-webkit-clip-path: polygon(...)' immédiatement avant la propriété standard non préfixée 'clip-path' au sein de votre feuille de style CSS.

⚠️Des arêtes polygonales qui se croisent créent des trous d'inversion ou masquent des portions de la forme.

Lorsque les segments d'un polygone se chevauchent, la règle de remplissage par défaut évalue les indices d'enroulement, ce qui peut inverser la visibilité des zones intérieures. Démêlez les poignées de sommets sécantes directement sur le canevas interactif, ou configurez le paramètre fill-rule sur 'nonzero' pour forcer le remplissage de tous les contours vectoriels superposés.

Foire aux questions (FAQ)

Comment créer et calculer un polygone CSS avec clip-path ?▼

Un polygone CSS se configure avec la syntaxe 'clip-path: polygon(x1 y1, x2 y2, ...)', où chaque sommet est défini par une coordonnée horizontale (X) et verticale (Y) séparées par une espace, les paires étant délimitées par des virgules. Les coordonnées s'expriment le plus souvent en pourcentages par rapport au rectangle englobant de l'élément (de 0% 0% dans le coin supérieur gauche à 100% 100% dans le coin inférieur droit). Les moteurs de rendu modernes prennent en charge nativement les pourcentages et les pixels sous accélération matérielle GPU.

Peut-on animer des formes polygonales CSS clip-path avec des transitions ?▼

Oui, les polygones CSS sont pleinement animables via les règles standard 'transition: clip-path 0.4s ease' ou des animations '@keyframes', à l'unique condition que l'état initial et l'état final contiennent rigoureusement le même nombre de sommets. Si le décompte de sommets diffère, le navigateur ne peut pas interpoler les coordonnées et saute brutalement d'une forme à l'autre. Il est possible de métamorphoser n'importe quelle géométrie en complétant la forme la plus simple avec des points factices colinéaires pour égaliser le décompte.

Quelle est la différence entre un polygone CSS clip-path et un clipPath SVG ?▼

La fonction CSS 'clip-path: polygon()' est ultra-légère, définie directement en CSS sans balisage HTML additionnel et gère nativement le responsive en pourcentages, mais elle se limite aux segments rectilignes. À l'inverse, l'élément SVG '<clipPath>' prend en charge les courbes de Bézier cubiques et quadratiques (<path>), les primitives circulaires ou elliptiques et le masquage textuel, mais nécessite une déclaration d'élément dans le DOM référencée via 'clip-path: url(#id)'. Pour les formes géométriques à arêtes droites, le polygone CSS offre une exécution nettement plus véloce avec une charge DOM nulle.

Pourquoi mon élément CSS clip-path bloque-t-il les clics sur les éléments sous-jacents ?▼

Selon les spécifications du W3C, la propriété 'clip-path' restreint la zone de détection des interactions (hit-testing) exactement au même titre que le rendu visuel. Les régions situées hors du périmètre polygonal n'interceptent aucun clic, survol ou événement de pointeur, laissant les éléments DOM sous-jacents parfaitement cliquables. Si un blocage persiste, vérifiez qu'aucun conteneur parent non découpé n'intercepte les événements, ou qu'un pseudo-élément non masqué (::before / ::after) ne se superpose pas à la zone.

Outils et utilitaires connexes

Tous les outils →