Générateur de clip-path CSS
Avec clip-path, vous pouvez découper n’importe quel élément en forme de polygone pour créer des images découpées, des sections asymétriques ou des bulles de dialogue sans superposition SVG. Écrire les coordonnées de polygon() à la main est une invitation aux erreurs de calcul. Ce générateur produit la déclaration clip-path correcte pour quatre formes prédéfinies : triangle, losange, trapèze et hexagone. Choisissez une forme, générez et copiez le CSS.
Comment créer un clip-path
-
1
Choisissez la forme
Choisissez une des quatre formes prédéfinies : triangle, losange, trapèze ou hexagone.
-
2
Générez le CSS
Cliquez sur le bouton et l'outil construit la règle `clip-path: polygon(...)` pour la forme sélectionnée.
-
3
Copiez la règle
Copiez le résultat et collez-le dans votre feuille de style. Les pourcentages gardent la forme adaptative à la taille de l'élément.
-
4
Lisez les coordonnées
Chaque paire de nombres est un sommet : la position x et y de ce coin en pourcentage de la boîte de l'élément.
-
5
Appliquez-la
`clip-path` fonctionne sur n'importe quel élément dans tous les navigateurs modernes, et la forme s'adapte à la taille de l'élément.
Les cinq fonctions de forme
| Fonction | Syntaxe | Utilisation |
|---|---|---|
inset() |
inset(10% 20% 10% 20% round 8px) |
Clip rectangulaire avec insets et coins arrondis optionnels |
circle() |
circle(50% at 50% 50%) |
Cercle |
ellipse() |
ellipse(40% 25% at 50% 50%) |
Ellipse |
polygon() |
polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%) |
Tout polygone |
path() |
path("M0 0 L100 0 L50 100 Z") |
Données de chemin SVG (support limité) |
Clips polygonaux courants
/* Hexagone */
clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
/* Losange */
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
/* Chevron / flèche pointant à droite */
clip-path: polygon(0 0, 75% 0, 100% 50%, 75% 100%, 0 100%, 25% 50%);
/* Parallélogramme */
clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%);
/* Tranche diagonale (section héroïque moderne) */
clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
La diagonale de la section héroïque est probablement la plus utilisée de toutes, elle donne à une section cet aspect moderne angulaire sans aucun SVG.
Animer le clip-path
Le clip-path s’anime tant que les deux états ont la même fonction de forme avec le même nombre de points. Un polygone à 4 sommets s’anime en douceur vers un autre polygone à 4 sommets ; ajouter ou supprimer des sommets casse l’interpolation.
.card { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.card:hover { clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%); }
Utilisez cela pour des effets de révélation, des distorsions subtiles au survol, ou des transitions de page.
Clip-path vs. overflow: hidden
overflow: hidden découpe au rectangle de la border-box (qui peut être arrondi avec border-radius). clip-path découpe à toute forme que vous définissez et découpe tout, y compris les ombres et les contours. Si vous avez besoin que les ombres restent visibles en dehors de la forme, clip-path n’est pas ce que vous voulez.
filter: drop-shadow() peut réajouter une ombre suivant la forme sur les éléments clip-path, mais c’est plus lent.
Performances
Le clip-path est accéléré par le GPU dans les navigateurs modernes, donc les clip-paths animés sont fluides. L’exception est path() et les polygones très complexes (40+ sommets) qui reviennent au rendu CPU sur certains navigateurs.
Accessibilité
Le clip-path ne change que ce qui est visible. Les lecteurs d’écran, le focus au clavier et les événements de pointeur suivent la boîte complète de l’élément, pas la forme découpée. Si une image est découpée en étoile, le texte alternatif est lu normalement. Si un bouton est découpé en chevron, sa cible de clic est le rectangle complet, pas le chevron visible, ce qui peut provoquer des clics accidentels sur un espace apparemment vide.
Pour les boutons avec des formes découpées inhabituelles, définissez la largeur/hauteur de l’élément de manière serrée afin que la zone de clic corresponde raisonnablement bien à la zone visible.
Questions fréquentes
Tous les navigateurs modernes (Chrome, Firefox, Safari, Edge) prennent en charge polygon(), circle(), ellipse() et inset(). path() est pris en charge dans Chrome 88+, Firefox 97+ et Safari 13.1+. IE ne prend en charge aucun d’eux mais son utilisation est en dessous du seuil pour la plupart des sites maintenant.
Parce que clip-path découpe les ombres avec tout le reste. Utilisez filter: drop-shadow() à la place, cela suit la forme découpée et garde l’ombre visible.
Seulement entre la même fonction de forme avec le même nombre de points. Un polygone avec 4 points s’anime vers un autre polygone avec 4 points. Ajouter ou supprimer des points, ou changer entre les fonctions (polygone à cercle), casse l’interpolation.
Non, les événements de pointeur vont toujours vers le rectangle complet de l’élément. Un bouton en forme d’étoile a une zone de clic rectangulaire, y compris les coins transparents. Envisagez pointer-events: none sur un ::before ou utilisez des éléments de taille serrée si cela compte.
Outils similaires
Référence de la table ASCII
Table ASCII complète de 0 à 127 avec décimal, hexadécimal, octal, binaire et référence numérique HTML pour chaque caractère, y compris les codes de contrôle comme NUL, LF et DEL.
Référence des caractères HTML
Liste consultable des entités HTML, de leurs codes nommés et numériques, et un copier-coller en un clic pour les caractères et symboles spéciaux.
Référence des raccourcis clavier
Recherchez les raccourcis par défaut documentés de VS Code, Chrome et Bash avec GNU Readline sous macOS, Windows et Linux.
Générateur d’accordéon CSS
Créez un accordéon de trois sections avec details et summary. Personnalisez textes, couleurs, espacements, icône et ouverture, puis copiez ou téléchargez le code.
Générateur de palettes de couleurs aléatoires
Générez des palettes aléatoires de 2 à 15 couleurs, choisissez un style vif, pastel, sourd ou sombre, puis copiez les codes HEX ou les variables CSS.
Générateur de lettres aléatoires
Générez des lettres A-Z aléatoires. Choisissez le nombre, les majuscules, les minuscules ou le mélange, puis utilisez le résultat pour des jeux ou la classe.