Efectos de texto con SVG: patrones, máscaras y trazados de recorte
Ya sabe que el formato SVG puede hacer mucho más que mostrar formas basadas en vectores. Hoy quiero mostrarles cómo se pueden crear efectos de texto con SVG. Los patrones, las máscaras y los trazados de recorte le permiten implementar una gran cantidad de ideas creativas. Puede realizar efectos de texto inusuales y únicos que ni siquiera se pueden hacer con la ayuda de las muchas características de CSS3 o que al menos no funcionan en todos los navegadores populares.
Patrones como fondo de texto
El elemento „
<defs>
<pattern id="muster" x="0" y="0" width="5" height="5" patternUnits="userSpaceOnUse">
<line x1="0" y1="0" x2="5" y2="5" stroke="#a62121" />
</pattern>
</defs>
Los elementos „
text {
fill: url(#muster);
}
En el ejemplo, un patrón se marca con el ID „patrón“ a través de „
Cortar texto
Usar el elemento „
<defs>
<pattern id="muster" width="5" height="5" patternUnits="userSpaceOnUse">
<line x1="0" y1="0" x2="5" y2="5" stroke="yellow" />
</pattern>
<mask id="maske">
<rect fill="white" />
<text x="50%" y="50%" fill="black">Dr. Web</text>
</mask>
</defs>
En contraste con el primer ejemplo, el texto es parte de la máscara y no un elemento que se muestra de forma independiente. En el último paso, la máscara debe asignarse a un elemento a través del atributo «máscara». En este caso, el elemento es otro rectángulo de relleno de página. Este cuadrado se llena con el patrón a través de «relleno».
defs + rect {
fill: url(#pattern);
mask: url(#mask);
}
En el ejemplo, el rectángulo que se muestra en el área de dibujo recibe la máscara con el ID „máscara“ a través del atributo „máscara“, así como el patrón con el ID „patrón“ a través del „relleno“. Es importante que los rectángulos usados y sus elementos principales tengan el 100 por ciento de ancho y alto para que el patrón pueda cubrir toda la página. Como el texto es parte de la máscara aquí, el texto no se puede seleccionar en este caso.
Recortar texto con trazados
Además de máscaras, SVG conoce rutas de recorte. Estos también funcionan de manera similar a como lo hacen en Photoshop. Un trazado de recorte define un trazado que se utiliza para recortar un elemento, un texto, por ejemplo, para que coincida con la forma del trazado. Para hacer eso, se define una ruta de recorte en el área „
<defs>
<clipPath id="pfad">
<circle cx="33%" cy="50%" r="150" />
<circle cx="66%" cy="50%" r="150" />
</clipPath>
</defs>
Esto puede contener rutas aleatorias que se suman y, por lo tanto, dan como resultado la ruta de recorte. Posteriormente, el trazado de recorte se asigna a un elemento mediante el atributo «trazado de recorte».
En este ejemplo, un texto de varias líneas se recorta para que coincida con la forma de dos círculos superpuestos. El ID de la ruta de recorte se asigna al elemento „
text {
clip-path: url(#pfad);
}
Por supuesto, este efecto de recorte también se puede lograr con una máscara. Sin embargo, las máscaras siempre requieren un área en blanco y negro. Esto significa que necesita varias formas, todas las cuales deben tener un color adjunto. Todo lo que necesita para un trazado de recorte es un camino.
Compatibilidad con navegador
Lo bueno es que todos los navegadores recientes admiten elementos „
Juega con estos ejemplos en Codepen
(dpe)
Este artículo fue escrito originalmente en alemán para nuestra revista hermana Dr. Web.
#Efectos #texto #con #SVG #patrones #máscaras #trazados #recorte