Guides

    Why Colors Shift Between Screen and Export

    A brand red gets approved on screen, then ships looking orange somewhere else. The color pipeline broke between generation and export — here's exactly where.

    Versely Team8 min read

    A brand red gets approved. Everyone signs off, the hex code gets recorded, it looks exactly right on the screen it was approved on. Then it ships, and it looks orange on one device, muddy on another, and slightly different again once it's printed. Nobody generated the image wrong. The color pipeline broke somewhere between generation and wherever it was finally viewed — and it's a gap almost nobody explains, because the failure is invisible at every individual step.

    Your screen already shows you more than the file guarantees

    Virtually every modern laptop and phone screen is a wide-gamut display capable of showing Display P3, a color space that's measurably larger than sRGB, the space most web and marketplace files are actually authored and consumed in. Display P3 pairs the DCI-P3 color gamut with a D65 white point and the same gamma curve sRGB uses — and per WebKit's own engineering writeup on adding it to the web platform, it's "around 50% larger" than sRGB. That's not a defect in your monitor. It's the entire reason wide-gamut displays got built — to show more vivid reds, greens, and cyans than sRGB can represent at all.

    Here's the trap: if you're evaluating a generated brand asset on a P3-capable screen — which is most screens now — you're seeing more color than the file may actually be able to reproduce everywhere it eventually gets viewed. A red that looks perfect and saturated on your laptop can be a red your file's actual color space can't fully deliver once it's rendered somewhere that clamps to sRGB. Some of the "vivid" you approved was your own screen's extra headroom, not a property of the file itself.

    The gap is detectable — most platforms just don't bother

    The web platform actually has a formal mechanism for this. The color-gamut CSS media feature lets a site check whether a visiting screen supports sRGB, the larger P3 gamut, or the even larger Rec.2020, and MDN documents the relationship explicitly as a hierarchy: sRGB is contained within P3, which is contained within Rec.2020. The tooling to adapt per-viewer exists. Most consumer platforms don't use it. They pick one target space — almost always sRGB, because it's the lowest common denominator every device renders predictably — and convert everything to it on the way in, whether or not that matches what you actually authored.

    Where the brand red actually breaks

    Trace an asset through a normal AI production pipeline and the failure point becomes obvious in retrospect:

    1. Generation. Most AI image output lands in sRGB by convention, but not universally — reference photos shot on wide-gamut-native devices, certain export paths, and some editing round-trips carry an embedded P3 or Adobe RGB profile instead, often without anyone choosing that on purpose.
    2. Review, on a P3 screen. The asset gets approved looking accurate — even great — regardless of which profile the file is actually tagged with, because the screen renders with extra headroom either way. This step tells you nothing about how the file will look anywhere else.
    3. Export and upload. The destination platform typically assumes or force-converts to sRGB. Etsy is explicit about this in its own seller documentation, instructing sellers to convert images to sRGB before uploading so the colors customers see match what the seller intended — because Etsy displays images in the sRGB profile, and a file left in a wide-gamut profile, or tagged CMYK for print instead of screen, can dull, shift, or misrender on the way in.
    4. Result. The same hex value ships different depending on which step in that chain converted the color space correctly, converted it incorrectly, or never converted it at all — and because each step looked fine in isolation on a wide-gamut screen, the mismatch is invisible until the asset is already live somewhere you don't control.

    The fix is one explicit step, not a new tool

    Don't trust "it looks right on my screen" as ground truth — your screen is very likely P3-capable, and it's adding headroom you can't assume the next viewer has. Before an asset ships anywhere, check or explicitly assign its embedded color profile — most editing tools expose this under an "assign" or "convert profile" menu — and convert deliberately to whatever the destination actually uses: sRGB for the overwhelming majority of web and marketplace destinations, a print-specific profile only when a print vendor names one by request. Treat the hex code as the source of truth rather than the on-screen appearance. The hex is profile-agnostic; the appearance never is.

    "Assign" and "convert" are not the same button

    The single most common way this goes wrong isn't ignorance of color profiles — it's confusing two operations that sound similar and do opposite things. Assigning a profile tells the file "interpret these existing numbers as belonging to this color space" — the pixel values don't change, only how they're read changes, and if the file was actually authored in a different space, assigning the wrong one shifts the apparent color without touching a single value. Converting a profile tells the file "translate these numbers so the same visible color is preserved in a new space" — the pixel values themselves change, deliberately, so the result looks the same as it did before, just expressed in different numbers.

    The failure mode is assigning when you meant to convert, or vice versa. A file authored in a wide gamut, incorrectly assigned sRGB instead of converted to it, keeps its original numbers but gets reinterpreted — colors shift, often toward looking flatter or more muted than intended, without any pixel actually changing. The fix isn't a different tool. It's checking which operation a color-management menu is actually offering before clicking it, since both options are usually one click apart and produce very different results from the same starting file.

    A Versely walkthrough

    Versely's brand kit stores a brand color as an exact hex value and auto-applies it to future generations — "Our brand color is #FF5733, remember that" is enough to set it, using Versely's set-my-brand-kit capability. That locks the intended value with total precision; a hex code carries no ambiguity. What it can't do is guarantee that precision survives every export step downstream, which is exactly the gap this piece is about — once an asset leaves Versely for a print vendor, a marketplace listing, or a platform's own re-encoding pipeline, the receiving destination's own color handling takes over.

    The practical habit: after locking a hex in the brand kit once, spot-check a freshly generated asset against that hex on a genuinely converted or non-wide-gamut view before the first send to a new destination — not just the first look on your own laptop screen. This applies across Versely's model catalog generally, since it's a pipeline issue that sits downstream of any specific model rather than something one generator does differently from another. And once a color is locked, pair it with matched type from Versely's font library — a brand kit with an exact color and the wrong typeface is still only half the system travelling intact.

    The color was never wrong. It just never got asked to survive the trip.

    FAQ

    How do I know if my screen is P3 or sRGB?

    Most laptop and phone screens sold in the last several years are P3-capable by default — treat "my screen is probably wide-gamut" as the safe assumption rather than something to verify case by case. The color-gamut media feature is what a website or app would use to check programmatically, but for a manual color-approval workflow, the safer habit is simply not trusting on-screen appearance alone for anything brand-critical.

    Does this matter for video as well as images?

    The same underlying issue — a wide gamut on the reviewing screen versus a narrower one on the delivery platform — applies to video too, though the specific color pipeline differs by format and platform. The practical guidance holds either way: check what color space the destination actually expects, and don't let a wide-gamut preview stand in for a converted final check.

    Is this only a problem for exact brand colors?

    It's most visible on brand colors because those get checked against a specific hex value and any drift is obvious. The same shift happens across an entire image — it's just harder to notice on a photo where there's no single reference value to compare against.