keyframes-tool

1.0.3 • Public • Published

keyframes-tool

Keyframes-tool is a NodeJs command line tool which convert CSS Animations to a keyframes object suitable for Web Animations API.

Use this tool to move your interactive animations from stylesheets to JavaScript.

Great! So how do I use it?

  • Install keyframes-tool using npm install keyframes-tool or adding it in your package.json as: "devDependencies": { "keyframes-tool": "^1.0.3" } and run npm install.
  • Run command line in your keyframes-tool directory and enter node keyframes-tool ./input.css ./output.json, where as first argument ./input.css is the CSS source file to process and the second argument ./output.json is the destination file with the converted result. Paths should be relative to keyframes-tool.js file location.
  • keyframes-tool will create a JSON file from your CSS where any CSS Animation declarations found will be added as a property, example:

Input file input.css:

@keyframes flash {
  from, 50%, to {
    opacity: 1;
  }
 
  25%, 75% {
    opacity: 0;
  }
}
 
@keyframes pulse {
  from {
    transform: scale3d(111);
  }
 
  50% {
    transform: scale3d(1.051.051.05);
  }
 
  to {
    transform: scale3d(111);
  }
}
 

Output file output.json:

{
    "flash": [
        {
            "opacity": "1",
            "offset": "0",
            "easing": "ease"
        },
        {
            "opacity": "0",
            "offset": "0.25",
            "easing": "ease"
        },
        {
            "opacity": "1",
            "offset": "0.5",
            "easing": "ease"
        },
        {
            "opacity": "0",
            "offset": "0.75",
            "easing": "ease"
        },
        {
            "opacity": "1",
            "offset": "1",
            "easing": "ease"
        }
    ],
    "pulse": [
        {
            "transform": "scale3d(1, 1, 1)",
            "offset": "0",
            "easing": "ease"
        },
        {
            "transform": "scale3d(1.05, 1.05, 1.05)",
            "offset": "0.5",
            "easing": "ease"
        },
        {
            "transform": "scale3d(1, 1, 1)",
            "offset": "1",
            "easing": "ease"
        }
    ]
}
  • Use the result as embedded data in your JavaScript as shown in this example, alternatively you could load the JSON data using Ajax.

Package Sidebar

Install

npm i keyframes-tool

Weekly Downloads

1

Version

1.0.3

License

MIT

Last publish

Collaborators

  • gibbok