- CSS Basics
- CSS Tutorial HomePage
- CSS Where to Write
- CSS Syntax
- CSS Selectors
- CSS Combinators
- CSS Attribute Selectors
- CSS Pseudo Classes
- CSS Pseudo-Classes
- CSS :link :hover :active
- CSS :first-child
- CSS :first-of-type
- CSS :last-child
- CSS :last-of-type
- CSS :only-child
- CSS :only-of-type
- CSS :nth-child()
- CSS :nth-of-type()
- CSS :nth-last-child()
- CSS :nth-last-of-type()
- CSS :focus
- CSS :not()
- CSS :root
- CSS :empty
- CSS :target
- CSS :lang()
- CSS :valid
- CSS :invalid
- CSS :optional
- CSS :required
- CSS :in-range
- CSS :out-of-range
- CSS :enabled :disabled
- CSS :read-only
- CSS :read-write
- CSS Pseudo Elements
- CSS Pseudo-Elements
- CSS ::before
- CSS ::after
- CSS ::first-letter
- CSS ::first-line
- CSS ::marker
- CSS ::selection
- CSS Colors
- CSS Colors
- CSS rgb() and rgba()
- CSS hsl() and hsla()
- CSS Background
- CSS background
- CSS background-color
- CSS background-image
- CSS linear-gradient()
- CSS radial-gradient()
- CSS conic-gradient()
- CSS repeating-linear-gradient()
- CSS repeating-radial-gradient()
- CSS repeating-conic-gradient()
- CSS background-position
- CSS background-size
- CSS background-repeat
- CSS background-origin
- CSS background-clip
- CSS background-attachment
- CSS background-blend-mode
- CSS Border
- CSS border
- CSS border-style
- CSS border-style Values
- CSS border-width
- CSS border-color
- CSS border-top
- CSS border-top-style
- CSS border-top-width
- CSS border-top-color
- CSS border-bottom
- CSS border-bottom-style
- CSS border-bottom-width
- CSS border-bottom-color
- CSS border-left
- CSS border-left-style
- CSS border-left-width
- CSS border-left-color
- CSS border-right
- CSS border-right-style
- CSS border-right-width
- CSS border-right-color
- CSS border-top-left-radius
- CSS border-top-right-radius
- CSS border-bottom-left-radius
- CSS border-bottom-right-radius
- CSS border-radius
- CSS border-collapse
- CSS empty-cells
- CSS border-spacing
- CSS border-image
- CSS border-image-source
- CSS border-image-slice
- CSS border-image-width
- CSS border-image-outset
- CSS border-image-repeat
- CSS Fonts
- CSS font
- CSS font-style
- CSS font-variant
- CSS font-variant-caps
- CSS font-weight
- CSS font-size
- CSS line-height
- CSS font-family
- CSS font-stretch
- CSS font-kerning
- CSS font-face
- CSS font-feature-settings
- CSS Text
- CSS Text
- CSS color
- CSS text-decoration
- CSS text-decoration-line
- CSS text-decoration-color
- CSS text-decoration-style
- CSS text-underline-position
- CSS text-align
- CSS text-align-last
- CSS text-justify
- CSS letter-spacing
- CSS word-spacing
- CSS text-shadow
- CSS text-transform
- CSS white-space
- CSS text-indent
- CSS word-wrap
- CSS overflow-wrap
- CSS word-break
- CSS text-overflow
- CSS hyphens
- CSS direction
- CSS unicode-bidi
- CSS writing-mode
- CSS Padding & Margin
- CSS Box Model
- CSS padding
- CSS padding-top
- CSS padding-right
- CSS padding-bottom
- CSS padding-left
- CSS margin
- CSS margin-top
- CSS margin-right
- CSS margin-bottom
- CSS margin-left
- CSS Padding Vs Margin
- CSS Dimensions
- CSS Dimensions
- CSS height
- CSS max-height
- CSS min-height
- CSS width
- CSS max-width
- CSS min-width
- CSS overflow
- CSS overflow-x
- CSS overflow-y
- CSS Multi-Column Layout
- CSS Multi-Column Layout
- CSS columns
- CSS column-width
- CSS column-count
- CSS column-rule
- CSS column-rule-width
- CSS column-rule-style
- CSS column-rule-color
- CSS column-span
- CSS column-fill
- CSS Display
- CSS display
- CSS inline Vs block
- CSS inline Vs inline-block
- CSS flex Vs inline-flex
- CSS inline-flex Vs inline-block
- CSS flex Vs grid
- CSS grid Vs inline-grid
- CSS Float and Position
- CSS float
- CSS clear
- CSS Align
- CSS position
- CSS left
- CSS right
- CSS top
- CSS bottom
- CSS Style List Marker
- CSS Style List Marker
- CSS list-style
- CSS list-style-type
- CSS list-style-position
- CSS list-style-image
- CSS Outline
- CSS outline
- CSS outline-width
- CSS outline-style
- CSS outline-color
- CSS outline-offset
- CSS Effects
- CSS Effects
- CSS Gradients
- CSS Shadows
- CSS box-shadow
- CSS opacity
- CSS Transforms
- CSS transform
- CSS translateX()
- CSS translateY()
- CSS translateZ()
- CSS translate()
- CSS translate3d()
- CSS scaleX()
- CSS scaleY()
- CSS scaleZ()
- CSS scale()
- CSS scale3d()
- CSS rotateX()
- CSS rotateY()
- CSS rotateZ()
- CSS rotate()
- CSS rotate3d()
- CSS skewX()
- CSS skewY()
- CSS skew()
- CSS matrix()
- CSS matrix3d()
- CSS perspective() Function
- CSS perspective Property
- CSS perspective-origin
- CSS transform-style
- CSS transform-origin
- CSS 2D Transform
- CSS 3D Transform
- CSS Transition
- CSS transition
- CSS transition-property
- CSS transition-duration
- CSS transition-timing-function
- CSS transition-delay
- CSS Animation
- CSS animation
- CSS @keyframes
- CSS animation-name
- CSS animation-duration
- CSS animation-timing-function
- CSS animation-delay
- CSS animation-iteration-count
- CSS animation-direction
- CSS animation-fill-mode
- CSS animation-play-state
- CSS Grid Layout
- CSS Grid Layout
- CSS gap
- CSS column-gap
- CSS row-gap
- CSS grid-area
- CSS grid-column-start
- CSS grid-column-end
- CSS grid-row-start
- CSS grid-row-end
- CSS grid-template
- CSS grid-template-columns
- CSS grid-template-rows
- CSS grid-template-areas
- CSS grid-auto-columns
- CSS grid-auto-rows
- CSS grid-auto-flow
- CSS grid-column
- CSS grid-row
- CSS Template Layout
- CSS Flex Layout
- CSS FlexBox
- CSS flex-direction
- CSS flex-wrap
- CSS flex-flow
- CSS justify-content
- CSS align-content
- CSS align-items
- CSS flex-grow
- CSS flex-shrink
- CSS flex-basis
- CSS flex
- CSS align-self
- CSS order
- CSS Misc
- CSS Length Units
- CSS Style Link
- CSS Navigation Bar
- CSS Style Image
- CSS Style Tables
- CSS table-layout
- CSS caption-side
- CSS Create Frames
CSS animation-timing-function
The CSS animation-timing-function property is used when we need to create smooth animation. That is, it defines the way to process an animation during the specified animation time duration. For example:
<!DOCTYPE html> <html> <head> <style> #mydivone, #mydivtwo {width: 50px; height: 50px; border-radius: 50%; background-color: maroon; position: relative; animation-name: fresherearth; animation-duration: 2s; animation-iteration-count: infinite;} @keyframes fresherearth { from {top: 0px; left: 0px;} to {top: 0px; left: 220px;} } #mydivtwo{animation-timing-function: ease-in;} </style> </head> <body> <div id="mydivone"></div> <br/> <div id="mydivtwo"></div> </body> </html>
In above example, the animation-timing-function property with ease-in value is defined for the second circle.
The animation-timing-function defines the speed curve of an animation in CSS.
Note - The animation-name is used to define a name for an animation.
Note - The animation-duration is used to define time to complete one iteration or cycle of an animation.
Note - The animation-iteration-count is used to define the total number of iterations or cycles for an animation to play.
Note - The @keyframes is used to define the change in styles for multiple times in one cycle of selected animation.
CSS animation-timing-function Syntax
The syntax of animation-timing-function property in CSS, is:
animation-timing-function: x;
The value of x should be any of the following:
- linear - used to apply same speed curve to an animation, from start to end
- ease - used to start the animation slowly, then fast, then ends slowly. This is the default value
- ease-in - used to define slow start to an animation
- ease-out - used to define slow end to an animation
- ease-in-out - used to define slow start and end to an animation
- steps(int, start|end) - used to animate in intervals as defined using the int (a number greater than 0) parameter. The second parameter is optional. The default value of second parameter is end.
- step-start - used when we need to apply the final style. In place of step-start, we can also use steps(1, start)
- step-end - used when we need to apply the initial style. In place of step-end, we can also use steps(1, end)
- cubic-bezier(v, v, v, v) - used to apply completely custom speed curve for an animation. v refers to a number from 0 to 1 including negative values. The first and last values are starting and ending point of the Cubic Bezier curve.
- initial - used to use the default value
- inherit - used to use the value inherited by the parent element
CSS animation-timing-function Example
<!DOCTYPE html> <html> <head> <style> #a, #b, #c, #d, #e, #f, #g, #h, #i, #j, #k, #l {width: 50px; height: 50px; border-radius: 50%; background-color: maroon; position: relative; animation-name: fresherearth; animation-duration: 2s; animation-iteration-count: infinite;} @keyframes fresherearth { from {top: 0px; left: 0px;} to {top: 0px; left: 220px; background-color: blue;} } #b{animation-timing-function: linear;} #c{animation-timing-function: ease;} #d{animation-timing-function: ease-in;} #e{animation-timing-function: ease-out;} #f{animation-timing-function: ease-in-out;} #g{animation-timing-function: step-start;} #h{animation-timing-function: step-end;} #i{animation-timing-function: steps(10, start);} #j{animation-timing-function: steps(30, start);} #k{animation-timing-function: steps(10, end);} #l{animation-timing-function: steps(30, end);} </style> </head> <body> <h2>Without animation-timing-function</h2> <div id="a"></div> <h2>animation-timing-function: linear</h2> <div id="b"></div> <h2>animation-timing-function: ease</h2> <div id="c"></div> <h2>animation-timing-function: ease-in</h2> <div id="d"></div> <h2>animation-timing-function: ease-out</h2> <div id="e"></div> <h2>animation-timing-function: ease-in-out</h2> <div id="f"></div> <h2>animation-timing-function: step-start</h2> <div id="g"></div> <h2>animation-timing-function: step-end</h2> <div id="h"></div> <h2>animation-timing-function: steps(10, start)</h2> <div id="i"></div> <h2>animation-timing-function: steps(30, start)</h2> <div id="j"></div> <h2>animation-timing-function: steps(10, end)</h2> <div id="k"></div> <h2>animation-timing-function: steps(30, end)</h2> <div id="l"></div> </body> </html>
Without animation-timing-function
animation-timing-function: linear
animation-timing-function: ease
animation-timing-function: ease-in
animation-timing-function: ease-out
animation-timing-function: ease-in-out
animation-timing-function: step-start
animation-timing-function: step-end
animation-timing-function: steps(10, start)
animation-timing-function: steps(30, start)
animation-timing-function: steps(10, end)
animation-timing-function: steps(30, end)
CSS animation-timing-function: cubic-bezier() Example
<!DOCTYPE html> <html> <head> <style> #a, #b, #c, #d, #e, #f{width: 50px; height: 50px; border-radius: 50%; background-color: maroon; position: relative; animation-name: fresherearth; animation-duration: 2s; animation-iteration-count: infinite;} @keyframes fresherearth { from {top: 0px; left: 0px;} to {top: 0px; left: 220px;} } #b{animation-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);} #c{animation-timing-function: cubic-bezier(.76,1.9,.87,-0.74);} #d{animation-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1);} #e{animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045);} #f{animation-timing-function: cubic-bezier(1, 0, 0, 1);} </style> </head> <body> <h2>Without animation-timing-function</h2> <div id="a"></div> <h2>animation-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1)</h2> <div id="b"></div> <h2>animation-timing-function: cubic-bezier(.76,1.9,.87,-0.74)</h2> <div id="c"></div> <h2>animation-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1)</h2> <div id="d"></div> <h2>animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045)</h2> <div id="e"></div> <h2>animation-timing-function: cubic-bezier(1, 0, 0, 1)</h2> <div id="f"></div> </body> </html>
Without animation-timing-function
animation-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1)
animation-timing-function: cubic-bezier(.76,1.9,.87,-0.74)
animation-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1)
animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045)
animation-timing-function: cubic-bezier(1, 0, 0, 1)
« Previous Tutorial Next Tutorial »