Skip to content

Commit 5ddd5bb

Browse files
committed
feat: add vendor prefixes to keyframes addon
1 parent 77f0ad9 commit 5ddd5bb

1 file changed

Lines changed: 21 additions & 8 deletions

File tree

addon/keyframes.js

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
'use strict';
22

3-
exports.addon = function (renderer) {
3+
exports.addon = function (renderer, config) {
44
if (process.env.NODE_ENV !== 'production') {
55
require('./__dev__/warnOnMissingDependencies')('keyframes', renderer, ['putRaw', 'put']);
66
}
77

8+
config = renderer.assign({
9+
prefixes: ['-webkit-', '-moz-', '-o-', ''],
10+
}, config || {});
11+
12+
var prefixes = config.prefixes;
13+
814
if (renderer.client) {
915
// Craete @keyframe Stylesheet `ksh`.
10-
document.head.appendChild(renderer.ksh = document.createElement('style'))
16+
document.head.appendChild(renderer.ksh = document.createElement('style'));
1117
}
1218

1319
var putAt = renderer.putAt;
@@ -27,12 +33,15 @@ exports.addon = function (renderer) {
2733
str += keyframe + '{' + strDecls + '}';
2834
}
2935

30-
str = prelude + '{' + str + '}';
36+
for (var i = 0; i < prefixes.length; i++) {
37+
var prefix = prefixes[i];
38+
var rawKeyframes = prelude.replace('@keyframes', '@' + prefix + 'keyframes') + '{' + str + '}';
3139

32-
if (renderer.client) {
33-
renderer.ksh.appendChild(document.createTextNode(str));
34-
} else {
35-
renderer.putRaw(str);
40+
if (renderer.client) {
41+
renderer.ksh.appendChild(document.createTextNode(rawKeyframes));
42+
} else {
43+
renderer.putRaw(rawKeyframes);
44+
}
3645
}
3746

3847
return;
@@ -45,7 +54,11 @@ exports.addon = function (renderer) {
4554
if (!block) block = renderer.hash(keyframes);
4655
block = renderer.pfx + block;
4756

48-
renderer.putAt('', keyframes, '@keyframes ' + block);
57+
for (var i = 0; i < prefixes.length; i++) {
58+
var prefix = prefixes[i];
59+
60+
renderer.putAt('', keyframes, '@' + prefix + 'keyframes ' + block);
61+
}
4962

5063
return block;
5164
};

0 commit comments

Comments
 (0)