2021-11-09 10:03:21 -08:00
---
id: 6140d94b5fab7f1d73c9bedb
title: Step 16
challengeType: 0
dashedName: step-16
---
# --description--
The `@keyframes` at-rule is used to define the flow of a CSS animation. Within the `@keyframes` rule, you can create selectors for specific points in the animation sequence, such as `0%` or `25%` , or use `from` and `to` to define the start and end of the sequence.
`@keyframes` rules require a name to be assigned to them, which you use in other rules to reference. For example, the `@keyframes freeCodeCamp { }` rule would be named `freeCodeCamp` .
Time to start animating. Create a `@keyframes` rule named `wheel` .
# --hints--
You should have a `@keyframes` rule.
```js
assert(new __helpers.CSSHelp(document).getCSSRules('keyframes')?.length === 1);
```
Your new `@keyframes` rule should be named `wheel` .
```js
assert(new __helpers.CSSHelp(document).getCSSRules('keyframes')?.[0]?.name === 'wheel');
```
# --seed--
## --seed-contents--
```html
<!DOCTYPE html>
< html >
< head >
< meta charset = "UTF-8" >
2022-03-14 15:54:43 +00:00
< title > Ferris Wheel< / title >
2021-11-09 10:03:21 -08:00
< link rel = "stylesheet" href = "./styles.css" >
< / head >
< body >
< div class = "wheel" >
< span class = "line" > < / span >
< span class = "line" > < / span >
< span class = "line" > < / span >
< span class = "line" > < / span >
< span class = "line" > < / span >
< span class = "line" > < / span >
< div class = "cabin" > < / div >
< div class = "cabin" > < / div >
< div class = "cabin" > < / div >
< div class = "cabin" > < / div >
< div class = "cabin" > < / div >
< div class = "cabin" > < / div >
< / div >
< / body >
< / html >
```
```css
.wheel {
border: 2px solid black;
border-radius: 50%;
margin-left: 50px;
position: absolute;
height: 55vw;
width: 55vw;
max-width: 500px;
max-height: 500px;
}
.line {
background-color: black;
width: 50%;
height: 2px;
position: absolute;
top: 50%;
left: 50%;
transform-origin: 0% 0%;
}
.line:nth-of-type(2) {
transform: rotate(60deg);
}
.line:nth-of-type(3) {
transform: rotate(120deg);
}
.line:nth-of-type(4) {
transform: rotate(180deg);
}
.line:nth-of-type(5) {
transform: rotate(240deg);
}
.line:nth-of-type(6) {
transform: rotate(300deg);
}
.cabin {
background-color: red;
width: 20%;
height: 20%;
position: absolute;
border: 2px solid;
transform-origin: 50% 0%;
}
.cabin:nth-of-type(1) {
right: -8.5%;
top: 50%;
}
.cabin:nth-of-type(2) {
right: 17%;
top: 93.5%;
}
.cabin:nth-of-type(3) {
right: 67%;
top: 93.5%;
}
.cabin:nth-of-type(4) {
left: -8.5%;
top: 50%;
}
.cabin:nth-of-type(5) {
left: 17%;
top: 7%;
}
.cabin:nth-of-type(6) {
right: 17%;
top: 7%;
}
--fcc-editable-region--
--fcc-editable-region--
```