Created
April 9, 2022 18:31
-
-
Save sguzman/bb9904c060411a0f7fc95c86cf09ac78 to your computer and use it in GitHub Desktop.
Fun with SVG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Document</title> | |
</head> | |
<body> | |
<h1>Highlight</h1> | |
<svg height="200" width="500"> | |
<polyline | |
points="20,20 40,25 60,40 80,120 120,140 200,180" | |
style="fill:none;stroke:black;stroke-width:3" /> | |
Sorry, your browser does not support inline SVG. | |
</svg> | |
<svg height="120" width="120"> | |
<defs> | |
<filter id="f1" x="0" y="0" width="200%" height="200%"> | |
<feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" /> | |
<feBlend in="SourceGraphic" in2="offOut" mode="normal" /> | |
</filter> | |
</defs> | |
<rect width="90" height="90" stroke="green" stroke-width="3" fill="yellow" filter="url(#f1)" /> | |
</svg> | |
<svg version="1.1" width="300" height="200" xmlns="http://www.w3.org/2000/svg"> | |
<rect width="100%" height="100%" fill="red" /> | |
<circle cx="150" cy="100" r="80" fill="green" /> | |
<text x="150" y="125" font-size="60" text-anchor="middle" fill="white">SVG</text> | |
</svg> | |
<svg version="1.1" width="300" height="200" xmlns="http://www.w3.org/2000/svg"> | |
<circle cx="150" cy="100" r="50" fill="red" stroke="black" /> | |
<rect x="0" y="0" width="100" height="100" /> | |
</svg> | |
<svg width="200" height="200" viewBox="0 0 100 100"> </svg> | |
<svg width="200" height="250" version="1.1" xmlns="http://www.w3.org/2000/svg"> | |
<rect x="10" y="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5" /> | |
<rect x="60" y="10" rx="10" ry="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5" /> | |
<circle cx="25" cy="75" r="20" stroke="red" fill="transparent" stroke-width="5" /> | |
<ellipse cx="75" cy="75" rx="20" ry="5" stroke="red" fill="transparent" stroke-width="5" /> | |
<line x1="10" x2="50" y1="110" y2="150" stroke="orange" stroke-width="5" /> | |
<polyline points="60 110 65 120 70 115 75 130 80 125 85 140 90 135 95 150 100 145" stroke="orange" fill="transparent" | |
stroke-width="5" /> | |
<polygon points="50 160 55 180 70 180 60 190 65 205 50 195 35 205 40 190 30 180 45 180" stroke="green" | |
fill="transparent" stroke-width="5" /> | |
<path d="M20,230 Q40,205 50,230 T90,230" fill="none" stroke="blue" stroke-width="5" /> | |
</svg> | |
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M10 10" /> | |
<!-- Points --> | |
<circle cx="10" cy="10" r="2" fill="red" /> | |
</svg> | |
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M 10 10 H 90 V 90 H 10 L 10 10" /> | |
<!-- Points --> | |
<circle cx="10" cy="10" r="2" fill="red" /> | |
<circle cx="90" cy="90" r="2" fill="red" /> | |
<circle cx="90" cy="10" r="2" fill="red" /> | |
<circle cx="10" cy="90" r="2" fill="red" /> | |
</svg> | |
<svg width="190" height="160" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M 10 10 C 20 20, 40 20, 50 10" stroke="black" fill="transparent" /> | |
<path d="M 70 10 C 70 20, 110 20, 110 10" stroke="black" fill="transparent" /> | |
<path d="M 130 10 C 120 20, 180 20, 170 10" stroke="black" fill="transparent" /> | |
<path d="M 10 60 C 20 80, 40 80, 50 60" stroke="black" fill="transparent" /> | |
<path d="M 70 60 C 70 80, 110 80, 110 60" stroke="black" fill="transparent" /> | |
<path d="M 130 60 C 120 80, 180 80, 170 60" stroke="black" fill="transparent" /> | |
<path d="M 10 110 C 20 140, 40 140, 50 110" stroke="black" fill="transparent" /> | |
<path d="M 70 110 C 70 140, 110 140, 110 110" stroke="black" fill="transparent" /> | |
<path d="M 130 110 C 120 140, 180 140, 170 110" stroke="black" fill="transparent" /> | |
</svg> | |
<svg width="190" height="160" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M 10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80" stroke="black" fill="transparent" /> | |
</svg> | |
<svg width="190" height="160" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M 10 80 Q 95 10 180 80" stroke="black" fill="transparent" /> | |
</svg> | |
<svg width="190" height="160" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M 10 80 Q 52.5 10, 95 80 T 180 80" stroke="black" fill="transparent" /> | |
</svg> | |
<svg width="320" height="320" xmlns="http://www.w3.org/2000/svg"> | |
<path d="M 10 315 | |
L 110 215 | |
A 30 50 0 0 1 162.55 162.45 | |
L 172.55 152.45 | |
A 30 50 -45 0 1 215.1 109.9 | |
L 315 10" stroke="black" fill="green" stroke-width="2" fill-opacity="0.5" /> | |
</svg> | |
<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"> | |
<rect width="10" height="10"> | |
<animate attributeName="rx" values="0;5;0" dur="10s" repeatCount="indefinite" /> | |
</rect> | |
</svg> | |
<svg width="120" height="240" version="1.1" xmlns="http://www.w3.org/2000/svg"> | |
<defs> | |
<linearGradient id="Gradient1"> | |
<stop class="stop1" offset="0%" /> | |
<stop class="stop2" offset="50%" /> | |
<stop class="stop3" offset="100%" /> | |
</linearGradient> | |
<linearGradient id="Gradient2" x1="0" x2="0" y1="0" y2="1"> | |
<stop offset="0%" stop-color="red" /> | |
<stop offset="50%" stop-color="black" stop-opacity="0" /> | |
<stop offset="100%" stop-color="blue" /> | |
</linearGradient> | |
<style type="text/css"> | |
<![CDATA[ | |
#rect1 { | |
fill: url(#Gradient1); | |
} | |
.stop1 { | |
stop-color: red; | |
} | |
.stop2 { | |
stop-color: black; | |
stop-opacity: 0; | |
} | |
.stop3 { | |
stop-color: blue; | |
} | |
]]> | |
</style> | |
</defs> | |
<rect id="rect1" x="10" y="10" rx="15" ry="15" width="100" height="100" /> | |
<rect x="10" y="120" rx="15" ry="15" width="100" height="100" fill="url(#Gradient2)" /> | |
</svg> | |
<?xml version="1.0" standalone="no"?> | |
<svg width="120" height="120" version="1.1" xmlns="http://www.w3.org/2000/svg"> | |
<defs> | |
<radialGradient id="Gradient" cx="0.5" cy="0.5" r="0.5" fx="0.25" fy="0.25"> | |
<stop offset="0%" stop-color="red" /> | |
<stop offset="100%" stop-color="blue" /> | |
</radialGradient> | |
</defs> | |
<rect x="10" y="10" rx="15" ry="15" width="100" height="100" fill="url(#Gradient)" stroke="black" stroke-width="2" /> | |
<circle cx="60" cy="60" r="50" fill="transparent" stroke="white" stroke-width="2" /> | |
<circle cx="35" cy="35" r="2" fill="white" stroke="white" /> | |
<circle cx="60" cy="60" r="2" fill="white" stroke="white" /> | |
<text x="38" y="40" fill="white" font-family="sans-serif" font-size="10pt">(fx,fy)</text> | |
<text x="63" y="63" fill="white" font-family="sans-serif" font-size="10pt">(cx,cy)</text> | |
</svg> | |
<?xml version="1.0" standalone="no"?> | |
<svg width="220" height="220" version="1.1" xmlns="http://www.w3.org/2000/svg"> | |
<defs> | |
<radialGradient id="GradientPad" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="pad"> | |
<stop offset="0%" stop-color="red" /> | |
<stop offset="100%" stop-color="blue" /> | |
</radialGradient> | |
<radialGradient id="GradientRepeat" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="repeat"> | |
<stop offset="0%" stop-color="red" /> | |
<stop offset="100%" stop-color="blue" /> | |
</radialGradient> | |
<radialGradient id="GradientReflect" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="reflect"> | |
<stop offset="0%" stop-color="red" /> | |
<stop offset="100%" stop-color="blue" /> | |
</radialGradient> | |
</defs> | |
<rect x="10" y="10" rx="15" ry="15" width="100" height="100" fill="url(#GradientPad)" /> | |
<rect x="10" y="120" rx="15" ry="15" width="100" height="100" fill="url(#GradientRepeat)" /> | |
<rect x="120" y="120" rx="15" ry="15" width="100" height="100" fill="url(#GradientReflect)" /> | |
<text x="15" y="30" fill="white" font-family="sans-serif" font-size="12pt">Pad</text> | |
<text x="15" y="140" fill="white" font-family="sans-serif" font-size="12pt">Repeat</text> | |
<text x="125" y="140" fill="white" font-family="sans-serif" font-size="12pt">Reflect</text> | |
</svg> | |
<svg width="30" height="10"> | |
<g fill="red"> | |
<rect x="0" y="0" width="10" height="10" /> | |
<rect x="20" y="0" width="10" height="10" /> | |
</g> | |
</svg> | |
<svg width="40" height="50" style="background-color:#bff;"> | |
<rect x="0" y="0" width="10" height="10" transform="translate(30,40)" /> | |
</svg> | |
<svg width="31" height="31"> | |
<rect x="12" y="-10" width="20" height="20" transform="rotate(45)" /> | |
</svg> | |
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<defs> | |
<clipPath id="cut-off-bottom"> | |
<rect x="0" y="0" width="200" height="100" /> | |
</clipPath> | |
</defs> | |
<circle cx="100" cy="100" r="100" clip-path="url(#cut-off-bottom)" /> | |
</svg> | |
<svg width="200" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" | |
xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<defs> | |
<linearGradient id="Gradient"> | |
<stop offset="0" stop-color="black" /> | |
<stop offset="1" stop-color="white" /> | |
</linearGradient> | |
<mask id="Mask"> | |
<rect x="0" y="0" width="200" height="200" fill="url(#Gradient)" /> | |
</mask> | |
</defs> | |
<rect x="0" y="0" width="200" height="200" fill="green" /> | |
<rect x="0" y="0" width="200" height="200" fill="red" mask="url(#Mask)" /> | |
</svg> | |
<svg width="200" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" | |
xmlns:xlink="http://www.w3.org/1999/xlink"> | |
<rect x="0" y="0" width="200" height="200" fill="blue" /> | |
<circle cx="100" cy="100" r="50" stroke="yellow" stroke-width="40" stroke-opacity=".5" fill="red" /> | |
</svg> | |
<svg width="250" viewBox="0 0 200 85" xmlns="http://www.w3.org/2000/svg" version="1.1"> | |
<defs> | |
<!-- Filter declaration --> | |
<filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> | |
<!-- offsetBlur --> | |
<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur" /> | |
<feOffset in="blur" dx="4" dy="4" result="offsetBlur" /> | |
<!-- litPaint --> | |
<feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" specularExponent="20" | |
lighting-color="#bbbbbb" result="specOut"> | |
<fePointLight x="-5000" y="-10000" z="20000" /> | |
</feSpecularLighting> | |
<feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut" /> | |
<feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" k1="0" k2="1" k3="1" k4="0" | |
result="litPaint" /> | |
<!-- merge offsetBlur + litPaint --> | |
<feMerge> | |
<feMergeNode in="offsetBlur" /> | |
<feMergeNode in="litPaint" /> | |
</feMerge> | |
</filter> | |
</defs> | |
<!-- Graphic elements --> | |
<g filter="url(#MyFilter)"> | |
<path fill="none" stroke="#D90000" stroke-width="10" d="M50,66 c-50,0 -50,-60 0,-60 h100 c50,0 50,60 0,60z" /> | |
<path fill="#D90000" d="M60,56 c-30,0 -30,-40 0,-40 h80 c30,0 30,40 0,40z" /> | |
<g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana"> | |
<text x="52" y="52">SVG</text> | |
</g> | |
</g> | |
</svg> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment