<input type="checkbox" id="slowmo" />
<label for="slowmo">Slowmo!</label>
<div>🐶</div>
body { font-size: 32px; }
input { height: 32px; width: 32px; }
div { font-size: 64px; width: fit-content; }
@property --angle1 {
syntax: "<angle>";
initial-value: 0deg;
inherits: false;
}
@property --angle2 {
syntax: "<angle>";
initial-value: 0deg;
inherits: false;
}
div {
position: absolute;
animation-name: spin1;
animation-delay: 0s;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
transform-origin: 100% 100%;
transform: rotate(var(--angle1));
}
#slowmo:checked ~ div {
transform: rotate(var(--angle2));
animation-name: spin1, spin2;
animation-duration: 2s, 5s;
animation-play-state: paused, running;
}
@keyframes spin1 {
to {
--angle1: 360deg;
}
}
@keyframes spin2 {
from {
--angle2: var(--angle1);
}
to {
--angle2: calc(var(--angle1) + 360deg);
}
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.