Utilities for controlling which CSS properties transition.
Use the transition-{properties}
utilities to specify which properties should transition when they change.
<button class="transition duration-500 ease-in-out bg-blue-600 hover:bg-red-600 transform hover:-translate-y-1 hover:scale-110 ...">
Hover me
</button>
You can conditionally apply animations and transitions using the motion-safe
and motion-reduce
variants:
<button class="transition transform hover:-translate-y-1 motion-reduce:transition-none motion-reduce:transform-none ...">
Hover me
</button>
These variants are not enabled by default, but you can enable them in the variants
section of your tailwind.config.js
file:
// tailwind.config.js
module.exports = {
// ...
variants: {
transitionProperty: ['responsive', 'motion-safe', 'motion-reduce']
}
}
Learn more in the variants documentation.
To change which properties of an element transition at a specific breakpoint, add a {screen}:
prefix to any existing transition-property utility. For example, use md:transition-colors
to apply the transition-colors
utility at only medium screen sizes and above.
For more information about Tailwind's responsive design features, check out the Responsive Design documentation.
By default Tailwind provides transition-property utilities for seven common property combinations. You change, add, or remove these by customizing the transitionProperty
section of your Tailwind theme config.
// tailwind.config.js
module.exports = {
theme: {
extend: {
transitionProperty: {
+ 'height': 'height',
+ 'spacing': 'margin, padding',
}
}
}
}
Learn more about customizing the default theme in the theme customization documentation.
By default, only responsive variants are generated for transition-property utilities.
You can control which variants are generated for the transition-property utilities by modifying the transitionProperty
property in the variants
section of your tailwind.config.js
file.
For example, this config will also generate hover and focus variants:
// tailwind.config.js
module.exports = {
variants: {
extend: {
// ...
+ transitionProperty: ['hover', 'focus'],
}
}
}
If you don't plan to use the transition-property utilities in your project, you can disable them entirely by setting the transitionProperty
property to false
in the corePlugins
section of your config file:
// tailwind.config.js
module.exports = {
corePlugins: {
// ...
+ transitionProperty: false,
}
}