SVG
React
Web Development
Dynamic Graphics
Icons
Frontend Development
UI Design

How to Use SVG in React for Dynamic Graphics and Icons

Deepak Tewatia
August 28, 2025
3 min read

Introduction

SVGs are a powerful tool for creating clear graphics and icons in React applications. They help make your interfaces crisp and responsive, which is essential for modern web design. Let’s break down how to use SVG effectively in your React projects.

What is SVG?

SVG stands for Scalable Vector Graphics. Unlike bitmap images, SVGs are scalable, meaning they can be resized without losing quality. This feature makes them perfect for icons and graphics that need to look sharp on all screens, including high-resolution displays.

Why Use SVG in React?

Using SVG in your React projects offers several advantages:

  • Scalability: SVGs remain clear at any size.
  • Editability: You can change colors and other properties easily in your code.
  • Performance: SVG files are often smaller than their bitmap counterparts.
  • Accessibility: SVGs can include titles and descriptions for better screen reader support.

How to Add SVG to React

There are two main ways to use SVG in React: importing an SVG file or embedding the SVG code directly into your component. Let’s look at both methods.

Method 1: Importing an SVG File

This method is simple and keeps your components clean. Follow these steps:

  1. Create an SVG file. For example, save the following SVG code as icon.svg:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
    <path fill="none" d="M0 0h24v24H0z"/>
    <path d="M12 2l9 9-9 9-9-9 9-9z"/>
</svg>
  1. Import the SVG file into your React component:
import React from 'react';
import { ReactComponent as Icon } from './icon.svg';

const MyComponent = () => {
    return (
        <div>
            <Icon style={{ fill: 'blue', width: '50px', height: '50px' }} />
        </div>
    );
};

Here’s the thing: you can easily change the fill, width, and height properties to customize your icon's look.

Method 2: Embedding SVG Code Directly

If you prefer to have SVG code right in your component, you can easily do that too. This method allows for even more flexibility:

import React from 'react';

const MyComponent = () => {
    return (
        <div>
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path fill="none" d="M0 0h24v24H0z"/>
                <path d="M12 2l9 9-9 9-9-9 9-9z" fill="red"/>
            </svg>
        </div>
    );
};

In this example, you have full control over the SVG. You can change colors, sizes, or even add animations directly in the SVG code.

Styling SVGs in React

Styling SVGs can be done through CSS just like any other HTML element. You can apply styles directly in the SVG or through external stylesheets. Here’s an example:

import './styles.css';

const MyComponent = () => {
    return (
        <div className="icon-container">
            <svg className="my-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path fill="none" d="M0 0h24v24H0z"/>
                <path d="M12 2l9 9-9 9-9-9 9-9z"/>
            </svg>
        </div>
    );
};

Best Practices for Using SVG in React

To get the most out of SVG in your React projects, keep these tips in mind:

  • Keep SVGs small: Optimize your SVG files using tools like SVGOMG for better performance.
  • Use semantic markup: Add title and desc elements inside your SVG for accessibility.
  • Combine SVGs: If you have multiple icons, consider combining them into one SVG file to reduce HTTP requests.

Conclusion

SVGs are excellent for creating dynamic graphics and icons in React. They are scalable, easy to edit, and can greatly enhance the visual quality of your web applications. By following the methods outlined above, you’ll be able to easily integrate SVGs into your projects. So, give it a try and see how SVGs can elevate your next React application!