vite-plugin-svgr-component
Advanced tools
Weekly downloads
Readme
Vite zero-config customizable plugin to import SVG and transform it to a React component in a simple way.
?component
string needed# NPM install as a devDepencency
npm i vite-plugin-svgr-component -D
# YARN install as a devDependency
yarn add vite-plugin-svgr-component -D
Add svgrComponent
plugin to vite.config.js / vite.config.ts
and use it:
By default it will transform all the
*.svg
files imported to a React component
/* vite.config.js / vite.config.ts */
import { svgrComponent } from 'vite-plugin-svgr-component';
export default {
// ...
plugins: [
svgrComponent()
]
}
/*---------------------------------------------------------*/
/* React component file */
import CustomIcon from 'custom-icon.svg';
const Component = (props) => (
<div>
<CustomIcon />
{/* You can add a title by default */}
<CustomIcon title="custom svg title" />
{/* Accesibility (A11y) title props linked to titleId prop */}
<CustomIcon title="custom svg title" titleId="custom-icon"/>
</div>
)
As it uses micromatch under the hood, you can set a string pattern to transform specific svg file imports
/* vite.config file */
export default {
// ...
plugins: [
// Example: import HomeIcon from 'home-icon-embedded.svg'
svgrComponent({ importStringPattern: '*-embedded.svg' })
]
}
As it uses svgr under the hood, you can set all the available options to generate the react component. Here you have an example:
/* vite.config file */
export default {
// ...
plugins: [
svgrComponent({
svgrOptions: {
ref: true, // Forward the ref to the root SVG tag.
icon: true, // Replace SVG width and height with
// 1em to make SVG inherit text size.
/* ... */
}
})
]
}
If you use the plugin in a Typescript project you will need the reference to the type definitions
to allow to use "title" and "titleId" in your SVGComponent
/* vite-env.d.ts (file) */
/// <reference types="vite-plugin-svgr-component/client" />
Check out the type declaration src/index.ts with all the related types
Created with Typescript! ⚡ and latin music 🎺🎵
FAQs
⚛️ Vite zero-config customizable plugin to import SVG and transform it to a React component in a simple way
The npm package vite-plugin-svgr-component receives a total of 567 weekly downloads. As such, vite-plugin-svgr-component popularity was classified as not popular.
We found that vite-plugin-svgr-component demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.