SVG
Why SVG¶
How SVG describes an image¶
- container that defines a new coordinate system and viewport
- can embed an SVG in HTML or another SVG
TODO: nested SVGs???
<svg> properties¶
- width
- height
viewBox¶
<circle>¶
default fill is black
<rect>¶
Round corners¶
- how many pixels before it stops curving
- same as border-radius
if either rx or ry is 0, then it goes back to 90 degree angles
<line>¶
Path¶
- Move to (don't draw anything)
upper case: absolute lower case: relative
closes the path
| Mx,y | Move to the absolute coordinates x,y |
|---|---|
| mx,y | Move to the right x and down y (or left and up if negative values) |
| Lx,y | Draw a straight line to the absolute coordinates x,y |
| lx,y | Draw a straight line to a point that's relatively right x and down y (or left and up if negative values) |
| Hx | Draw a line horizontally to the exact coordinate x |
| hx | Draw a line horizontally relatively to the right x (or to the left if a negative value) |
| Vy | Draw a line vertically to the exact coordinate y |
| vy | Draw a line vertically relatively down y (or up if a negative value) |
| Z(orz) | Draw a straight line back to the start of the path |
SVG Sprites¶
<symbol>¶
<svg xmlns="http://www.w3.org/2000/svg" style="display:none;">
<symbol id="icon-circle" viewBox="0 0 32 32">
<circle cx="16" cy="16" r="16" />
</symbol>
Using SVG Sprites in React¶
function Icon({ id, ...props }) {
return (
<svg {...props}>
<use href={`/images/sprite.svg#${id}`} />
</svg>
);
}
<Icon id="icon-circle" />
Last update:
2023-04-24