Clip-path o trazados de recorte en SVG
Archivado en: Adobe Illustrator SVG
Los trazados de recorte – mascaras de recorte – se utilizan en SVG a través del elemento clipPath
.
El elemento clipPath
puede contener path
, text
y las diferentes formas básicas que tenemos disponibles en SVG.
Con clipPath
conseguimos que las figuras que declaramos dentro de clipPath
hagan un efecto de recorte sobre el objeto que le indicamos. Como siempre esto lo vamos a ver mucho mejor con un ejemplo.
Para el ejemplo utilizare como trazado de recorte este buzón que podéis ver en CodePen.
Ahora lo que haremos sera incluir este código dentro de clipPath
con el id buzon. Lo siguiente que haremos sera aplicarlo sobre un rect
, esto lo hacemos con este trozo de código dentro de la propia etiqueta rect
clip-path="url(#buzon)"
.
A continuación podeis ver todo el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<clipPath id="buzon">
<line stroke="#95A5A6"
stroke-width="7"
x1="261.7" y1="395.1" x2="126.7" y2="395.1"/>
<line stroke="#95A5A6"
stroke-width="15"
x1="410.3" y1="532.3" x2="410.3" y2="398.7"/>
<line stroke="#6D7575"
stroke-width="15" x1="410.3" y1="417.6" x2="410.3" y2="398.7"/>
<path fill="#34495E"
d="M550.725,399.876H253.01c0,0,0.372-132.317,3.637-142.253c2.234,0.034,285.124-0.132,286.8,0
C552.773,259.225,550.725,399.876,550.725,399.876z"/>
<path fill="#2C3E50"
d="M550.725,399.876H253.01c0,0,288.764-142.385,290.437-142.253
C552.773,259.225,550.725,399.876,550.725,399.876z"/>
<polygon fill="#47C9AF"
points="167.908,338.555 239.688,380.977 239.688,291.115 "/>
<polygon fill="#16A085"
points="97.901,291.198 97.901,380.997 240.075,380.997 "/>
<polyline fill="none"
stroke="#E74C3C" stroke-width="15" points="286,335,286,220 330,220"/>
<line stroke="#E74C3C"
stroke-width="19" x1="277.58" y1="215.5" x2="338.4" y2="215.5"/>
<line stroke="#E74C3C"
stroke-width="13" x1="286.2" y1="335.4" x2="286.2" y2="211.4"/>
<polygon fill="#47C9AF"
points="175.828,333.536 97.901,291.115 97.901,380.977 "/>
<polyline fill="#237C6B"
points="239.688,291.115 171.27,340.936 97.901,291.198 "/>
<rect x="281.7" y="323"
fill="#2C3E50" width="9.3" height="9.3" />
</clipPath>
<rect width="1000px"
height="1000px"
fill="black" clip-path="url(#buzon)"/>
Vamos a ver otro ejemplo donde vamos a utilizar clipPath
con texto, este recorte lo vamos a aplicar a un g
, este grupo esta compuesto por dos rectángulos uno de ellos de color negro y el otro de color rojo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<clipPath id="texto">
<text
font-size="90px"
font-family="Arial"
x="100" y="100">
Hola que pasa que tal
</text>
</clipPath>
<g clip-path="url(#texto)">
<rect
width="1000px"
height="100px"
fill="black"/>
<rect
x="0" y="78"
width="1000px"
height="100px"
fill="red"/>
</g>
Por último comentar que Adobe Illustrator exporta bastante bien los trazados de recorte, en alguna ocasión utiliza el elemento clipPath
para resolver otro tipo de problemas, pero si hacemos un trazado de recorte el resultado a la hora de exportar como SVG suele ser bastante bueno.
Me ha gustado mucho el ejemplo con el que ilustran el trazado de recorte en Mozilla Developers.
SCALABLE, un libro sobre SVGA lo largo de 15 capítulos, 120 páginas y más de 70 ejemplos vamos a ver todo lo que podemos hacer con SVG. Tu pones el precio, disponible desde 0$ para descargar desde LeanPub(PDF, ePUB y MOBI).