SVG styler

The SVG styler replaces the confusing SVG transformation model with the CSS model and provides a simple API for path drawing.

const pathStyler = styler(document.getElementByTag('path'))

pathStyler.set({ pathLength: 50 })

Path drawing

Line drawing the process of using an SVG path element and its stroke-dasharray and stoke-dashoffset properties to emulate a pen drawing a line. This blog post explains the effect in more detail.

Stylefire supports both'stoke-dasharray' and stroke-dashorigin properties, but also provides:

  • pathLength
  • pathSpacing
  • pathOffset

These are all set as a progress of the total path length, from 0 to 1, which is automatically measured by Stylefire.

So you can define an animation from 0 to 1:

import { tween } from 'popmotion';
import styler from 'stylefire';

const path = document.querySelector('path');
const pathStyler = styler(polygon);

tween({ to: 1 }).start(
  v => pathStyler.set('pathLength', v)
);

In this example you can change the real path shape and length without having to update the animation.

Props

Supported props

All SVG attributes are supported. x and y attributes can be accessed via attrX and attrY.

The following transform props are supported:

  • rotate: degrees
  • rotateX: degrees
  • rotateY: degrees
  • scale: scale
  • scaleX: scale
  • scaleY: scale
  • skewX: degrees
  • skewY: degrees
  • translateX: px
  • translateY: px
  • translateZ: px
  • perspective: px

Prop types

For convenience and safety, many props are mapped to value types for safety and convenience.

  • fill: color
  • stroke: color
  • x/y: px
  • scale: scale
  • scaleX: scale
  • scaleY: scale
  • opacity: alpha
  • fillOpacity: alpha
  • strokeOpacity: alpha