svgr
svg-sprite-loader
Our great sponsors
svgr | svg-sprite-loader | |
---|---|---|
26 | 1 | |
9,327 | 1,946 | |
- | 0.4% | |
8.3 | 0.0 | |
29 days ago | about 2 months ago | |
TypeScript | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
svgr
-
One way of building an SVG icon library for your project
Really interesting framework agnostic approach, but I think SVGR is a better option for my React homies. It imports an SVG file as a React component. Shouts also to react-icons if Font Awesome, Material Icons and friends are more your bag.
-
Alternative libs to migrate from React to Vue (or Vue to React)
SVGR
-
Power up SVGs with React and CSS
There is another way to import an SVG in Create React App, though. We can import the SVG as a ReactComponent. This is because CRA leverages SVGR to process SVGs.
-
Создаем React-компоненты иконок с помощью Figma API и SVGR. Часть 2.
const { types } = require('@babel/core'); module.exports = { ... template: function svgrCustomTemplate( { imports, interfaces, componentName, props, jsx, exports }, { tpl } ) { // меняем корневой элемент на SvgIcon jsx.openingElement.name.name = 'SvgIcon'; jsx.closingElement.name.name = 'SvgIcon'; // https://github.com/gregberge/svgr/issues/530 // при изменении корневого элемента пропадает спред пропсов // поэтому необходимо добавить спред пропсов самостоятельно jsx.openingElement.attributes.push( types.jSXSpreadAttribute(types.identifier('props')) ); return tpl` ${imports}; import { SvgIcon } from '../SvgIcon'; ${interfaces}; const ${componentName} = (${props}) => ( ${jsx} ); ${exports}; ` } }
-
Using SVGs in Common Lisp web apps with Djula
To solve these problems and have a better development workflow, I have created a package called cl-djula-svg which automates all the above steps for you. The inspiration for this package came from svgr which exactly does the same thing in React applications. It takes a SVG file, process some override logic, optimize it and create React wrapper components based on the SVG content.
-
Some svg icons wont show with react native svg
I normally use SVGR but every time a designer sends me an svg i’ll pass it in svgOmg that deletes all the unnecessary attributes and propietary code from figma, illustrator &co.
- External SVGs that you can style
-
How to debug from this error statement
https://github.com/gregberge/svgr/issues/362 this may help as well.
-
Repeating variable names for imports, types and switch. Got to be a better way!
If you're using Webpack, CRA, or Next.js, you should be using SVGR.
-
How to use SVGs in React
SVGR is the library that powers this ability. Setting it up could be a little hairy, thankfully many popular frameworks (Create React App, Gatsby) support this feature out of the box.
svg-sprite-loader
-
SVG Icon System for vue cli 3
/* vue.config.js */ module.exports = { pluginOptions: { svgSprite: { /* * The directory containing your SVG files. */ dir: 'src/assets/icons', /* * The reqex that will be used for the Webpack rule. */ test: /\.(svg)(\?.*)?$/, /* * @see https://github.com/kisenka/svg-sprite-loader#configuration */ loaderOptions: { extract: true, spriteFilename: 'img/icons.svg' // or 'img/icons.svg' if filenameHashing == false }, /* * @see https://github.com/kisenka/svg-sprite-loader#configuration */ pluginOptions: { plainSprite: true } } }, chainWebpack: config => { config.module .rule('svg-sprite') .use('svgo-loader') .loader('svgo-loader') } }
What are some alternatives?
vite-plugin-svgr - Vite plugin to transform SVGs into React components
svgo - ⚙️ Node.js tool for optimizing SVG files
esbuild - An extremely fast bundler for the web
raw-loader - A loader for webpack that allows importing files as a String
sass-loader - Compiles Sass to CSS
vue-cli-plugin-svg-sprite - vue-cli 3 plugin to build an SVG sprite
rollup-plugin-visualizer - 📈⚖️ Visuallize your bundle
extract-loader - webpack loader to extract HTML and CSS from the bundle
blog-series-nextjs-nx - Source code for the Next.js + Nx blog series
vite-plugin-svg-icons - Vite Plugin for fast creating SVG sprites.
Konva - Konva.js is an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications.
workerize-loader - 🏗️ Automatically move a module into a Web Worker (Webpack loader)