Skip to content

Commit 4eadb18

Browse files
andresdjassoclaude
andcommitted
fix(loader): orbit shows both squares again
The orbit pattern's two blobs are meant to chase each other around a square track (the second offset by a half-loop). It used `animation-delay: -1s` for the offset, but the shared wall-clock phase lock (`.frame.frame *` sets animation-delay on every element) is higher-specificity and clobbered it — so both blobs ran in lockstep, stacked exactly, and one disappeared. The second blob now gets its own 50%-shifted keyframes (orbit-b, opposite corner) instead of a delay — the same technique metaballs uses — so the phase lock no longer hides it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent c1485de commit 4eadb18

1 file changed

Lines changed: 24 additions & 4 deletions

File tree

apps/sim/components/emcn/components/thinking-loader/thinking-loader.module.css

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,16 @@
121121
}
122122
}
123123

124-
/* orbit — two blobs chase each other around a square track */
125-
.orbitA,
126-
.orbitB {
124+
/* orbit — two blobs chase each other around a square track. The second blob
125+
is the track offset by 50% (opposite corner) via its OWN keyframes, not an
126+
animation-delay: the shared wall-clock phase lock (.frame.frame *) forces
127+
one delay on every element, which would otherwise stack both blobs and hide
128+
one. */
129+
.orbitA {
127130
animation: orbit 2s infinite;
128131
}
129132
.orbitB {
130-
animation-delay: -1s;
133+
animation: orbit-b 2s infinite;
131134
}
132135
@keyframes orbit {
133136
0% {
@@ -146,6 +149,23 @@
146149
transform: translate(0, 0);
147150
}
148151
}
152+
@keyframes orbit-b {
153+
0% {
154+
transform: translate(40px, 40px);
155+
}
156+
25% {
157+
transform: translate(0, 40px);
158+
}
159+
50% {
160+
transform: translate(0, 0);
161+
}
162+
75% {
163+
transform: translate(40px, 0);
164+
}
165+
100% {
166+
transform: translate(40px, 40px);
167+
}
168+
}
149169

150170
/* relay — a ball stretches between two goal posts */
151171
.relayBall {

0 commit comments

Comments
 (0)