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

model output

GPT-5.4

Animated Concepts #3

A 0.95T 0.21
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 Pulse Loader</title>
7<style>
8  :root{
9    --bg:#1f1f1f;
10    --dot:#ff7f79;
11    --cycle:1.2s;
12  }
13
14  html,body{
15    margin:0;
16    width:100%;
17    height:100%;
18    background:var(--bg);
19    overflow:hidden;
20  }
21
22  body{
23    display:grid;
24    place-items:center;
25    font-family:sans-serif;
26  }
27
28  .loader{
29    position:relative;
30    width:84px;
31    height:84px;
32  }
33
34  .diamond{
35    position:absolute;
36    left:50%;
37    top:50%;
38    background:var(--dot);
39    transform:translate(-50%,-50%) rotate(45deg);
40    border-radius:2px;
41    box-shadow:0 0 0 0.5px rgba(255,160,150,.15);
42  }
43
44  .center{
45    width:28px;
46    height:28px;
47    animation:centerPulse var(--cycle) ease-in-out infinite;
48  }
49
50  .small{
51    width:10px;
52    height:10px;
53    animation:outerPulse var(--cycle) ease-in-out infinite;
54  }
55
56  .top{    transform:translate(-50%,-50%) translateY(-42px) rotate(45deg); }
57  .right{  transform:translate(-50%,-50%) translateX(42px) rotate(45deg); }
58  .bottom{ transform:translate(-50%,-50%) translateY(42px) rotate(45deg); }
59  .left{   transform:translate(-50%,-50%) translateX(-42px) rotate(45deg); }
60
61  .top,.right,.bottom,.left{
62    animation-name:outerPulse;
63    animation-duration:var(--cycle);
64    animation-timing-function:ease-in-out;
65    animation-iteration-count:infinite;
66  }
67
68  @keyframes centerPulse{
69    0%, 18%, 100%{
70      width:10px;
71      height:10px;
72      opacity:1;
73    }
74    42%, 58%{
75      width:28px;
76      height:28px;
77      opacity:1;
78    }
79    82%{
80      width:10px;
81      height:10px;
82      opacity:1;
83    }
84  }
85
86  @keyframes outerPulse{
87    0%, 18%, 100%{
88      width:10px;
89      height:10px;
90      opacity:1;
91    }
92    42%, 58%{
93      width:10px;
94      height:10px;
95      opacity:1;
96    }
97    82%{
98      width:10px;
99      height:10px;
100      opacity:1;
101    }
102  }
103
104  /* subtle frame-like breathing to better match the sampled sequence */
105  .loader{
106    animation:microShift var(--cycle) ease-in-out infinite;
107  }
108
109  @keyframes microShift{
110    0%,100%{ transform:translateY(0); }
111    50%{ transform:translateY(-1px); }
112  }
113</style>
114</head>
115<body>
116  <div class="loader" aria-label="loading animation">
117    <div class="diamond center"></div>
118    <div class="diamond small top"></div>
119    <div class="diamond small right"></div>
120    <div class="diamond small bottom"></div>
121    <div class="diamond small left"></div>
122  </div>
123</body>
124</html>