# NaN

# Challenge

And that's all I have to say about SVG paths! To summarize, SVG paths are constructed with a series of path commands, each of which is followed by a series of coordinates. Path commands are grouped into three categories:

**Move commands**, which move the path's cursor to a new location without drawing anything;**Line commands**, which draw straight lines from the cursor's current position to a new location, and;**Curve commands**, which draw various types of curves starting from the cursor's current position.

## Animations

One thing I didn't touch on in this guide is how to *animate* paths. I initially had animations in the first draft of the guide, but as I started writing it, I realized there was a *lot* to cover.

In the end, I decided to split off animations into a course called Interactive SVG Animations. If you enjoyed the teaching style of this guide, consider checking it out!

## Challenges

The rest of this guide will be a leetcode-esque series of challenges - tracing over eight beautiful icons courtesy of Iconist's Central icon system. Massive kudos to them for allowing me to use their icons in this guide!

Note: While these icons were originally designed by Iconist's team, I've re-traced them to make them simpler to hand-code. As a result, they may not look 1-1 with the original!

### Cursors & Lines

`M x y`

Moves the cursor to the position (x, y).

`L x y`

Draws a line from the current position to (x, y).

`H x`

Draws a horizontal line from the current position to x.

`V y`

Draws a vertical line from the current position to y.

`Z`

Draws a line from the current position to the start position.

### Curves

`C x1 y1, x2 y2, x y`

Draws a cubic bezier curve from the current position to (x, y), using (x1, y1) and (x2, y2) as control points.

`S x2 y2, x y`

Draws a cubic bezier curve from the current position to (x, y), using the previous control point's reflection and (x2, y2) as control points.

`Q x1 y1, x y`

Draws a quadratic bezier curve from the current position to (x, y), using (x1, y1) as a control point.

`T x y`

Draws a quadratic bezier curve from the current position to (x, y), using the previous control point's reflection as a control point.

`A rx ry x-axis-rotation large-arc sweep x y`

Draws an elliptical arc from the current position to (x, y).

### Cursors & Lines

`M x y`

Moves the cursor to the position (x, y).

`L x y`

Draws a line from the current position to (x, y).

`H x`

Draws a horizontal line from the current position to x.

`V y`

Draws a vertical line from the current position to y.

`Z`

Draws a line from the current position to the start position.

### Curves

`C x1 y1, x2 y2, x y`

Draws a cubic bezier curve from the current position to (x, y), using (x1, y1) and (x2, y2) as control points.

`S x2 y2, x y`

Draws a cubic bezier curve from the current position to (x, y), using the previous control point's reflection and (x2, y2) as control points.

`Q x1 y1, x y`

Draws a quadratic bezier curve from the current position to (x, y), using (x1, y1) as a control point.

`T x y`

Draws a quadratic bezier curve from the current position to (x, y), using the previous control point's reflection as a control point.

`A rx ry x-axis-rotation large-arc sweep x y`

Draws an elliptical arc from the current position to (x, y).

### Cursors & Lines

`M x y`

Moves the cursor to the position (x, y).

`L x y`

Draws a line from the current position to (x, y).

`H x`

Draws a horizontal line from the current position to x.

`V y`

Draws a vertical line from the current position to y.

`Z`

Draws a line from the current position to the start position.

### Curves

`C x1 y1, x2 y2, x y`

Draws a cubic bezier curve from the current position to (x, y), using (x1, y1) and (x2, y2) as control points.

`S x2 y2, x y`

Draws a cubic bezier curve from the current position to (x, y), using the previous control point's reflection and (x2, y2) as control points.

`Q x1 y1, x y`

Draws a quadratic bezier curve from the current position to (x, y), using (x1, y1) as a control point.

`T x y`

Draws a quadratic bezier curve from the current position to (x, y), using the previous control point's reflection as a control point.

`A rx ry x-axis-rotation large-arc sweep x y`

Draws an elliptical arc from the current position to (x, y).

### Cursors & Lines

`M x y`

Moves the cursor to the position (x, y).

`L x y`

Draws a line from the current position to (x, y).

`H x`

Draws a horizontal line from the current position to x.

`V y`

Draws a vertical line from the current position to y.

`Z`

Draws a line from the current position to the start position.

### Curves

`C x1 y1, x2 y2, x y`

`S x2 y2, x y`

`Q x1 y1, x y`

`T x y`

`A rx ry x-axis-rotation large-arc sweep x y`

Draws an elliptical arc from the current position to (x, y).

### Cursors & Lines

`M x y`

Moves the cursor to the position (x, y).

`L x y`

Draws a line from the current position to (x, y).

`H x`

Draws a horizontal line from the current position to x.

`V y`

Draws a vertical line from the current position to y.

`Z`

Draws a line from the current position to the start position.

### Curves

`C x1 y1, x2 y2, x y`

`S x2 y2, x y`

`Q x1 y1, x y`

`T x y`

`A rx ry x-axis-rotation large-arc sweep x y`

Draws an elliptical arc from the current position to (x, y).

### Cursors & Lines

`M x y`

Moves the cursor to the position (x, y).

`L x y`

Draws a line from the current position to (x, y).

`H x`

Draws a horizontal line from the current position to x.

`V y`

Draws a vertical line from the current position to y.

`Z`

Draws a line from the current position to the start position.

### Curves

`C x1 y1, x2 y2, x y`

`S x2 y2, x y`

`Q x1 y1, x y`

`T x y`

`A rx ry x-axis-rotation large-arc sweep x y`

Draws an elliptical arc from the current position to (x, y).

### Cursors & Lines

`M x y`

Moves the cursor to the position (x, y).

`L x y`

Draws a line from the current position to (x, y).

`H x`

Draws a horizontal line from the current position to x.

`V y`

Draws a vertical line from the current position to y.

`Z`

Draws a line from the current position to the start position.

### Curves

`C x1 y1, x2 y2, x y`

`S x2 y2, x y`

`Q x1 y1, x y`

`T x y`

`A rx ry x-axis-rotation large-arc sweep x y`

Draws an elliptical arc from the current position to (x, y).

### Cursors & Lines

`M x y`

Moves the cursor to the position (x, y).

`L x y`

Draws a line from the current position to (x, y).

`H x`

Draws a horizontal line from the current position to x.

`V y`

Draws a vertical line from the current position to y.

`Z`

Draws a line from the current position to the start position.

### Curves

`C x1 y1, x2 y2, x y`

`S x2 y2, x y`

`Q x1 y1, x y`

`T x y`

`A rx ry x-axis-rotation large-arc sweep x y`

Draws an elliptical arc from the current position to (x, y).