0.1.0 • Published 11 months ago

react-spriter v0.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
11 months ago

This package is a work in progress!

npm version workflow cypress

React Spriter

React Spriter is a React component that allows you to create animated sprites using styled-components. It simplifies the process of animating sprites by providing a convenient interface to define sprite properties and animations.

DEMOS: https://react-spriter.callumeddisford.co.uk/

Build a game! Tell a story! Animate your icons!

Features

  • Pause and play sprite
  • Change sprite layer

Installation

To use ReactSpriter in your React project, you can install it via npm or yarn:

npm install react-spriter

or

yarn add react-spriter

Usage

  1. Import ReactSpriter into your component:
import ReactSpriter from "react-spriter";
  1. Use ReactSpriter in your component's render method:
class MyComponent extends React.Component {
  render() {
    return (
      <ReactSpriter
        sprite={sprite}
        spriteWidth={spriteWidth}
        frameWidth={frameWidth}
        frameHeight={frameHeight}
        elementWidth={elementWidth}
        duration={animationDuration}
        isInfinite={isInfinite}
        shouldAnimate={shouldAnimate}
        layer={layer}
      />
    );
  }
}

Props

FieldTypeDescription
spritestringThe URL of the sprite image.
frameWidthnumberThe width of each frame in the sprite.
frameHeightnumberThe height of each frame in the sprite.
elementWidthnumber(optional) Use this option to resize the sprite to a given pixel width, the element height is calculated automatically to mantain apsect ratio.
spriteWidthnumberThe total width of the sprite image.
animationDurationnumberThe duration of the animation in milliseconds.
isInfinitebooleanWhether the animation should loop infinitely.
shouldAnimateboolean(optional) Whether the animation should start automatically. Defaults to true.
layernumber(optional) The layer of the sprite animation. If multiple sprites are layered on top of each other, this value determines the order of rendering.

Examples

Here's an example of how you can use ReactSpriter to animate a sprite, in this example each frame width is 64 and the total sprite image width is 512 this indicates there are 8 frames to animate over:

import React from "react";
import ReactSpriter from "react-spriter";
import sprite from "path/to/sprite.png";

const MyComponent = () => {
  const spriteWidth = 512;
  const frameWidth = 64;
  const frameHeight = 64;
  const elementWidth= 50;
  const animationDuration = 1000;
  const isInfinite = true;
  const shouldAnimate = true;
  const layer = 0;

  return (
    <ReactSpriter
      sprite={sprite}
      spriteWidth={spriteWidth}
      frameWidth={frameWidth}
      frameHeight={frameHeight}
      elementWidth={elementWidth}
      duration={animationDuration}
      isInfinite={isInfinite}
      shouldAnimate={shouldAnimate}
      layer={layer}
    />
  );
};

export default MyComponent;

Please check out the src/examples directory for more

Local development

To start storybook locally:

  npm install
  npm run storybook
0.1.0

11 months ago

0.0.3

11 months ago

0.0.2

11 months ago

0.0.1

11 months ago