Sepia converter — the sepia tone of any colour, at any strength

Enter a colour and a sepia amount to get the warm, old-photo version of that colour as HEX and RGB, worked out with the same matrix the CSS sepia() filter is defined by.

Live demo · real result from this tool
Sepia#aa9776
RGB
rgb(170, 151, 118)

Colours

CSS

/* Same matrix as the browser's filter, for whole elements: */filter: sepia(100%);

Processed on your device — nothing is uploaded.

How to use the sepia converter

  1. Enter the Colour as HEX, rgb(), hsl(), a CSS name or with the picker.
  2. Set the Sepia amount from 0% (no change) to 100% (full sepia).
  3. Read the Sepia HEX and RGB values and compare the two swatches.
  4. Copy the CSS line if you want the browser to apply the same effect to a whole element, such as a photo.

What it does and when to use it

Sepia gives colours the warm brown cast of old photographs. Designers use it for vintage themes, historical timelines, “archive” sections and hover effects that tint images. When a page applies filter: sepia() to a photo, the text, borders and backgrounds around it often need matching flat colours. This tool gives you those colours exactly, so the frame matches the filtered image.

It also helps you predict what the filter will do to a brand colour before you apply it. For a neutral grey instead of a warm tone, use the grayscale converter. To shift a colour warmer by hand, try the HSL adjuster or pick a warm light colour with the colour temperature tool.

How it works

The Filter Effects specification defines sepia(1) as this matrix on the red, green and blue channels (0 to 1, gamma-encoded):

Output × R × G × B
R′ 0.393 0.769 0.189
G′ 0.349 0.686 0.168
B′ 0.272 0.534 0.131

For a partial amount, each value is moved from the identity matrix toward these numbers in proportion to the amount. Results above 1 are clipped, which is why bright colours land on cream. Transparency is not changed.

Worked examples

These are the converter’s own outputs.

White at 100%. Sepia: #ffffef, rgb(255, 255, 239). Red and green clip at 255; blue is 0.937 × 255.

Blue #3b82f6 at 100%. Sepia: #aa9776, rgb(170, 151, 118), a mid tan. The bright blue becomes a brown of similar brightness.

Blue #3b82f6 at 50%. Sepia: #728db6, a faded, greyish blue halfway to the full effect.

Black at 100%. Stays #000000.

Limits and tips

  • Sepia removes most of the original hue, so very different colours can end up as similar browns. Check that important pairs still contrast.
  • For photos, use the CSS filter or an image editor; this tool converts single colours.
  • The conversion runs in your browser.

Frequently asked questions

What colour is "sepia"?
There is no single sepia HEX code. Sepia is a brownish tone named after the ink once used to tint photographs. The CSS sepia filter maps every colour onto a warm brown-to-cream scale, so each input gets its own sepia shade.
Why does white become cream rather than staying white?
The blue row of the sepia matrix only adds up to 0.937 for white, so blue drops from 255 to 239 while red and green stay at 255. That gives
What does a 50% amount do?
It uses a matrix halfway between no change and full sepia, the same way the CSS sepia(50%) filter is defined. For blue
Is the result the same as applying filter sepia() in the browser?
It uses the matrix the Filter Effects specification gives for sepia(). Browsers apply that matrix to every pixel of an element, so a flat colour should come out the same or within a step of rounding.
Does black change?
No. Every term in the matrix multiplies a channel, so black (all zeros) stays

Sources

  1. Filter Effects Module Level 1 — sepia() equivalent matrix — W3C, accessed 2026-10-08

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close