← back to Wavy Loading Animationscompare with ground truth →
model output
Gemini 3 Flash Preview
Wavy Loading Animations
A 0.77T 0.17
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>Loading Animation Recreation</title>
7 <style>
8 /* Global Styles */
9 body {
10 margin: 0;
11 padding: 0;
12 display: flex;
13 justify-content: center;
14 align-items: center;
15 min-height: 100vh;
16 background-color: #eeeeee; /* Light gray background matching the video */
17 overflow: hidden;
18 }
19
20 /* Container for the loader dots */
21 .loader {
22 display: flex;
23 gap: 2px; /* Small spacing between squares */
24 /* Positioning slightly towards the top as seen in the video frames */
25 transform: translateY(-40vh);
26 }
27
28 /* Individual square styling */
29 .dot {
30 width: 4px;
31 height: 4px;
32 background-color: #333333; /* Dark gray color of the active dots */
33 opacity: 0.15; /* Base opacity for "inactive" dots */
34 animation: pulse 1.2s infinite ease-in-out;
35 }
36
37 /* Staggered animation delays to create the "wave" or "scanner" effect */
38 .dot:nth-child(1) { animation-delay: 0.0s; }
39 .dot:nth-child(2) { animation-delay: 0.1s; }
40 .dot:nth-child(3) { animation-delay: 0.2s; }
41 .dot:nth-child(4) { animation-delay: 0.3s; }
42 .dot:nth-child(5) { animation-delay: 0.4s; }
43 .dot:nth-child(6) { animation-delay: 0.5s; }
44 .dot:nth-child(7) { animation-delay: 0.6s; }
45 .dot:nth-child(8) { animation-delay: 0.7s; }
46
47 /* Animation Keyframes
48 Creates a "moving block" effect by keeping opacity high for a portion
49 of the cycle and slightly scaling the square.
50 */
51 @keyframes pulse {
52 0%, 100% {
53 opacity: 0.15;
54 transform: scale(0.9);
55 }
56 30%, 60% {
57 opacity: 1;
58 transform: scale(1.1);
59 }
60 }
61 </style>
62</head>
63<body>
64
65 <!-- 8 dots as identified in the animation sequence -->
66 <div class="loader">
67 <div class="dot"></div>
68 <div class="dot"></div>
69 <div class="dot"></div>
70 <div class="dot"></div>
71 <div class="dot"></div>
72 <div class="dot"></div>
73 <div class="dot"></div>
74 <div class="dot"></div>
75 </div>
76
77</body>
78</html>