PTENES
MODULE 5.4

🚧 Loop limits

Module 5.3 gave you the screenshot loop as the main mechanism for visual quality. This module is a dose of honesty: the loop has a clear boundary, and knowing where it is separates those who trust too much from those who use the right tool at the right time.

6
Topics
25
Minutes
Intermediate
Level
Practical
Type
0 of 60%
1

📸 A still photo doesn’t show the dance

New here? One screenshot is a still photo of the screen at an exact moment—frozen pixel by pixel. It’s the basis of the loop you learned in module 5.3: the agent takes the photo, compares it with what should be there, and adjusts the CSS until they match.

Imagine asking someone to judge whether a dance looked good by comparing two photos: one from the start of the movement, and another from the end. You’ll see the two arm positions — but you won’t see the trajectory, the speed, whether the motion was smooth or choppy, and whether the timing matched the music. That’s exactly the limitation of the screenshot loop: it shows states, never the transitions between them.

Photo 1 (start) button closed Photo 2 (end) button open what the loop sees: nothing here Real motion: speed, easing, timing, smoothness all of this happens BETWEEN the two photos—and the screenshot doesn't capture it

Caption: the two photos (beginning and end) are all the screenshot loop can see. Everything that happens between them — the motion curve — remains invisible to an image comparison.

💡 Main Concept

The screenshot loop is excellent for comparing states. It can't see transitions.

  • •Layout, color, spacing, alignment — all of these are state. The loop gets it right.
  • •A smooth 300ms transition between two states — that's motion. The loop can't see it.
2

✅ What the loop handles well

Before talking about what’s missing, let’s reinforce where the loop works well—because the lesson in this module isn’t “don’t trust the loop,” it’s “know where it stops.” Everything that is static visual state (the appearance of the screen at a single frozen moment, without considering what came before or after) the loop compares pixel by pixel.

✓ The loop catches it

  • ✓Incorrect spacing, misaligned element, broken margin
  • ✓Color outside the palette, insufficient contrast
  • ✓Clipped text, overflow, poor line breaks
  • ✓Layout broken on mobile vs. desktop
  • ✓One element overlapping another, incorrect z-index

✗ The loop loses

  • ✗If a hover transition is smooth or choppy
  • ✗Whether the timing of an entrance animation “fits” the content
  • ✗If a background parallax effect creates a real sense of depth
  • ✗Whether an animated gradient flows smoothly or stutters (jank)
  • ✗If the interface’s overall “feel” seems expensive or cheap

🔍 Inside

A practical rule: if the difference between “right” and “wrong” shows up in a still photo, the loop can handle it on its own. If the difference only shows up live, as time passes, the loop needs help.

3

🎬 The two blind spots: animation and moving backgrounds

New here? CSS animation is a gradual change in a visual property (position, color, size) over time, controlled by the browser. Hover is an element's state when the mouse passes over it — usually triggering a transition. Parallax it’s the technique of moving background layers at different speeds from the scrolling, creating a sense of depth.

There are two families of things that escape the loop:

1

Animation—transition, hover, entrance effect

The agent takes two screenshots (before and after hover, for example), and both look right on their own. But the easing (the acceleration/deceleration curve of the movement — "smooth at the beginning, fast in the middle" is different from "linear the whole time") may be wrong, and no screenshot can show that.

2

Animated background — parallax, particles, video, animated gradient

Same limitation, larger scale: a still photo of the background never shows fluidity or whether the motion is steady or stutters (the jank — visual stuttering when the browser can't render frames in time).

actual trajectory (the easing)—invisible to the loop photo 1 (the medium is never photographed) photo 2

Caption: the moving dot (pulsing cyan point) follows a smooth curve — but the two cameras capture only the beginning and the end. The “middle” of the motion, where the easing happens, never becomes an image.

💡 Practical Tip

If the agent says, “I compared the screenshots before and after hover, and everything looks right,” ask specifically about how smooth the transition is. They’re quite likely right about the final state without having checked anything about how it gets there.

4

🔬 Why this happens — the technical root cause

It’s not a lack of effort from the agent—it’s a tool limitation. The automated screenshot captures the screen at a single instant (a frame, a still frame). To actually “see” motion, you’d need to capture a sequence of frames over time and then interpret the differences between them — much more expensive, slower, and still harder to judge as “good-looking” or “ugly” than comparing two images.

Step 1 — the agent writes the CSS for an animation

It defines the `transition` or `@keyframes` based on what it read in the design or what you asked it to do.

Step 2 — take a screenshot of the initial state

This is reliable and quick to compare.

Step 3 — trigger the effect and take another screenshot

Again, one moment — at the end of the transition, or at an arbitrary point in the middle of it.

Step 4 — compare the two photos and "approve"

Here’s the risk: both screenshots match what you expected, but no one checked what happened between them—whether it froze, moved too quickly, or whether the timing fit with the rest of the page.

⚠️ Attention

The agent may genuinely “think” everything is fine—it’s not bad faith; the tool it has can only see states. That’s why you need to know about this limitation, not just have the agent fix it.

5

🛠️ Build: working directly in the code when the loop fails

When the piece is about movement, the solution isn't to insist on more screenshots — it's to change methods: ask the agent (1) to read the exact CSS values that control the movement (duration, easing, delay), (2) to explain what each value does in simple terms, and (3) to open the actual browser so you can watch the movement happen live, instead of relying only on automatic image comparison.

prompt — adjust animation by looking at the code, not just the screenshot copy and paste
Preciso que você ajuste a animação do botão ""
no arquivo .

Antes de mexer, faça isto:
1. Leia o CSS atual da transição/animação desse elemento e me diga, em português simples,
   qual é a duração, o easing e o delay usados hoje.
2. Não confie só em screenshot pra validar o resultado. Depois de editar, abra o navegador
   de verdade (ou peça pra eu abrir) e descreva o que observou no movimento ao vivo:
   ficou suave? ficou rápido demais? travou (jank) em algum ponto?
3. Só then ajuste o valor - o objetivo é .

Ao final, me diga exatamente qual linha de CSS mudou e por quê.
Objective

Force the agent to inspect the actual CSS values and watch the animation live, not just compare images.

The block

The prompt above, adapting the element, file, and desired result inside the brackets.

How to verify

Open the page in a browser yourself and hover over it or trigger the effect. If it looks right to you, it’s right—that judgment can’t be delegated.

🔍 Inside

  • Duration: how long the movement takes (e.g., `transition: all 300ms`)—too fast feels like a “jump,” too slow feels “heavy.”
  • Easing: the movement’s speed curve (`ease-in-out`, `ease-out`, `linear`) — it’s what makes it feel “natural” or “robotic.”
  • Delay: how long to wait before starting—useful for chaining several animations in sequence.
6

📊 The missing 40% — where your judgment comes in

Let’s end with the number that will follow you through the rest of this learning path: the screenshot loop takes a front end from generic a solid — something like the first 60% of the way to “professional.” The last 40%—motion, timing, “feel,” the difference between looking like an expensive product and looking like a template—still depends on someone looking at the screen and making decisions. That boundary isn’t a flaw in the loop; it’s where AI’s work on its own ends and human judgment begins.

Generic → Solid → Professional Screenshot loop — 60% Your live eye — 40% layout · color · spacing · responsive motion · timing · "feel" · animated background modules 5.5 to 5.8 continue to explore this boundary

Caption: the bar shows the 60% the automated loop handles well (visual state) and the final 40%, where motion and timing require someone to actually look at the screen.

🎯 Main Concept

  • •The loop isn’t replaced — it keeps doing the 60% faster than you could by hand.
  • •The final 40% is where you step in: opening the browser, watching things move, deciding whether “it looks good.”

Quick check (optional): Why doesn’t the screenshot loop capture a poorly tuned hover transition well?

✏️ Exercise

Pick any button or card with a hover effect that the agent has already adjusted using the screenshot loop (module 5.3). Open the page in a browser, move your mouse slowly over it, and watch the motion live for 10 seconds.

  • 1.Does the movement look smooth, or is there a noticeable “jump”?
  • 2.If you don’t like it, use the prompt from topic 5 to ask the agent to read the CSS values and adjust them by inspecting the code, not just by comparing screenshots.
  • 3.Repeat the live test after the adjustment—that’s the only way to close the loop here.

Detailed content

⚠️ Common error: trusting the loop too much

The most common mistake at this stage of the learning path is thinking the screenshot loop is 100% automatic and covers everything—including motion. It doesn’t. An agent might approve a broken animation because the two screenshots being compared (before and after) match exactly what was expected, even if the motion between them is terrible.

  • ✗"The agent said everything is fine, so I don't need to check" — wrong when it involves movement.
  • ✗Ask for more screenshots of the same hover effect, expecting the problem to “appear”—it won’t; that’s a method limitation, not a quantity issue.
  • ✗Ignore your own visual feedback because “the agent already validated it” — human judgment is not optional here.

✓ Checklist before approving an animation

  • ☐I opened the page in an actual browser; I didn’t just look at the screenshot.
  • ☐I watched the process happen live, from beginning to end.
  • ☐I asked the agent to read and explain the duration/easing/delay of the CSS involved.
  • ☐If there was an animated background (parallax, particles, gradient), I tested it by scrolling and interacting, not just by looking at it while still.
  • ☐I decided whether the "feel" was right using my own judgment — I didn't outsource that decision to the loop.

✅ Module Summary

✓
A screenshot captures a state, not motion: a still photo doesn’t capture transitions, timing, or smoothness.
✓
Two blind spots: animation (hover, transitions, entrances) and a moving background (parallax, video, animated gradient).
✓
The output: ask the agent to read the code directly and test it live in the browser, rather than relying only on screenshots.
✓
The remaining 40%: the loop takes you from generic to solid; the rest depends on your judgment as you look at the actual screen.

Next module:

5.5 — Visual reference and rebranding