3 puntos por GN⁺ 2025-05-06 | Aún no hay comentarios. | Compartir por WhatsApp
  • La función CSS shape() empezó a ser compatible con los navegadores Chromium y WebKit
  • A diferencia de path(), ahora permite definir formas complejas con una sintaxis y unidades más legibles en CSS
  • Al crear formas complejas en clip-path, se puede implementar con un enfoque basado en comandos en inglés en lugar de coordenadas SVG
  • Con nuevos comandos como line, arc y curve, es posible escribir líneas, curvas y arcos de forma concisa
  • shape() todavía tiene soporte limitado para animaciones, pero sí permite cambios dinámicos en respuesta a hover/focus

Descripción general

  • La función CSS shape() se usa junto con clip-path y permite el recorte de formas complejas en el navegador
  • Antes se podían usar formas básicas como circle, ellipse y polygon, pero las formas libres solo eran posibles con path()
  • Como en path() hay que introducir directamente coordenadas y comandos de SVG, su legibilidad era menor y la curva de aprendizaje más alta

Características de la función shape()

  • Permite construir formas vectoriales al estilo de CSS
  • El punto de inicio se define con palabras clave de dirección (from top left) o con valores de coordenadas (from 0 0)
  • La forma se compone de una serie de comandos. Ej.: line, vline, arc, curve, smooth

Explicación de los comandos principales

  • line
    • Significado: dibuja una línea desde el punto de inicio
    • Uso: define una posición relativa con la palabra clave by
    • Ejemplo: line by -2px 3px
  • vline
    • Significado: dibuja una línea vertical
    • Uso: define una posición absoluta con to y una relativa con by
    • Ejemplo: vline to 50px
  • hline
    • Significado: dibuja una línea horizontal
    • Uso: define una posición absoluta con to y una relativa con by
    • Ejemplo: hline to 95%
  • arc
    • Significado: dibuja una curva elíptica
    • Uso:
      • to: punto final del arco
      • with: dirección de inclinación del arco (horizontal/vertical)
      • of: radio de la elipse a la que pertenece el arco (horizontal/vertical)
    • Ejemplo: arc to 10% 50% of 1%
  • curve
    • Significado: dibuja una curva Bézier
    • Uso:
      • to: punto final de la curva
      • with: puntos de control de la curva (ajustan la curvatura)
    • Ejemplo: curve to 0% 100% with 50% 0%
  • smooth
    • Significado: dibuja una curva suave (curva Bézier conectada)
    • Uso:
      • to: punto final
      • by: coordenadas relativas
      • with: punto de control

Otros puntos

  • shape() puede cambiar dinámicamente en estados hover/focus
  • En los navegadores actuales, las animaciones con transition no funcionan
  • También se puede usar la función de cálculo calc()

Enlaces de referencia

Aún no hay comentarios.

Aún no hay comentarios.