Build Design Systems With Penpot Components
Penpot's new component system for building scalable design systems, emphasizing designer-developer collaboration.

After the animation is defined (@keyframes), we can control:
Here’s a simple implementation:
button {
animation-duration: 1s;
animation-name: pulse;
}
In the above example, we add an animation to a button, define the duration as 1 second, and specify the name of the animation that we created earlier: “pulse.”
If we were to adjust the animation duration, the behavior of the button would change as well. For example:
Demo URL: http://ift.tt/2mh1LZ9
We use the animation timing function when we want to determine how the animation will accelerate and slow down during its movement cycle. We have to determine the speed at which it will move. There are options such as initial, inherit, ease, ease-in, ease-out, and linear…
Credit: http://ift.tt/2mhlXKv
Animation Timing Function: Left (ease) and Right (linear)
Adjusting your animation is a straightforward process. Using the Cubic-bezier curve as a guide, you can adjust the timing according to your needs.
Animation Timing Function: cubic-bezier(.18,.18,.83,-1.33)
Information on how to use the Cubic-bezier curve is available on Mozilla’s Developer Website.
Animation delay is used when we want to determine the delay time of the animation. The animation gets triggered, then starts 1 second later. For example, we applied the delay to our “Send Feedback” button:
Animation Delays: Left (1s delay) and Right (2s delay)
Animation play state is used to specify whether the animation should pause or continue.
Demo URL: http://ift.tt/2mh85zQ
Interaction count is used to determine how many times the animation will repeat its cycle.
Demo URL: http://ift.tt/2mhhYgV
Animation Direction is used to determine in what direction the animation moves — such as whether it’s from 0% to 100% of its size, from 100% to 0%, or from 0% to 100%, then reverse from 100% to 0%.
Demo URL: http://ift.tt/2mh85zQ
When the animation is finished, the style applied to the elements during movement is not permanent. It is only applied during the animation and then removed, with the help of this value:
Demo URL: http://ift.tt/2m3hb7c
AI-driven updates, curated by humans and hand-edited for the Prototypr community