animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to Such Spinners, Much Loading

model output

Gemini 3 Flash Preview

Such Spinners, Much Loading

A 0.84T 0.29
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>Pulsing Dot Animation</title>
7    <style>
8        /* Base reset to center the content perfectly in the viewport */
9        body, html {
10            margin: 0;
11            padding: 0;
12            width: 100%;
13            height: 100%;
14            display: flex;
15            justify-content: center;
16            align-items: center;
17            background-color: #ffffff;
18            overflow: hidden;
19        }
20
21        /* The main circle container */
22        .circle {
23            width: 32px;
24            height: 32px;
25            background-color: #3c3c3c;
26            border-radius: 50%;
27            position: relative;
28            display: flex;
29            justify-content: center;
30            align-items: center;
31            /* Animation timing matches the 1-second loop observed (0s to 1s) */
32            animation: pulse 1s ease-in-out infinite;
33        }
34
35        /* The subtle crosshair/plus sign visible in the center during the 'small' phase */
36        .circle::before, .circle::after {
37            content: '';
38            position: absolute;
39            background-color: #ffffff;
40            opacity: 0.2; /* Subtle visibility as seen in frames 0s and 1s */
41            transition: opacity 0.5s ease-in-out;
42            animation: cross-fade 1s ease-in-out infinite;
43        }
44
45        /* Vertical bar of the plus sign */
46        .circle::before {
47            width: 2px;
48            height: 6px;
49        }
50
51        /* Horizontal bar of the plus sign */
52        .circle::after {
53            width: 6px;
54            height: 2px;
55        }
56
57        /* Main pulse animation: scales from ~1.0 to ~1.2 and back */
58        @keyframes pulse {
59            0%, 100% {
60                transform: scale(1);
61            }
62            50% {
63                transform: scale(1.15);
64            }
65        }
66
67        /* Fade the inner cross out when the circle expands, as seen in frame 0.5s */
68        @keyframes cross-fade {
69            0%, 100% {
70                opacity: 0.3;
71            }
72            50% {
73                opacity: 0;
74            }
75        }
76    </style>
77</head>
78<body>
79
80    <!-- Simple div representing the pulsing dot -->
81    <div class="circle"></div>
82
83</body>
84</html>