Skip to content
Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

Learn more
Transform SVGs into React components 🦁
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github docs: add issue templates & contributing Sep 16, 2018
__fixtures__ docs: update all documentations Nov 4, 2018
deprecated-packages/svgr chore: various fixes Jun 12, 2018
examples/webpack chore: upgrade example Jun 12, 2018
packages fix: keep viewBox when dimensions are removed (#281) Mar 10, 2019
resources chore: fix donate links Sep 26, 2018
svgr.now.sh docs: move website to svgr repo (#251) Dec 12, 2018
website docs(website): add streamline ads Feb 10, 2019
.babelrc
.eslintignore
.eslintrc.json
.gitignore
.prettierignore docs: move website to svgr repo (#251) Dec 12, 2018
.prettierrc
.travis.yml
BACKERS.md docs: move website to svgr repo (#251) Dec 12, 2018
CHANGELOG.md
CODE_OF_CONDUCT.md feat: move to a Lerna project Jun 12, 2018
CONTRIBUTING.md
LICENSE chore: add license Dec 20, 2017
README.md docs: new docs website (#238) Nov 22, 2018
babel.config.js
jest.config.js
lerna.json
netlify.toml
now.json chore(now): add public: true (#276) Feb 14, 2019
package.json docs: move website to svgr repo (#251) Dec 12, 2018
yarn.lock docs: move website to svgr repo (#251) Dec 12, 2018

README.md

svgr

Transform SVGs into React components 🦁

License Donate npm package npm downloads Build Status Code Coverage Code style Dependencies DevDependencies

Try it out online!

Watch the talk at React Europe

SVGR transforms SVG into ready to use components. It is part of create-react-app and makes SVG integration into your React projects easy.

Docs

See the documentation at smooth-code.com/open-source/svgr for more information about using svgr!

Quicklinks to some of the most-visited pages:

Example

Take an icon.svg:

<?xml version="1.0" encoding="UTF-8"?>
<svg
  width="48px"
  height="1px"
  viewBox="0 0 48 1"
  version="1.1"
  xmlns="http://www.w3.org/2000/svg"
  xmlns:xlink="http://www.w3.org/1999/xlink"
>
  <!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
  <title>Rectangle 5</title>
  <desc>Created with Sketch.</desc>
  <defs></defs>
  <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
    <g
      id="19-Separator"
      transform="translate(-129.000000, -156.000000)"
      fill="#063855"
    >
      <g id="Controls/Settings" transform="translate(80.000000, 0.000000)">
        <g id="Content" transform="translate(0.000000, 64.000000)">
          <g id="Group" transform="translate(24.000000, 56.000000)">
            <g id="Group-2">
              <rect id="Rectangle-5" x="25" y="36" width="48" height="1"></rect>
            </g>
          </g>
        </g>
      </g>
    </g>
  </g>
</svg>

Run SVGR

npx @svgr/cli --icon --replace-attr-values "#063855=currentColor" icon.svg

Output

import React from 'react'

const SvgComponent = props => (
  <svg width="1em" height="1em" viewBox="0 0 48 1" {...props}>
    <path d="M0 0h48v1H0z" fill="currentColor" fillRule="evenodd" />
  </svg>
)

export default SvgComponent

Supporting SVGR

SVGR is a MIT-licensed open source project. It's an independent project with ongoing development made possible thanks to the support of these awesome backers. If you'd like to join them, please consider:

Gold Sponsors

Gold Sponsors are those who have pledged $200/month and more to SVGR.

gold-sponsors

License

Licensed under the MIT License, Copyright © 2017-present Smooth Code.

See LICENSE for more information.

Acknowledgements

This project has been popularized by Christopher Chedeau and it has been included in [create-react-app] thanks to Dan Abramov. We would like to thanks Sven Sauleau for his help and its intuition.

You can’t perform that action at this time.