Transform

transform: scale(2); will change the element from 0 —> end. Only one step

Transition

transition: all 0.5s ease-out; allows you to change the rate at which element changes from one property to another. Usually want to use with pseudo-classes like :hover or :active or onAction. They don't loop

Animation

CSS animations don’t need a trigger. They can respond to a trigger, but one isn’t needed to start the animation. Animations can run automatically when the page first loads. If you need your elements to change or move automatically, you have only one choice: animations.

Keyframes

You have keyframes and you can change the property values inside keyframes. Example