WhatsApp

  

Domina clip-path y las formas CSS: Guía completa con ejemplos prácticos

Aprende todo sobre la propiedad CSS clip-path, sus tipos de formas, sintaxis, casos de uso, comparativas con SVG y mejores prácticas para rendimiento y accesibilidad.

clip-path y formas CSS: Concepto, sintaxis y ejemplos

Una guía exhaustiva para crear recortes y máscaras avanzadas con clip-path, comparar con alternativas como SVG y aplicar buenas prácticas de rendimiento y accesibilidad.

1. ¿Qué es clip-path?

La propiedad clip-path permite definir una región visible de un elemento, ocultando el resto. Esta región se describe mediante una forma geométrica (círculo, elipse, polígono, etc.) o mediante una ruta SVG.

Al recortar un elemento, el navegador sigue renderizando su contenido, pero sólo la porción dentro del “clip” es visible al usuario, lo que abre posibilidades para:

  • Diseños creativos sin imágenes externas.
  • Animaciones de forma dinámica.
  • Optimización de carga al evitar assets extra.

2. Sintaxis básica

La sintaxis sigue la forma clip-path: función(valores);. Las funciones más comunes son:

  • circle()
  • ellipse()
  • inset()
  • polygon()
  • path() (ruta SVG)

Ejemplo mínimo:

img {
  clip-path: circle(50% at 50% 50%);
}

3. Tipos de formas y sus parámetros

3.1 circle()

Define un círculo mediante radius y opcionalmente el centro (at x y).

.c1 { clip-path: circle(40px); }
.c2 { clip-path: circle(30% at 20% 80%); }

3.2 ellipse()

Similar a circle pero con radios diferentes en X y Y.

.e1 { clip-path: ellipse(60% 30% at 50% 50%); }

3.3 inset()

Crea un rectángulo interior con opcional round para bordes redondeados.

.i1 { clip-path: inset(10% 5% 15% 20% round 10px); }

3.4 polygon()

Define una forma con una lista de puntos (x y) en porcentaje o unidades absolutas.

.p1 { clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%); }

3.5 path() (SVG)

Permite usar cualquier ruta SVG d="…". Ideal para formas complejas.

.svg-path { clip-path: path('M10 10 H 90 V 90 H 10 Z'); }

4. Ejemplos reales

4.1 Imagen con forma de hexágono

Ejemplo hexágono
img {
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
}

4.2 Texto recortado con circle() animado

Animación con clip‑path
@keyframes pulse {
  0%   { clip-path: circle(30% at 50% 50%); }
  50%  { clip-path: circle(45% at 50% 50%); }
  100% { clip-path: circle(30% at 50% 50%); }
}
.pulse-text { animation: pulse 3s infinite; }

5. Comparativa: clip-path vs mask-image vs SVG

Característica clip-path mask-image SVG (clipPath / mask)
Tipo de forma Polígonos, círculos, elipses, insets, rutas SVG Imágenes raster o gradientes Formas vectoriales complejas, filtros, animaciones SMIL/ CSS
Soporte navegadores Chrome 94+, Edge 94+, Firefox 54+, Safari 9+ Chrome 53+, Edge 79+, Firefox 53+, Safari 9+
Rendimiento Alta, usa GPU cuando es posible Puede requerir rasterización extra Depende de la complejidad del SVG, a veces más costoso
Accesibilidad El contenido sigue presente en el DOM, legible por lectores de pantalla Igual, pero el alfa del mask puede afectar contraste Similar, pero elementos clipPath no son interactivos

6. Compatibilidad y fallback

Para navegadores que no soportan clip-path, se recomienda:

  • Utilizar svg como fallback mediante <svg> inline.
  • Aplicar la propiedad con prefijo -webkit- para Safari.
  • Definir una versión sin recorte para garantizar la usabilidad.
.fallback {
  /* Safari < 9 */
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  /* Chrome/Edge/Firefox */
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

7. Buenas prácticas de rendimiento

  1. Usar unidades porcentuales siempre que sea posible para que el recorte se recompute solo al redimensionar.
  2. Limitar la complejidad de polygon(): más de 12 vértices puede afectar la GPU.
  3. Prefijado con will-change: clip-path cuando la forma cambie con animaciones.
  4. Evitar recortes en elementos con filter o transform simultáneos, pues pueden forzar re‑pintado.
  5. Combinar con object-fit para imágenes responsivas y evitar distorsión.
.animado {
  will-change: clip-path;
  animation: rotate 4s linear infinite;
}
@keyframes rotate {
  from { clip-path: inset(0% round 0); }
  to   { clip-path: inset(0% round 50%); }
}

8. Accesibilidad y SEO

El recorte visual no afecta la indexación del contenido, pero hay que:

  • Proveer alt descriptivo en imágenes recortadas.
  • Evitar recortar texto esencial; el lector de pantalla sigue leyendo todo el contenido.
  • Usar contrastes adecuados en áreas recortadas para cumplir WCAG 2.1 AA.

9. Solución de problemas frecuente

ProblemaCausaSolución
El recorte no se muestra en Safari Falta el prefijo -webkit- o la forma no está soportada. Añadir -webkit-clip-path y usar formas básicas (circle, ellipse, inset).
Parpadeo al animar clip-path El navegador está repintando en lugar de usar la capa GPU. Declarar will-change: clip-path; y asegurarse de que la animación sea CSS (no JavaScript).
El contenido recortado se corta en dispositivos con zoom Uso de unidades absolutas (px) en vez de %. Convertir a porcentajes o usar calc() relativo al contenedor.

10. Casos de uso avanzados

  • Galerías tipo "masonry" con recortes dinámicos: combinar grid y clip-path para piezas de distinto tamaño.
  • Hover reveal: al pasar el ratón, cambiar la forma del recorte para revelar más información.
  • Animaciones de carga (skeleton loaders) usando polygon() que simulan contornos de texto.
  • Componentes de UI con bordes irregulares (botones con forma de estrella, tarjetas con esquina recortada).
  • Integración con frameworks: en React o Vue usar style={{ clipPath: 'polygon(...)' }} y combinar con styled‑components para temas dinámicos.


Domina clip-path y las formas CSS: Guía completa con ejemplos prácticos
ASIMOV Ingeniería S. de R.L. de C.V., Emiliano Nava 15 noviembre, 2025
Compartir
Iniciar sesión dejar un comentario

  
Column Layout en CSS: Conceptos, Ejemplos y Mejores Prácticas
Aprende a crear diseños de columnas con CSS usando Flexbox, CSS Grid y técnicas tradicionales. Incluye ejemplos prácticos, comparativas, trucos de rendimiento y SEO.