Skip to main content

Ferris Wheel

The Project

Animated ferris wheel developed with CSS Animations, @keyframes and advanced transforms. A project that marked a turning point in connecting Figma and code.

Source Code

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ferris Wheel</title>
<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>

The Revolutionary Connection

This project was amazing! Here I connected Figma with code like never before.

As usual I didn't stop at learning what freeCodeCamp taught me, but I deepened many parts. One in particular where I want to focus is animations.

The Animation Deep Dive

With this project I should have only learned linear and ease-in-out, but remembering the names I decided to deepen animations to know all those I learned in Breccia's UI/UX design course, making a complete selection that I'll add to the handbook.

The Figma → CSS Translation Table

IN FIGMA READIN CSS WRITEWHEN
Linearlinear🤖 Mechanical
Easeease😌 Natural
Ease Inease-in🚀 Accelerates
Ease Outease-out🛑 Slows down
Ease In and Outease-in-out🎢 Smooth
Custom Beziercubic-bezier(0.87,0,0.24,0.99)🎭 Your style
Smart Animateanimation: name 300ms ease;🎬 Animate

Immediate Practical Application

It was an important step that will surely be useful in the prototyping phase. Just yesterday I finished the wireframes to complete Google UX course 3 where I used a Smart Animate Custom Bezier with values 0.87, 0, 0.24, 0.99 800ms that gave animations like a rocket that gently brakes.

Today I learned that I can translate it to CSS with:

animation: animationname 800ms cubic-bezier(0.87, 0, 0.24, 0.99);

What I Learned

CSS Animations:

  • @keyframes to define animation sequences
  • animation-name, animation-duration, animation-iteration-count
  • animation-timing-function with all variants
  • transform-origin for custom rotation points

CSS Transforms:

  • rotate() for precise rotations
  • transform-origin for pivot point control
  • nth-of-type() to select specific elements

Figma-CSS Integration:

  • Direct translation from Smart Animate to CSS animation
  • Custom Bezier curves for personalized animations
  • Perfect timing between prototype and implementation

Reflection

This project demonstrated how powerful it is to not stop at minimum requirements. Deepening animations will allow me to prototype in Figma knowing exactly how to implement everything in CSS. It's the perfect union between design and development.


Next Project: Learn CSS Transforms by Building a Penguin