animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to Nice spinny stuff

model output

Gemini 3 Flash Preview

Nice spinny stuff

A 0.92T 0.19
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 Flower Loader</title>
7    <style>
8        body {
9            margin: 0;
10            display: flex;
11            justify-content: center;
12            align-items: center;
13            min-height: 100vh;
14            background-color: #ffffff;
15        }
16
17        .loader {
18            position: relative;
19            width: 100px;
20            height: 100px;
21            /* Positioning relative to the top-left as seen in the video frames */
22            transform: translate(-150px, -150px);
23        }
24
25        .dot {
26            position: absolute;
27            top: 50%;
28            left: 50%;
29            width: 10px;
30            height: 10px;
31            background-color: #f3cbd3; /* Soft pink color from the video */
32            border-radius: 50%;
33            /* Center the dot on its own position */
34            margin-top: -5px;
35            margin-left: -5px;
36            
37            /* Apply common animation properties */
38            animation: pulse 2s ease-in-out infinite;
39        }
40
41        /* Create 8 dots arranged in a circle */
42        .dot:nth-child(1) { --angle: 0deg; }
43        .dot:nth-child(2) { --angle: 45deg; }
44        .dot:nth-child(3) { --angle: 90deg; }
45        .dot:nth-child(4) { --angle: 135deg; }
46        .dot:nth-child(5) { --angle: 180deg; }
47        .dot:nth-child(6) { --angle: 225deg; }
48        .dot:nth-child(7) { --angle: 270deg; }
49        .dot:nth-child(8) { --angle: 315deg; }
50
51        @keyframes pulse {
52            /* 
53               0.0s - 0.5s: Expansion
54               0.5s - 1.0s: Stay expanded
55               1.0s - 1.5s: Contraction
56               1.5s - 2.0s: Stay contracted
57            */
58            0%, 75%, 100% {
59                /* Contracted state: smaller radius and smaller size */
60                transform: rotate(var(--angle)) translate(16px) scale(0.6);
61                opacity: 0.8;
62            }
63            25%, 50% {
64                /* Expanded state: larger radius and full size */
65                transform: rotate(var(--angle)) translate(32px) scale(1);
66                opacity: 1;
67            }
68        }
69    </style>
70</head>
71<body>
72
73    <div class="loader">
74        <div class="dot"></div>
75        <div class="dot"></div>
76        <div class="dot"></div>
77        <div class="dot"></div>
78        <div class="dot"></div>
79        <div class="dot"></div>
80        <div class="dot"></div>
81        <div class="dot"></div>
82    </div>
83
84</body>
85</html>