Generatore di Clip Path CSS

Avanti

Con clip-path puoi ritagliare qualsiasi elemento in una forma poligonale, creando immagini sagomate, sezioni asimmetriche o fumetti senza sovrapposizioni SVG. Scrivere a mano le coordinate di polygon() è un invito agli errori di calcolo. Questo generatore produce la dichiarazione clip-path corretta per quattro forme predefinite: triangolo, rombo, trapezio ed esagono. Scegli una forma, genera il codice e copialo.

Come creare un clip-path

  1. 1

    Scegli la forma

    Scegli una delle quattro forme predefinite: triangolo, rombo, trapezio o esagono.

  2. 2

    Genera il CSS

    Clicca sul pulsante e lo strumento costruisce la regola `clip-path: polygon(...)` per la forma selezionata.

  3. 3

    Copia la regola

    Copia il risultato e incollalo nel tuo foglio di stile. Le percentuali mantengono la forma adattiva alla dimensione dell'elemento.

  4. 4

    Leggi le coordinate

    Ogni coppia di numeri è un vertice: la posizione x e y di quell'angolo come percentuale del riquadro dell'elemento.

  5. 5

    Applicala

    `clip-path` funziona su qualsiasi elemento in tutti i browser moderni e la forma si adatta alla dimensione dell'elemento.

Le cinque funzioni di forma

Funzione Sintassi Uso
inset() inset(10% 20% 10% 20% round 8px) Ritaglio rettangolare con margini interni e angoli arrotondati opzionali
circle() circle(50% at 50% 50%) Cerchio
ellipse() ellipse(40% 25% at 50% 50%) Ellisse
polygon() polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%) Qualsiasi poligono
path() path("M0 0 L100 0 L50 100 Z") Dati del percorso SVG (supporto limitato)

Ritagli poligonali comuni

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

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

/* Chevron / freccia che punta a destra */
clip-path: polygon(0 0, 75% 0, 100% 50%, 75% 100%, 0 100%, 25% 50%);

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

/* Fetta diagonale (sezione eroe moderna) */
clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);

La diagonale della sezione eroe è probabilmente la più utilizzata di tutte, conferisce a una sezione un aspetto moderno angolato senza alcun SVG.

Animare il clip-path

Il clip-path si anima finché entrambi gli stati hanno la stessa funzione di forma con lo stesso numero di punti. Un poligono a 4 vertici si anima senza problemi in un altro poligono a 4 vertici; aggiungere o rimuovere vertici interrompe l’interpolazione.

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

Usa questo per effetti di rivelazione, distorsioni sottili al passaggio del mouse o transizioni di pagina.

Clip-path vs. overflow: hidden

overflow: hidden ritaglia il rettangolo della border-box (che può essere arrotondato con border-radius). clip-path ritaglia qualsiasi forma tu definisca e ritaglia tutto, inclusi ombre e contorni. Se hai bisogno che le ombre rimangano visibili al di fuori della forma, clip-path non è ciò che desideri.

filter: drop-shadow() può riaggiungere un’ombra che segue la forma sugli elementi clip-path, ma è più lenta.

Prestazioni

Il clip-path è accelerato dalla GPU nei browser moderni, quindi i clip-path animati sono fluidi. L’eccezione è path() e poligoni molto complessi (40+ vertici) che tornano al rendering CPU su alcuni browser.

Accessibilità

Il clip-path cambia solo ciò che è visibile. I lettori di schermo, il focus da tastiera e gli eventi puntatore seguono l’intero riquadro dell’elemento, non la forma ritagliata. Se un’immagine è ritagliata in una stella, il testo alternativo viene letto normalmente. Se un pulsante è ritagliato in un chevron, il suo obiettivo di clic è il rettangolo intero, non il chevron visibile, il che può causare clic accidentali su uno spazio apparentemente vuoto.

Per pulsanti con forme ritagliate insolite, imposta la larghezza/altezza dell’elemento in modo che l’area di clic corrisponda ragionevolmente bene all’area visibile.

Domande frequenti

Tutti i browser moderni (Chrome, Firefox, Safari, Edge) supportano polygon(), circle(), ellipse() e inset(). path() è supportato in Chrome 88+, Firefox 97+ e Safari 13.1+. IE non supporta nulla di tutto ciò, ma il suo utilizzo è sotto la soglia per la maggior parte dei siti ora.

Perché clip-path ritaglia le ombre insieme a tutto il resto. Usa filter: drop-shadow() invece, segue la forma ritagliata e mantiene l’ombra visibile.

Solo tra la stessa funzione di forma con lo stesso numero di punti. Un poligono con 4 punti si anima in un altro poligono con 4 punti. Aggiungere o rimuovere punti, o cambiare tra funzioni (da poligono a cerchio), interrompe l’interpolazione.

No, gli eventi puntatore vanno ancora al rettangolo intero dell’elemento. Un pulsante a forma di stella ha un’area di clic rettangolare, inclusi gli angoli trasparenti. Considera pointer-events: none su un ::before o usa elementi di dimensioni ridotte se questo è importante.

Strumenti correlati