animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to Staggered Stair Loading

model output

Claude Sonnet 4.6

Staggered Stair Loading

A 0.84T 0.29
compare with ground truth →
1Looking at the animation frames, I can see:
2
31. A "LOADING" text where each letter is on a dark tile/card
42. The tiles animate with a wave-like up-down motion (each letter bounces up then down sequentially)
53. There's a light blue/white shadow/reflection below each tile that also moves
64. The animation creates a cascading wave effect from left to right, then repeats
7
8<!DOCTYPE html>
9<html lang="en">
10<head>
11<meta charset="UTF-8">
12<meta name="viewport" content="width=device-width, initial-scale=1.0">
13<title>Loading Animation</title>
14<style>
15  * { margin: 0; padding: 0; box-sizing: border-box; }
16  
17  body {
18    background-color: #2e86b5;
19    display: flex;
20    justify-content: center;
21    align-items: center;
22    height: 100vh;
23    font-family: 'Segoe UI', Arial, sans-serif;
24  }
25
26  .loading-container {
27    display: flex;
28    align-items: center;
29    position: relative;
30  }
31
32  .tile {
33    background-color: #344a5e;
34    color: #ffffff;
35    font-size: 22px;
36    font-weight: 300;
37    letter-spacing: 2px;
38    width: 72px;
39    height: 72px;
40    display: flex;
41    align-items: center;
42    justify-content: center;
43    position: relative;
44    animation: tileWave 1.4s ease-in-out infinite;
45  }
46
47  .tile::after {
48    content: '';
49    position: absolute;
50    bottom: -10px;
51    left: 0;
52    width: 100%;
53    height: 8px;
54    background-color: rgba(180, 210, 230, 0.7);
55    animation: shadowWave 1.4s ease-in-out infinite;
56  }
57
58  @keyframes tileWave {
59    0%, 100% { transform: translateY(0); }
60    30% { transform: translateY(-20px); }
61    60% { transform: translateY(0); }
62  }
63
64  @keyframes shadowWave {
65    0%, 100% { transform: translateY(0); opacity: 0.7; }
66    30% { transform: translateY(-20px); opacity: 0.5; }
67    60% { transform: translateY(0); opacity: 0.7; }
68  }
69
70  .tile:nth-child(1) { animation-delay: 0s; }
71  .tile:nth-child(1)::after { animation-delay: 0s; }
72
73  .tile:nth-child(2) { animation-delay: 0.1s; }
74  .tile:nth-child(2)::after { animation-delay: 0.1s; }
75
76  .tile:nth-child(3) { animation-delay: 0.2s; }
77  .tile:nth-child(3)::after { animation-delay: 0.2s; }
78
79  .tile:nth-child(4) { animation-delay: 0.3s; }
80  .tile:nth-child(4)::after { animation-delay: 0.3s; }
81
82  .tile:nth-child(5) { animation-delay: 0.4s; }
83  .tile:nth-child(5)::after { animation-delay: 0.4s; }
84
85  .tile:nth-child(6) { animation-delay: 0.5s; }
86  .tile:nth-child(6)::after { animation-delay: 0.5s; }
87
88  .tile:nth-child(7) { animation-delay: 0.6s; }
89  .tile:nth-child(7)::after { animation-delay: 0.6s; }
90</style>
91</head>
92<body>
93  <div class="loading-container">
94    <div class="tile">L</div>
95    <div class="tile">O</div>
96    <div class="tile">A</div>
97    <div class="tile">D</div>
98    <div class="tile">I</div>
99    <div class="tile">N</div>
100    <div class="tile">G</div>
101  </div>
102</body>
103</html>