A page is read in time, not all at once.
Show the codeHide the code
<script type="module"> import "motion-components/motion-blur"; </script> <motion-blur direction="both" intensity="18" y="40" once="false"> <p>A page is read in time, not all at once.</p> </motion-blur>
Motion tells you where to look.
Show the codeHide the code
<script type="module"> import "motion-components/motion-blur-in"; </script> <motion-blur-in intensity="24" y="28" duration="0.9" once="false"> <h2>Motion tells you where to look.</h2> </motion-blur-in>
When everything appears at the same moment, the eye has to decide on its own where to start. A small, short movement settles that question. It points at the part that just changed and says: start here.
Show the codeHide the code
<script type="module">
import "motion-components/motion-reveal";
</script>
<motion-reveal y="64" duration="0.8" once="false">
<p>
When everything appears at the same moment, the eye has to decide on its own
where to start. A small, short movement settles that question.
</p>
</motion-reveal>What a single movement can say
This is new.
This belongs with that.
Read this first.
This came from where you clicked.
Nothing here changed.
Show the codeHide the code
<script type="module"> import "motion-components/motion-stagger"; </script> <motion-stagger interval="0.12" y="28" duration="0.6" once="false"> <p>This is new.</p> <p>This belongs with that.</p> <p>Read this first.</p> <p>This came from where you clicked.</p> <p>Nothing here changed.</p> </motion-stagger>
Good motion is noticed once, then forgotten.
Show the codeHide the code
<script type="module"> import "motion-components/motion-blur"; </script> <motion-blur direction="in" intensity="22" y="60" once="false"> <blockquote>Good motion is noticed once, then forgotten.</blockquote> </motion-blur>
The first time, a movement explains what happened. After that it should get out of the way. That is why these entrances are short, why they use springs instead of fixed curves, and why they never move the text you are already reading.
Show the codeHide the code
<script type="module">
import "motion-components/motion-reveal";
</script>
<motion-reveal y="-48" duration="0.9" once="false">
<p>
The first time, a movement explains what happened.
After that it should get out of the way.
</p>
</motion-reveal>Three ways to order a list
Show the codeHide the code
<script type="module"> import "motion-components/motion-stagger"; </script> <motion-stagger interval="0.1" y="40" from="first" once="false" style="display: flex; gap: 1rem"> <span>one</span><span>two</span><span>three</span><span>four</span><span>five</span> </motion-stagger> <motion-stagger interval="0.1" y="40" from="center" once="false" style="display: flex; gap: 1rem"> <span>one</span><span>two</span><span>three</span><span>four</span><span>five</span> </motion-stagger> <motion-stagger interval="0.1" y="40" from="last" once="false" style="display: flex; gap: 1rem"> <span>one</span><span>two</span><span>three</span><span>four</span><span>five</span> </motion-stagger>
And when you move on, it lets go.
Show the codeHide the code
<script type="module"> import "motion-components/motion-blur"; </script> <motion-blur direction="in" intensity="20" y="40" once="false"> <p>And when you move on, it lets go.</p> </motion-blur>