transitions/animations
(Korniycuk Anton)

transition

base

transition: all .2s ease-in-out 1s;

transition-property: all;
transition-duration: .2s;
transition-timing-function: ease-in-out;
transition-delay: 1s;

timing-functions

- ease // specifies a transition effect with a slow start, then fast, then end slowly (this is default)
- linear // specifies a transition effect with the same speed from start to end
- ease-in // specifies a transition effect with a slow start
- ease-out // specifies a transition effect with a slow end
- ease-in-out // specifies a transition effect with a slow start and end
- cubic-bezier(n,n,n,n) // lets you define your own values in a cubic-bezier function

multi

transition: width 2s, height: 1s;

transition-property: width, height;
transition-duration: 2s, 1s;

transform

base

transform: none|transform-functions;

transform-origin: x-axis y-axis z-axis|initial|inherit;

example:
transform-origin: left top;

x-axis, y-axis values:

- left
- center
- right
- length(px,...)
- %

z-asis values:

- length(px,...)

transform-style: flat|preserve-3d; // enables or disables 3D

- flat* // Specifies that child elements will NOT preserve its 3D position. This is default
- preserve-3d // Specifies that child elements will preserve its 3D position

perspective: 200px; // only for parent

backface-visibility: visible*|hidden;

will-change: auto*| prop [, prop]? // allow to enable hardware resources for some of CSS properties
// https://dev.opera.com/articles/ru/css-will-change-property/

transform-functions

matrix(n,n,n,n,n,n) (0.586,0.8,-0.8,0.586,40,40) // a 2D transformation, using a matrix of six values
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) // a 3D transformation, using a 4x4 matrix of 16 values

translate(x,y) (20px,10px) // a 2D translation
translate3d(x,y,z) // a 3D translation
translateX(x) // a translation, using only the value for the X-axis
translateY(y) // a translation, using only the value for the Y-axis
translateZ(z) // a 3D translation, using only the value for the Z-axis

scale(x,y) (0.5,2) // a 2D scale transformation
scale3d(x,y,z) // a 3D scale transformation
scaleX(x) // a scale transformation by giving a value for the X-axis
scaleY(y) // a scale transformation by giving a value for the Y-axis
scaleZ(z) // a 3D scale transformation by giving a value for the Z-axis

rotate(angle) (45deg) // a 2D rotation, the angle is specified in the parameter
rotate3d(x,y,z,angle) (1,2,3,30deg) => 30deg,60deg,90deg // a 3D rotation
rotateX(angle) // a 3D rotation along the X-axis
rotateY(angle) // a 3D rotation along the Y-axis
rotateZ(angle) // a 3D rotation along the Z-axis

skew(x-angle,y-angle) // a 2D skew transformation along the X- and the Y-axis, transforms content
skewX(angle) // a 2D skew transformation along the X-axis
skewY(angle) // a 2D skew transformation along the Y-axis

perspective(n) // a perspective view for a 3D transformed element