Phase 10 — CSS Motion Allowed
This gauge covers Chapter 14 after Tables and Lists.
Learning goal
Use motion to clarify state changes and relationships without making content harder to perceive, operate, or understand.
Inherited tools
Everything allowed through ./phase9-allowed.html remains available.
New CSS
Transitions
transition-propertytransition-durationtransition-timing-functiontransition-delaytransition
Transforms
transformtransform-originopacitytranslate()scale()rotate()
Animations
@keyframesanimation-nameanimation-durationanimation-timing-functionanimation-delayanimation-iteration-countanimation-directionanimation-fill-modeanimation-play-stateanimation
Motion preference
@media (prefers-reduced-motion: reduce)
Learning rules
- Use a transition for a change between an element's existing state and a clearly defined new state such as hover or keyboard focus.
- Name the properties that should transition. Avoid
transition: all, which can animate an unintended future change. - A transition needs a duration greater than zero and a property whose start and end values can be interpolated.
- Keep hover and focus presentations consistent when both users perform the same action. Never reveal essential content only on hover.
translate()moves the rendered box without reserving a different place in normal flow.scale()changes the rendered size without causing surrounding layout to reflow. Leave enough space to prevent overlap.rotate()turns the rendered box around itstransform-origin, which defaults to the centre.- Transform functions are applied together in one
transformvalue. Their order can change the result. - Use
@keyframeswhen motion needs intermediate steps or should run without a state change. - Connect keyframes to an element with
animation-nameand a duration. Additional animation properties control pacing, delay, repetition, direction, and retained keyframe styles. - Prefer motion involving
transformandopacitywhen practical because it usually avoids repeated layout work. - Keep motion brief, purposeful, and limited. Do not use rapid flashing, large unexpected movement, or endless animation that competes with content.
- Respect
prefers-reduced-motion: reduceby removing nonessential animation and reducing nonessential transition movement. - Motion must not be the only way an interface communicates state or meaning.
Not allowed
- JavaScript-driven animation
- Essential information revealed only through hover or animation
- Rapid flashing or strobing effects
- Large automatic movement that obscures content or controls
- Infinite decorative animation without a reduced-motion alternative
transition: all- Inline styles
- Any HTML tag, attribute, or CSS property not inherited or listed above
Pages
01-transitions.html— smooth hover and focus state changes02-transforms.html— translate, scale, rotate, origin, and function order03-basic-animations.html— keyframes, animation properties, and reduced motion
Rules to lean on
Rules 2, 43–45, 54–59, 72–80, 88, 93, 99–106, 121, and 145–154.