# The easiest way to add SVG icons in React

SVG images can be used a couple different ways in react, this is my favorite option.

I create a file for the svg, and make it into a JSX component.

```jsx
export default function FacebookSvg() {
	return (<div>
	    <svg ... />
	</div>
	)
}
```

Simple Icons is a good site for finding brand icons like Facebook. [https://simpleicons.org/?q=facebbok](https://simpleicons.org/?q=facebbok)

Just search for the brand and click the image to copy the svg code.

We have to do some edits to make this code behave the way I like, such as replacing or adding the height and width properties, and change the kebab-case properties to camelCase so it works for React.

```jsx
// add width and height
<svg
width="100%"
height="100%"
...
/>
```

Setting the width and height to 100% makes you able to scale the svg by setting a size on the wrapping container in HTML.

```jsx
<div style="width: 30px; height: 30px;">
	<FacebookSVG />
</div>
```

```jsx
// replace kebab-case with camelCase
clip-path becomes clipPath
xlink:type becomes xlinkType
etc
```

The icons from Simple Icons all have white color, but if you want to set another color you can pass that as a prop to the SVG

```javascript
export default function FacebookSvg(fillColor: string ) {
	return (
		<svg 
            height="100%"
            width="100%"
            role="img"
            viewBox="0 0 24 24" 
            xmlns="http://www.w3.org/2000/svg">
            <title>Facebook</title>
            <path 
                fill={fillColor}
                // or do: fill="currentColor"
                d="M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z"/>
            </svg>)
}
```
