Transition-property Property

Last updated: 2026-09-13

transition-property Transition-property Property

The transition-property property specifies which CSS properties apply a transition effect when their values change. Its default value is all, meaning every animatable property takes part in the transition; you can also list specific property names explicitly to avoid unnecessary performance cost and unexpected animation behavior.

Category
Initial Valueall
InheritedNo
Applies To
Animation Type
CSS VersionCSS3
StatusStandard

📝 Syntax

transition-property: none | all | <property>#;

⚙️ Values

ValueTypeDescription
all | noneKeywordAll properties or none
<property>TypeThe property to transition

▶ Example

Edit the code below and see the live result in the playground:

🌐 Browser Support

Browser ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
transition-property v26 v12 v16 v6.1 v12.1
Supported in all major browsers
Warning: Using all is convenient, but any change to any animatable property will trigger a transition, which can cause unexpected effects — even font-size changes get animated. It is recommended to list the properties you actually need.

❓ FAQ

QWhich CSS properties can transition-property target for animation?
AOnly interpolable properties can be transitioned — those with intermediate numeric states, such as color, opacity, transform, box-shadow, filter, width, and height. Discrete properties like display, visibility, and font-family cannot be smoothed and will simply jump between states.
QWhat is the point of setting the transition-property to none?
Anone means no property takes part in any transition, which is equivalent to disabling transitions on the element. It is commonly used to temporarily turn off transitions — for example, preventing elements from flying in from their initial position on first page load. It can also reset transition settings inherited from a parent or a global stylesheet.
QWhat are the pitfalls of transition-property: all? Why is all not recommended?
Aall animates every animatable property whenever it changes, which creates two problems: a performance cost, because changes to incidental properties such as font-size or line-height also get animated; and hard-to-control behavior, producing animations that feel unmanaged. Listing the properties explicitly is cheaper and easier to maintain — all only suits tiny components with very few animatable properties.
QWhy can't the height: auto value be transitioned or animated?
Aheight: auto has no definite intermediate value, so the browser cannot interpolate between height: 0 and auto, and the animation jumps abruptly. Common workarounds: the max-height trick, transitioning grid-template-rows from 0fr to 1fr to reveal content, or using scaleY() with transform-origin for a visual expand.

📚 Related Tutorials

Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏