svg-icon-inline-loader
v3.1.0
Published
Webpack loader to inline Material Design SVGs, Ionicon SVGs, Iconic SVGs, or any SVG file.
Downloads
130
Readme
Icon SVG Inline Loader
A webpack loader that enables inlining Material Design SVGs, Ionicon SVGs, Iconic SVGs, or any SVG file into HTML.
Install
npm install --save-dev svg-icon-inline-loader
Usage
Webpack Configuration
{
test: /\.html$/,
loader: 'svg-icon-inline'
},
Or with html-loader:
{
test: /\.html$/,
loader: 'html!svg-icon-inline'
},
Within HTML
This loader recognizes 3 types of self-closing tags:
<mat-svg/>
- Inline a Material Design SVG<ion-svg/>
- Inline an Ionicon SVG<iconic-svg/>
- Inline an Iconic SVG<file-svg/>
- Inline an SVG file.
Inline a Material Design SVG
<mat-svg category="navigation" name="fullscreen_exit"/>
category
: The category that Material Design specifies for that icon.name
: The name of the icon. If the name is multi-word, it must be separated using underscores.
Inline an Ionicon SVG
<ion-svg name="ion-arrow-expand"/>
name
: The name of the icon. If the name is multi-word, it must be separated using hyphens.
Inline an Iconic SVG
<iconic-svg name="account-login"/>
name
: The name of the icon. If the name is multi-word, it must be separated using hyphens.
Inline an SVG File
<file-svg src="./icons/home.svg"/>
src
: The path of the svg file.
Features
Retained Attributes
Any attributes apart from category
, name
, or src
, are retained. For example:
Input
<mat-svg v-if="displayHomeIcon" class="icon-home" category="action" name="home"/>
Output
<svg role="presentation" focusable="false" v-if="displayHomeIcon" class="icon-home" fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"></path>
<path d="M0 0h24v24H0z" fill="none"></path>
</svg>
Accessibility Improvements
A11y modifications for SVGs as recommended.
- Add
role="presentation"
andfocusable="false"
attributes. - Remove
desc
andtitle
attributes.
SVG Optimization
SVGO is used to optimize SVGs.
Applying CSS to SVGs
Inlining SVGs enables CSS to be applied to SVGs.
Notes
Originally forked from markup-inline-loader. Thank you!