Skip to content

Commit 17b0d02

Browse files
committed
add reduced-motion variant
1 parent 805f101 commit 17b0d02

3 files changed

Lines changed: 33 additions & 4 deletions

File tree

README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ plugins: [
3131
bounceOutSpeed: 750,
3232
animationDelaySpeed: 1000
3333
},
34-
variants: ['responsive'],
34+
variants: ['responsive', 'hover', 'reduced-motion'],
3535
}),
3636
]
3737
```
@@ -73,6 +73,24 @@ All of these settings are optional, if not set basic animate.css fallback animat
7373

7474
The plugin generates all the animate.css utility classes for you.
7575

76+
### Varinats
77+
Generating different class variants is super easy, just add the desired variant to the variants array at the plugin options.
78+
```js
79+
plugins: [
80+
// Other plugins
81+
require('tailwindcss-animatecss')({
82+
classes: [],
83+
settings: {},
84+
variants: ['responsive', 'hover', 'reduced-motion'],
85+
}),
86+
]
87+
```
88+
#### Available variants
89+
* responsive
90+
* hover
91+
* reduced-motion [Read more](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion)
92+
93+
7694
### Available Animate CSS classes
7795
* .animated
7896
* .infinite

animate/animate.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const keyframesFadeIn = require('./keyframes/fadeIn');
1414
const keyframesFadeOut = require('./keyframes/fadeOut');
1515

1616
module.exports = function ({ classes = [], settings = {}, variants = ['responsive'] }) {
17-
return function ({ e, addUtilities, prefix }) {
17+
return function ({ e, addUtilities, prefix, addVariant, postcss }) {
1818

1919
// set fallback if speed not defined
2020
const animatedSpeed = settings.animatedSpeed ? settings.animatedSpeed : 1000;
@@ -405,5 +405,14 @@ module.exports = function ({ classes = [], settings = {}, variants = ['responsiv
405405
addUtilities(utilities, { variants, respectImportant: false });
406406

407407
addUtilities(keyFrames, { respectImportant: false });
408+
409+
addVariant('reduced-motion', ({ container, separator }) => {
410+
const supportsRule = postcss.atRule({ name: 'media', params: '(prefers-reduced-motion: reduce)' })
411+
supportsRule.append(container.nodes)
412+
container.append(supportsRule)
413+
supportsRule.walkRules(rule => {
414+
rule.selector = `.${e(`reduced-motion${separator}${rule.selector.slice(1)}`)}`
415+
})
416+
})
408417
};
409418
};

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tailwindcss-animatecss",
3-
"version": "0.3.0",
3+
"version": "0.3.1",
44
"description": "Add Animate CSS as Tailwind CSS plugin to your project.",
55
"main": "index.js",
66
"repository": {
@@ -12,7 +12,9 @@
1212
"tailwindcss",
1313
"animatecss",
1414
"animate.css",
15-
"css"
15+
"css",
16+
"awesome",
17+
"awesome-list"
1618
],
1719
"author": "Fabian Bentz",
1820
"license": "MIT",

0 commit comments

Comments
 (0)