@justeattakeaway/pie-lottie-player
v0.0.5
Published
PIE Design System Lottie Player built using Web Components
Downloads
775
Maintainers
Keywords
Readme
Table of Contents
pie-lottie-player
pie-lottie-player
is a Web Component built using the Lit library.
This component can be easily integrated into various frontend frameworks and customized through a set of properties.
Installation
To install pie-lottie-player
in your application, run the following on your command line:
# npm
$ npm i @justeattakeaway/pie-lottie-player
# yarn
$ yarn add @justeattakeaway/pie-lottie-player
For full information on using PIE components as part of an application, check out the Getting Started Guide.
Importing the component
JavaScript
// Default – for Native JS Applications, Vue, Angular, Svelte, etc.
import { PieLottiePlayer } from '@justeattakeaway/pie-lottie-player';
// If you don't need to reference the imported object, you can simply
// import the module which registers the component as a custom element.
import '@justeattakeaway/pie-lottie-player';
React
// React
// For React, you will need to import our React-specific component build
// which wraps the web component using @lit/react
import { PieLottiePlayer } from '@justeattakeaway/pie-lottie-player/dist/react';
[!NOTE] When using the React version of the component, please make sure to also include React as a peer dependency in your project.
Nuxt and SSR
When adding this component to a Nuxt application in combination with SSR settings, it might happen to receive the error "500 customElements.get(...) is not a constructor" during the preview of the built application.
That is likely due a known issue with the module that enables using Lit components in Nuxt with SSR, nuxt-ssr-lit
.
To solve the issue, update or add the nitro.moduleSideEffects
array in nuxt.config.ts
:
nitro: {
moduleSideEffects: [
'@justeattakeaway/pie-lottie-player',
],
},
Peer Dependencies
[!IMPORTANT] When using
pie-lottie-player
, you will also need to include a couple of dependencies to ensure the component renders as expected. See the PIE Wiki for more information and how to include these in your application.
Props
| Property | Type | Default | Description |
| ---------------- | --------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| animationSrc | String
| - | Lottie animation JSON file URL or relative path. animationSrc and animationData are mutually exclusive. |
| animationData | Object
| - | Object with Lottie animation data. animationSrc and animationData are mutually exclusive. |
| loopDisabled | Boolean
| false | By the default animations loop, setting this prop as true will prevent such behaviour. |
| autoPlayDisabled | Boolean
| false | By default animations start playing as soon as its data is available, setting this prop as true will prevent such behaviour. |
| speed | Number
| 1 | Determines the animation reproduction speed. 1 is the regular speed, 2 is twice as fast. |
| direction | String
| forward | Sets the animation reproduction direction. |
In your markup or JSX, you can then use these to set the properties for the pie-lottie-player
component:
<!-- Native HTML -->
<pie-lottie-player animationSrc="./animation-file.json"></pie-lottie-player>
<!-- JSX -->
<PieLottiePlayer animationSrc="./animation-file.json"></PieLottiePlayer>
Acessibility
Currently the component is always hidden from screen readers because animations should only be decorative and supplementary. Any important meaning and context should be presented alongside the animation as text.
For the users with the "Reduce motion" setting enabled, the animation will be paused on the first frame.
Contributing
Check out our contributing guide for more information on local development and how to run specific component tests.