animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to Animated Concepts #3

model output

Claude Sonnet 4.6

Animated Concepts #3

A 0.85T 0.22
compare with ground truth →
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>Diamond Animation</title>
7<style>
8  * { margin: 0; padding: 0; box-sizing: border-box; }
9  
10  body {
11    background-color: #2a2a2a;
12    width: 100vw;
13    height: 100vh;
14    display: flex;
15    align-items: center;
16    justify-content: center;
17    overflow: hidden;
18  }
19
20  .container {
21    position: relative;
22    width: 100px;
23    height: 100px;
24    display: flex;
25    align-items: center;
26    justify-content: center;
27  }
28
29  .diamond {
30    position: absolute;
31    background-color: #f07070;
32    transform: rotate(45deg);
33  }
34
35  .center {
36    width: 22px;
37    height: 22px;
38    animation: centerPulse 1.6s ease-in-out infinite;
39  }
40
41  .dot {
42    width: 8px;
43    height: 8px;
44  }
45
46  .top {
47    animation: topMove 1.6s ease-in-out infinite;
48  }
49
50  .bottom {
51    animation: bottomMove 1.6s ease-in-out infinite;
52  }
53
54  .left {
55    animation: leftMove 1.6s ease-in-out infinite;
56  }
57
58  .right {
59    animation: rightMove 1.6s ease-in-out infinite;
60  }
61
62  @keyframes centerPulse {
63    0%   { width: 22px; height: 22px; }
64    50%  { width: 6px; height: 6px; }
65    100% { width: 22px; height: 22px; }
66  }
67
68  @keyframes topMove {
69    0%   { transform: rotate(45deg) translate(0, 0); top: -28px; left: calc(50% - 4px); }
70    50%  { transform: rotate(45deg) translate(0, 0); top: -18px; left: calc(50% - 4px); }
71    100% { transform: rotate(45deg) translate(0, 0); top: -28px; left: calc(50% - 4px); }
72  }
73
74  @keyframes bottomMove {
75    0%   { transform: rotate(45deg) translate(0, 0); bottom: -28px; left: calc(50% - 4px); }
76    50%  { transform: rotate(45deg) translate(0, 0); bottom: -18px; left: calc(50% - 4px); }
77    100% { transform: rotate(45deg) translate(0, 0); bottom: -28px; left: calc(50% - 4px); }
78  }
79
80  @keyframes leftMove {
81    0%   { transform: rotate(45deg) translate(0, 0); left: -28px; top: calc(50% - 4px); }
82    50%  { transform: rotate(45deg) translate(0, 0); left: -18px; top: calc(50% - 4px); }
83    100% { transform: rotate(45deg) translate(0, 0); left: -28px; top: calc(50% - 4px); }
84  }
85
86  @keyframes rightMove {
87    0%   { transform: rotate(45deg) translate(0, 0); right: -28px; top: calc(50% - 4px); }
88    50%  { transform: rotate(45deg) translate(0, 0); right: -18px; top: calc(50% - 4px); }
89    100% { transform: rotate(45deg) translate(0, 0); right: -28px; top: calc(50% - 4px); }
90  }
91</style>
92</head>
93<body>
94  <div class="container">
95    <div class="diamond center"></div>
96    <div class="diamond dot top"></div>
97    <div class="diamond dot bottom"></div>
98    <div class="diamond dot left"></div>
99    <div class="diamond dot right"></div>
100  </div>
101
102  <script>
103    // The animation uses CSS only, but we can verify timing here
104    // All animations are 1.6s ease-in-out infinite
105    // Center diamond pulses large->small->large
106    // Surrounding dots move in->out->in in sync
107  </script>
108</body>
109</html>