Qué es Generador de funcion CSS shape()?
La función CSS shape() es una nueva primitiva de forma que unifica y extiende las funciones de forma heredadas (polygon(), circle(), ellipse(), path(), inset(), rect()). A diferencia de las funciones de forma anteriores, shape() soporta coordenadas porcentuales relativas a las dimensiones del propio elemento, no solo coordenadas en píxeles. También soporta palabras clave de reference box (margin-box, padding-box, content-box, border-box) que definen el sistema de coordenadas, y las formas creadas con shape() pueden interpolarse para transiciones y animaciones CSS suaves entre diferentes tipos de forma.
Respuesta rápida
CSS shape() crea formas no rectangulares para clip-path y shape-outside con coordenadas porcentuales relativas al tamaño del elemento, soporte de reference box y transiciones animables entre tipos polygon, circle, ellipse, path y rect. Chrome 139+, Safari 18.2+ (Baseline 2026). Incluya siempre una función de forma de respaldo para navegadores no compatibles.
Last updated: 2026-06-02
Limitaciones
- El soporte del navegador se limita a Chrome 139+, Edge 139+ y Safari 18.2+ a mediados de 2026. Firefox no soporta shape() aún, y los navegadores antiguos ignoran toda la declaración. Se requiere una función de forma de respaldo para compatibilidad amplia.
- shape() polygon requiere unidades explícitas (px o %) en cada valor de coordenada, a diferencia de la función polygon() heredada que acepta números desnudos. Esto hace que la sintaxis sea más verbosa y propensa a errores al migrar desde declaraciones polygon() existentes.
- No todos los tipos de forma se interpolan limpiamente entre sí. Aunque shape() soporta animación entre tipos, las transiciones entre geometrías muy diferentes (por ejemplo, rect a un path complejo) pueden producir formas intermedias inesperadas. Pruebe las animaciones visualmente antes de implementar.
Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub
Cómo usar esta herramienta
- Seleccione el tipo de forma: polygon (lista de pares de coordenadas), circle (centro y radio), ellipse (centro más radio-x y radio-y), path (datos de ruta SVG) o rect (superior, derecha, inferior, izquierda con redondeo opcional).
- Elija el reference box: margin-box, padding-box, content-box o border-box. El reference box determina el sistema de coordenadas para coordenadas basadas en porcentaje.
- Configure las coordenadas de la forma. Para polígonos, añada pares de puntos de coordenadas. Para círculos y elipses, establezca la posición del centro y los valores de radio. Active el modo amigable para animación para asegurar que los valores de forma usen sintaxis compatible para transiciones CSS.
- Copie el CSS shape() generado y aplíquelo a la propiedad clip-path o shape-outside. Añada un respaldo usando las funciones de forma heredadas para navegadores que aún no soportan shape().
Para qué puedes usarla
- Crear máscaras de imagen no rectangulares para secciones principales y tarjetas de contenido destacado usando clip-path con shape() polygon y coordenadas porcentuales.
- Hacer que el texto fluya alrededor de imágenes circulares o elípticas usando shape-outside con shape() circle y padding-box reference para espaciado consistente.
- Animar entre una forma de polígono y un círculo al pasar el ratón o al desplazarse usando transiciones CSS, ya que shape() soporta interpolación entre diferentes tipos de forma.