Skip to content
PhotoPSD
ColourColour management 2 min read

Why your colours shift: sRGB, Display P3 and embedded profiles

The same hex code can look different on two screens and in two apps. Here is where colour differences actually come from, and the three rules that prevent most of them.

On this page
  1. Numbers need a space
  2. The profile is the contract
  3. Soft proofing is the part browsers cannot do
  4. What this means in practice

A brand orange set to #FF6B35 is not a colour. It is a number, and what that number looks like depends on the colour space it is interpreted in and the display it is shown on. Almost every “the colours look wrong” complaint reduces to one of those two things.

Numbers need a space

RGB values are coordinates inside a space. sRGB and Display P3 share the same encoding shape but describe different physical areas: P3’s red and green primaries sit further out, so #FF6B35 in P3 is a more saturated orange than the same triple in sRGB.

Three practical consequences:

  • An untagged image is assumed to be sRGB by most software. If it was authored in P3 and the profile got stripped, it will look duller than intended.
  • Converting sRGB → P3 is safe (the gamut is bigger). Converting the other way clips colours that fall outside sRGB — those saturated greens and oranges simply cannot survive.
  • Screenshots are the usual victim: macOS captures in the display’s profile, Windows tools often write nothing, and the two files then differ.

The profile is the contract

A colour profile is the mapping from numbers to physical colours. ICC profiles do this for print and for wide-gamut displays; in web work the embedded profile is usually just sRGB or Display P3.

Rules that prevent most incidents:

  1. Keep the profile attached. Export PNG or JPEG with the profile embedded; browsers and design tools then render the same numbers the same way.
  2. Convert deliberately, once. Convert at the end, when you know the destination. Repeated convert → edit → convert cycles accumulate rounding and clipping.
  3. Do not “fix” colour by eye on an uncalibrated screen. Match numbers and profiles first; only then judge.

Soft proofing is the part browsers cannot do

Converting to CMYK for print is not symmetric with RGB: the gamut is smaller, black generation differs, and what you see on screen is an approximation produced by a soft-proof simulation. A browser editor does not do soft proofing, and no amount of web tooling makes it a print preflight tool.

If the deliverable is a printed piece, keep the colour-critical work in a colour-managed desktop application. If the deliverable is a screen — a website, an app, a slide — sRGB is still the safest common denominator, and Display P3 is worth it only when you control both ends of the chain.

What this means in practice

For screen delivery, the boring workflow wins nearly every time:

  • Work in sRGB, 8 bits per channel, unless you have a specific reason not to.
  • Export with the profile embedded, not stripped.
  • Check the result in a browser and on a phone; if they disagree with your desktop app, suspect the profile, not the file.
  • When someone sends a PSD, look at the document’s colour profile before you judge the colours.

The PhotoPSD editor shows the working profile in the new-document dialog and in the document properties, so you can confirm what space you are actually editing in before you spend an hour on a colour you cannot reproduce. For delivery sizes and formats, the web export guide covers the rest.

Skip the download and try it now

Open a layered PSD, edit it, export a PNG — nothing is uploaded.

Open the editor

Related reading