lion/packages/progress-indicator/README.md
Goffert van Gool c224baa801
feat: add loading indicator (#857)
feat: add loading indicator
2020-08-06 13:35:26 +02:00

90 lines
1.7 KiB
Markdown

[//]: # 'AUTO INSERT HEADER PREPUBLISH'
# Progress Indicator
`lion-progress-indicator` implements accessibility requirements for progress indicators.
```js script
import { html } from 'lit-html';
import './demo/custom-progress-indicator.js';
export default {
title: 'Others/Progress Indicator',
};
```
## Features
- Accessibility compliant
- Localized "Loading" label
- Implementation independent of visuals
## How to use
### Installation
```bash
npm i --save @lion/progress-indicator
```
```js
import { LionProgressIndicator } from '@lion/progress-indicator';
// or
import '@lion/progress-indicator/lion-progress-indicator.js';
```
### Example
```html
<lion-progress-indicator></lion-progress-indicator>
```
## Extended indicator with a custom visual
`LionProgressIndicator` is designed to be extended to add visuals. Implement the `_graphicTemplate` method to set the rendered content, and apply styles normally.
### Example extension
```js
class CustomProgressIndicator extends LionProgressIndicator {
static get styles() {
return [
css`
svg {
animation: spinner-rotate 2s linear infinite;
display: inline-block;
height: 48px;
width: 48px;
}
circle {
fill: none;
stroke-width: 3.6;
stroke: firebrick;
stroke-dasharray: 100, 28;
}
@keyframes spinner-rotate {
to {
transform: rotate(360deg);
}
}
`,
];
}
_graphicTemplate() {
return html`<svg viewBox="22 22 44 44">
<circle cx="44" cy="44" r="20.2" />
</svg>`;
}
}
```
### Result
```js preview-story
export const customProgressDemo = () => html`
<custom-progress-indicator></custom-progress-indicator>
`;
```