GitHub Copilot

Verified against GitHub Copilot Chat · 2026-07-29

Turn a UI screenshot into a scoped Copilot Vision task instead of a vague match this request

A Copilot Vision prompt for an attached screenshot — a design mock, a visual bug, a rendered diff against a spec — that forces a specific, checkable read of the image before any code gets proposed from it.

GitHub Copilot Chat (VS Code)5 fillable variables

The prompt

Ready to copy — highlighted parts are example details you can swap.

I am attaching a screenshot. Before proposing any code change, describe back what you actually
see in the image, specifically with respect to The two toggle switches should be visually identical in size — only their label text should differ. — do not skip straight to a
diff based on a general impression of the image.

WHAT THE SCREENSHOT SHOWS
A screenshot of the /pricing page showing the annual-plan toggle switch rendered noticeably smaller than the monthly-plan toggle next to it.

COMPONENT OR FILE THIS SHOULD MAP TO
components/pricing/PlanToggle.tsx

WHAT TO COMPARE SPECIFICALLY
The two toggle switches should be visually identical in size — only their label text should differ.

VIEWPORT OR DEVICE CONTEXT FOR THE SCREENSHOT
Captured at 1440px desktop width in Chrome, not a mobile viewport.

Work in this order:
1. Describe the specific visual detail in the image relevant to The two toggle switches should be visually identical in size — only their label text should differ. — an exact
   spacing, color, alignment, missing element, or wrapped text — in concrete terms a reviewer
   could check against the image themselves, not an impression like 'the spacing looks off.'
2. Read components/pricing/PlanToggle.tsx and state what the current code actually produces for the
   same detail, so the comparison is between two concrete things rather than between the image and
   a memory of what the code probably does.
3. State the specific difference between steps 1 and 2 — the actual delta this change needs to
   close, not a rewrite of the whole component because a full rewrite happened to be easier to
   generate than a scoped fix.
4. Propose the smallest change that closes that specific delta, scoped only to
   The two toggle switches should be visually identical in size — only their label text should differ. — if closing it plausibly requires touching something outside
   components/pricing/PlanToggle.tsx, say so explicitly and why, rather than silently expanding scope
   to make the fix easier.

This is acceptable once both toggles measure the same width and height in the rendered DOM, not just visually similar in a screenshot.

CONSTRAINTS
- If the screenshot is ambiguous about an exact value — a color that could be one of two nearby
  shades, a spacing that could be 8px or 12px depending on how the image was captured or scaled —
  say so and check the actual design tokens or existing CSS values already in
  components/pricing/PlanToggle.tsx or its stylesheet before guessing a number that merely looks
  approximately right in the image.
- Do not infer functionality from the screenshot that a static image cannot actually show, such as
  a hover state, an animation, or a loading state, unless A screenshot of the /pricing page showing the annual-plan toggle switch rendered noticeably smaller than the monthly-plan toggle next to it. states which
  state the image was captured in — a still image of a button says nothing certain about what its
  hover or disabled state looks like, and inventing one is a guess dressed as an observation.

Customize

Optional — swap in your own details for the highlighted parts above.

Why this works

Forcing a description of the image before any code is proposed counters Vision's tendency to jump straight to plausible-looking code from a holistic visual impression of the screenshot rather than a grounded, checkable detail — an image gives the model a different and less precise kind of evidence than a DOM snapshot or a CSS diff would, so recovering precision requires making it state the exact detail in words a reviewer can independently verify against the same screenshot, rather than trusting a code diff generated straight from a general impression to have implicitly gotten that detail right. Requiring a separate read of what the current code actually produces, rather than relying on the model's memory of what the file probably contains, matters because Vision's read of the screenshot and its knowledge of the target file are two genuinely separate sources of information it has to actively reconcile — treating them as automatically consistent skips the step where the actual mismatch, not an assumed one, gets identified. The ambiguous-value and static-image constraints ground the prompt in a real and often-overlooked limitation of a still image as evidence: an image can be ambiguous between two adjacent color values or two plausible spacing numbers depending on how it was captured or compressed, and it categorically cannot show a hover state, an animation, or a loading state unless the screenshot was specifically captured in that state — a naive match this screenshot request gives the model every incentive to fill either kind of gap with a confident-sounding guess dressed as an observation, and this prompt's constraints exist specifically to make it check an authoritative source, the actual design tokens or CSS already in the file, rather than eyeball a number off the image.

What you get back

1. The annual-plan toggle track measures roughly 32px wide versus 44px for the monthly toggle, based on the screenshot. 2. PlanToggle.tsx applies a size prop conditionally, and the annual variant is passed a compact size while the monthly variant is not. 3. The delta is the size prop being set inconsistently between the two toggle instances. 4. Fix: remove the compact-size override on the annual toggle so both use the component's default size.

Verified against

GitHub Copilot Chat Copilot Chat 1.271 (VS Code, image input) · 2026-07-29

Changelog

  • 2026-07-29 Initial publish, verified against Copilot Chat 1.271 (VS Code) Vision image input.

Need this built into your business?

If a prompt isn't enough — custom software, built and maintained for you — that's Scult's day job.

EXPLORE CUSTOM SOFTWARE
Write a .github/copilot-instructions.md file Copilot actually followsA repository-wide custom-instructions file that Copilot loads automatically into every Chat request, code-review pass, coding-agent session, and commit or PR-description generation in this repo, written so each rule holds up standing alone instead of only in the context it was written in.GitHub Copilot Chat (VS Code)GitHub Copilot code review2026-07-20Scope Copilot's instructions to one directory with an applyTo instructions fileA path-scoped .github/instructions/*.instructions.md template using the applyTo frontmatter glob, so a directory-specific rule — a different test framework, a stricter API contract, a legacy pattern that must not spread — applies only where it is actually true instead of polluting the repo-wide instructions file.GitHub Copilot Chat (VS Code)GitHub Copilot coding agent2026-07-21Define a custom Copilot Chat mode instead of re-explaining your workflow every sessionA .github/chatmodes/*.chatmode.md definition — scoped tools, a fixed model, and a narrow system prompt — that turns a repeated review-and-plan style of conversation into a mode you switch into once, instead of a persona you re-describe in the first message every time.GitHub Copilot Chat (VS Code)2026-07-22Turn a prompt you keep retyping into a Copilot prompt file instead of pasting it againA .github/prompts/*.prompt.md reusable prompt file with input placeholders, invoked as a slash command from the Chat input box, so a well-tuned multi-paragraph prompt becomes one command instead of a paste you have to keep re-finding.GitHub Copilot Chat (VS Code)2026-07-22
All GitHub Copilot prompts

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY