- @lion/ajax@0.1.16 - @lion/button@0.2.0 - @lion/calendar@0.1.45 - @lion/checkbox-group@0.1.45 - @lion/checkbox@0.1.41 - @lion/choice-input@0.2.18 - @lion/core@0.1.13 - @lion/field@0.1.38 - @lion/fieldset@0.1.40 - @lion/form-system@0.0.47 - @lion/form@0.1.44 - @lion/icon@0.2.5 - @lion/input-amount@0.1.41 - @lion/input-date@0.1.40 - @lion/input-datepicker@0.1.48 - @lion/input-email@0.1.40 - @lion/input-iban@0.1.41 - @lion/input@0.1.40 - @lion/localize@0.4.9 - @lion/overlays@0.3.11 - @lion/popup@0.2.25 - @lion/radio-group@0.1.45 - @lion/radio@0.1.41 - @lion/select@0.1.38 - @lion/steps@0.1.14 - @lion/textarea@0.1.42 - @lion/tooltip@0.2.25 - @lion/validate@0.2.22 |
||
|---|---|---|
| .. | ||
| src | ||
| stories | ||
| test | ||
| CHANGELOG.md | ||
| index.js | ||
| lion-icon.js | ||
| package.json | ||
| README.md | ||
Icon
A web component for displaying icons.
How to use
Installation
npm i --save @lion/icon
import '@lion/icon/lion-icon.js';
Basic usage
Include the import for both the custom element the icons you want:
<script type="module">
import 'lion-icon/lion-icon.js';
import bugSvg from '../icons/bug.svg.js';
</script>
Use it in your lit-html template:
<lion-icon .svg="${bugSvg}"></lion-icon>
Icon format
Icon file is an ES module with an extension .svg.js which exports a function like this:
// bug.svg.js
export default tag => tag`
<svg focusable="false" ...>...</svg>
`;
Make sure you have focusable="false" in the icon file to prevent bugs in IE/Edge when the icon appears in tab-order.
Accessibiltiy
You may add an aria-label to provide information to visually impaired users:
<lion-icon .svg="${arrowLeftSvg}" aria-label="Pointing left"></lion-icon>
A lion-icon without an aria-label attribute will be automatically be given an aria-hidden attribute.
Styling
Dimensions
By default, a lion-icon will be 1em × 1em (the current line-height).
A lion-icon may be styled like a regular HTML element:
<style>
lion-icon.big {
width: 3rem;
height: 3rem;
}
</style>
SVG Styling
lion-icon uses SVGs and may be styled with CSS, using CSS properties such as fill and stroke:
<style>
lion-icon.strong {
fill: azure;
stroke: lightsteelblue;
}
</style>
<lion-icon .icon="${arrowSvg}" class="strong"></lion-icon>
See SVG and CSS on MDN web docs for more information.