# CSS - Motion ## Lesson Objectives 1. Explain the roles in traditional animation and how they apply to computer animation 1. Create basic transitions between a start and end state in CSS 1. Write complex animations with multiple states ## Explain the roles in traditional animation and how they apply to computer animation 1. In traditional (hand-drawn) animation, there were two kinds of animators - Keyframe artist - Draws the main frames for the animation - Inbetweener (tweener) - Fills in the frames between each keyframe so it looks fluid 1. In computer animation, we act as the keyframe artist, and the computer is the tweener. ## Create basic transitions between a start and end state in CSS Define a start state and an end state ```css a { background:yellow; /* start state */ } a:hover { background:green; /* end state */ } ``` Three main properties: - `transition-property: background, left, top, height;` - `transition-duration: 0.5s;` - `transition-timing-function: ease;` - ease - linear - ease-in - ease-out - ease-in-out - cubic-bezier(n,n,n,n) - `transition-delay: 1s;` Shorthand - `transition: ` ## Write complex animations with multiple states Transitions are great for going from one state to another, but sometimes you need more than a start and end state. To do this, there are two steps 1. Create a named animation with a set of keyframes. ```css @keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} } ``` 1. Assign the animation to a rule and give it a duration ```css div { width: 100px; height: 100px; background-color: red; position: relative; animation-name: example; animation-duration: 4s; } ``` 1. Additional properties - animation-timing-function - animation-iteration-count (can be set to infinite) - animation-direction - reverse - alternate - animation-delay - animation-play-state - paused - running