CSS clip-path-generator

Volgende

Met clip-path kunt u elk element in een polygoonvorm knippen en zo gevormde afbeeldingen, asymmetrische hero-secties of spraakballonnen maken zonder SVG-overlays. Handmatig polygon()-coördinaten schrijven nodigt uit tot rekenfouten. Deze generator levert de juiste clip-path-declaratie voor vier voorgedefinieerde vormen: driehoek, ruit, trapezium en zeshoek. Kies een vorm, genereer en kopieer de CSS.

Zo bouwt u een clip-path

  1. 1

    Kies de vorm

    Kies een van de vier voorgedefinieerde vormen: driehoek, ruit, trapezium of zeshoek.

  2. 2

    Genereer de CSS

    Klik op de knop en de tool bouwt de regel `clip-path: polygon(...)` voor de gekozen vorm.

  3. 3

    Kopieer de regel

    Kopieer het resultaat en plak het in uw stylesheet. Percentages houden de vorm responsief op de grootte van het element.

  4. 4

    Lees de coördinaten

    Elk paar getallen is een hoekpunt: de x- en y-positie van die hoek als percentage van de elementbox.

  5. 5

    Pas het toe

    `clip-path` werkt op elk element in alle moderne browsers en de vorm schaalt mee met het element.

De vijf vormfuncties

Functie Syntaxis Gebruik
inset() inset(10% 20% 10% 20% round 8px) Rechthoekige uitsnede met insets en optioneel afgeronde hoeken
circle() circle(50% at 50% 50%) Cirkel
ellipse() ellipse(40% 25% at 50% 50%) Ellips
polygon() polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%) Elke veelhoek
path() path("M0 0 L100 0 L50 100 Z") SVG-padgegevens (beperkte ondersteuning)

Veelgebruikte veelhoekuitsnedes

/* Hexagon */
clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);

/* Rhombus */
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);

/* Chevron / arrow pointing right */
clip-path: polygon(0 0, 75% 0, 100% 50%, 75% 100%, 0 100%, 25% 50%);

/* Parallelogram */
clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%);

/* Diagonal slice (modern hero section) */
clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);

De diagonaal in een hero-sectie is waarschijnlijk de meest gebruikte van allemaal: hij geeft een sectie die schuine, moderne uitstraling zonder enige SVG.

clip-path animeren

clip-path animeert zolang beide toestanden dezelfde vormfunctie met hetzelfde aantal punten hebben. Een veelhoek met 4 hoekpunten animeert soepel naar een andere veelhoek met 4 hoekpunten; hoekpunten toevoegen of verwijderen breekt de interpolatie.

.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%); }

Gebruik dit voor onthullingseffecten, subtiele vervormingen bij hover of paginaovergangen.

clip-path versus overflow: hidden

overflow: hidden snijdt af op de rechthoek van de border-box (die met border-radius afgerond kan worden). clip-path snijdt af op elke vorm die u definieert en snijdt alles af, inclusief schaduwen en contouren. Wilt u dat schaduwen buiten de vorm zichtbaar blijven, dan is clip-path niet wat u zoekt.

filter: drop-shadow() kan een vormvolgende schaduw teruggeven aan elementen met clip-path, maar is trager.

Prestaties

clip-path wordt in moderne browsers door de GPU versneld, waardoor geanimeerde clip-paths soepel verlopen. De uitzondering vormen path() en zeer complexe veelhoeken (meer dan 40 hoekpunten), die in sommige browsers terugvallen op CPU-rendering.

Toegankelijkheid

clip-path wijzigt alleen wat zichtbaar is. Schermlezers, toetsenbordfocus en pointergebeurtenissen volgen de volledige box van het element, niet de bijgesneden vorm. Wordt een afbeelding tot een ster bijgesneden, dan wordt de alt-tekst gewoon voorgelezen. Wordt een knop tot een chevron bijgesneden, dan is het klikdoel de volledige rechthoek, niet de zichtbare chevron, wat kan leiden tot per ongeluk klikken op schijnbaar lege ruimte.

Stel bij knoppen met ongebruikelijke bijgesneden vormen de breedte en hoogte van het element strak in, zodat de hitbox redelijk goed overeenkomt met het zichtbare gebied.

Veelgestelde vragen

Alle moderne browsers (Chrome, Firefox, Safari en Edge) ondersteunen polygon(), circle(), ellipse() en inset(). path() wordt ondersteund in Chrome 88+, Firefox 97+ en Safari 13.1+. IE ondersteunt geen van deze formaten, maar de gebruiksfrequentie ervan is voor de meeste websites momenteel nog laag.

Omdat clip-path schaduwen samen met al het andere afsnijdt. Gebruik in plaats daarvan filter: drop-shadow(): die volgt de bijgesneden vorm en houdt de schaduw zichtbaar.

Alleen tussen dezelfde vormfunctie met hetzelfde aantal punten. Een veelhoek met 4 punten animeert naar een andere veelhoek met 4 punten. Punten toevoegen of verwijderen, of wisselen van functie (van veelhoek naar cirkel), breekt de interpolatie.

Nee, pointergebeurtenissen gaan nog steeds naar de volledige rechthoek van het element. Een stervormige knop heeft een rechthoekig klikgebied, inclusief de transparante hoeken. Overweeg pointer-events: none op een ::before of gebruik strak op maat gemaakte elementen als dit belangrijk is.

Gerelateerde tools