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.
- Install keyframes-tool using
npm install keyframes-tool
or adding it in yourpackage.json
as:"devDependencies": { "keyframes-tool": "^1.0.3" }
and runnpm 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 tokeyframes-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(1, 1, 1);
}
50% {
transform: scale3d(1.05, 1.05, 1.05);
}
to {
transform: scale3d(1, 1, 1);
}
}
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.