Short answer
sRGB is the colour space the web, most software and most cameras assume when nothing else is stated: three primaries shared with HD television, a D65 white point and a tone curve that is close to a 2.2 gamma. It stays the default because it was designed in 1996 to describe the typical monitor of the day, became IEC 61966-2-1 in 1999, and every piece of software that ignores colour profiles is, in effect, behaving as if everything were sRGB.
A colour space needs four things before its numbers mean anything: the chromaticities of its red, green and blue primaries, the chromaticity of white, a transfer function relating stored numbers to light, and some statement of viewing conditions. sRGB takes its primaries directly from ITU-R BT.709, the HD television standard — red at x 0.64, y 0.33; green at 0.30, 0.60; blue at 0.15, 0.06 — and uses D65 (x 0.3127, y 0.3290) as white. The original Hewlett-Packard and Microsoft proposal also described a reference display of 80 cd/m² in a dim room of about 64 lux. That is darker than most people now use their screens, which matters less than it sounds: colour-managed software keeps chromaticities and relative tones, and brightness is left to the viewer.
sRGB stores values that are compressed so that the 256 steps of an 8-bit channel are spread roughly evenly in perceived lightness rather than in physical light. The curve has two parts: a short straight line near black (stored value = 12.92 × linear light, below a linear value of about 0.0031) and, above it, a power of 1/2.4 with an offset. Taken as a whole it behaves like a gamma of about 2.2, which is why people call sRGB 'gamma 2.2'. The straight section exists so the curve can be inverted cleanly in integer arithmetic without an infinitely steep slope at zero. The practical effect of the difference shows up only in the darkest few percent of the range, where a pure 2.2 display renders shadows slightly darker than the sRGB curve intends.
Code value 128 — the numeric half-way point — produces only about 22% of full light output. Averaging RGB numbers is therefore not averaging light; blends and resizes done on encoded values come out too dark.
When the web began, colour values in HTML and images were simply sent to whatever monitor was attached. The sRGB proposal's argument was that most monitors were already close to BT.709 phosphors and a 2.2-ish response, so declaring that as the default would make untagged content mostly right without anyone doing anything. CSS formalised the choice: HEX, rgb(), hsl() and hwb() values, and untagged images, are all defined as sRGB. That is also why sRGB is a safe delivery format for images without an embedded profile — a browser that knows the display converts from sRGB; one that does not sends the numbers through, which is still close on a standard-gamut screen.
sRGB's gamut is small compared with what current phones, laptops and televisions can show and with many real surface colours. Saturated cyan-greens, deep emerald, some oranges and vivid magentas lie outside it, as do many printing inks and fluorescent materials. Photographs that pass through sRGB lose those colours permanently, and CSS written in HEX cannot ask for them. None of this makes sRGB obsolete: it remains the space for anything that must look the same on every screen, for WCAG contrast calculations (whose luminance formula assumes sRGB) and for images that will pass through unmanaged software. Wider spaces are an addition for content that benefits from them, with sRGB as the fallback.
An image file without an embedded ICC profile or colour tag is treated as sRGB by browsers and most viewers, so exporting 'sRGB, profile embedded' is the most predictable choice for general distribution. Two common mistakes break it. Exporting a wide-gamut image (Adobe RGB, Display P3) and stripping the profile to save bytes makes managed viewers read the numbers as sRGB, which desaturates the picture. Converting to sRGB with a clipping intent can flatten saturated gradients into bands. Converting with a perceptual intent from a profile-aware editor, and checking the result against the original on a calibrated screen, avoids both.
| 8-bit code value | sRGB curve (IEC) | Pure power 2.2 | Pure power 2.4 |
|---|---|---|---|
| 0 | 0.0% | 0.0% | 0.0% |
| 10 | 0.3% | 0.1% | 0.0% |
| 50 | 3.2% | 2.8% | 2.0% |
| 100 | 12.7% | 12.8% | 10.6% |
| 128 | 21.6% | 22.0% | 19.1% |
| 188 | 50.3% | 51.1% | 48.1% |
| 255 | 100.0% | 100.0% | 100.0% |
Why: A wide-gamut image lost its embedded profile in export or by a site's image pipeline, so it is now read as sRGB.
Fix: Convert to sRGB before export (or keep the profile), and check whether the upload service strips metadata.
Why: The software averaged sRGB-encoded values instead of linear light.
Fix: Use software or settings that resample in linear light; for CSS gradients, interpolate in oklab rather than legacy sRGB.
Each statement is labelled by kind — established fact, a standard’s requirement, observed market data, a convention, or Colourwise’s own interpretation or analysis — with the strength of the evidence behind it.
StandardStrong evidence
sRGB uses the ITU-R BT.709 primaries (red 0.64, 0.33; green 0.30, 0.60; blue 0.15, 0.06) and a D65 white point, and specifies a reference display luminance of 80 cd/m².
Source: A Standard Default Color Space for the Internet – sRGB (version 1.10); CSS Color Module Level 4; International Electrotechnical Commission (IEC) webstore and catalogue
StandardStrong evidence
The sRGB transfer function is piecewise: a linear segment with slope 12.92 near black and a 1/2.4 power with an offset above it, designed to approximate an overall gamma of about 2.2 while remaining invertible.
Source: A Standard Default Color Space for the Internet – sRGB (version 1.10); CSS Color Module Level 4
StandardStrong evidence
CSS defines legacy colour syntax (HEX, rgb(), hsl(), hwb() and named colours) and untagged images as sRGB.
Source: CSS Color Module Level 4
Colourwise analysisStrong evidence
Under the sRGB curve an 8-bit code value of 128 corresponds to about 22% of full linear light output, not 50%.
Based on: Computed by Colourwise from the published sRGB transfer function; see the table on this page.
Source: CSS Color Module Level 4
Reviewed 29 September 2026. Colourwise summarises its sources in its own words and does not reproduce standards text or proprietary colour data. Spotted an error? Tell us.