Testing

CSS color-adjust: Browser Support, Values, Issues

CSS color-adjust (now print-color-adjust) works in Chrome 19+, Edge 79+, Firefox 48+, Safari 6+, Opera 15+, and on iOS Safari 15.4+. See values and issues.

Author

Prince Dewani

May 6, 2026

The CSS color-adjust property, renamed to print-color-adjust in the CSS Color Adjustment Module, tells browsers whether to keep an element's declared colors on printed output or swap them for ink-saving versions. It works in Chrome 19+, Edge 79+, Firefox 48+, Safari 6+ on macOS, iOS 15.4+, Opera 15+, and Opera Mobile 80+; Internet Explorer never shipped support.

This guide covers what color-adjust is, browsers that support it, the economy and exact values, how it differs from forced-color-adjust, and known issues.

What is CSS color-adjust?

CSS color-adjust, now standardized as print-color-adjust in the CSS Color Adjustment Module Level 1, is a property that controls whether the browser may swap an element's declared backgrounds, images, and colors when sending the page to a printer. It accepts two keywords: economy and exact.

Which browsers does CSS color-adjust support?

Every major desktop and mobile engine supports color-adjust today, though Chrome and Safari still need the -webkit-print-color-adjust prefix on older builds and Internet Explorer never added the property at all.

Loading browser compatibility data...

color-adjust compatibility in Chrome

Chrome supports color-adjust from Chrome 19 on Windows, macOS, Linux, ChromeOS, and Android through the prefixed -webkit-print-color-adjust form. The unprefixed print-color-adjust alias works from Chrome 92 on every desktop and Android release, and both forms accept the same economy and exact values.

color-adjust compatibility in Edge

Microsoft Edge supports color-adjust from Edge 79 on Windows, macOS, and Linux, since the Chromium-based rebuild inherits Chrome's print pipeline. Legacy EdgeHTML 12 to 18 did not support the property, so move IE-era print stylesheets onto modern Edge for predictable output.

color-adjust compatibility in Firefox

Firefox supports color-adjust from Firefox 48 on Windows, macOS, Linux, and Android, with the unprefixed print-color-adjust alias landing in Firefox 97. Earlier Firefox 2 to 47 builds ignored the property entirely and stripped backgrounds during print with no way to opt out.

color-adjust compatibility in Safari

Safari supports color-adjust from Safari 6 on macOS through the prefixed -webkit-print-color-adjust form, and the unprefixed print-color-adjust from Safari 15.4 on macOS and iOS. Mobile Safari on iPhone and iPad shares the same WebKit engine, so the same version cutoffs apply across desktop and mobile.

color-adjust compatibility in Opera

Opera supports color-adjust from Opera 15 on Windows, macOS, and Linux, since the Chromium rebuild picked up the WebKit prefix and the standard property at the same time. Opera Mobile picks up color-adjust from Opera Mobile 80 on Android, matching the underlying Chromium release.

color-adjust compatibility in Samsung Internet

Samsung Internet supports color-adjust on every modern Galaxy build, since the browser tracks the Chromium engine and inherits the same print-color-adjust pipeline as Chrome. The unprefixed property works alongside the WebKit prefix, so a single rule that ships both names covers every shipping version.

color-adjust compatibility in Android Browser

The stock Android Browser supports color-adjust on current Android releases, since the system WebView tracks Chromium and inherits the same property. Earlier Android Browser builds shipped before color-adjust existed and silently dropped backgrounds during print, so include both prefixed and unprefixed forms when targeting older Android phones.

color-adjust compatibility in Internet Explorer

Internet Explorer never supported color-adjust on any version from IE 5.5 to IE 11. Microsoft has retired Internet Explorer 11, so any print stylesheet that has to keep backgrounds for IE-era users needs a server-rendered PDF fallback. Move new work to Chromium-based Edge, which respects color-adjust by default.

Note

Note: color-adjust still trips up real print jobs across Safari, older Chrome, and IE-era setups. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What are the values of CSS color-adjust?

The property accepts two keywords, economy and exact, plus the standard CSS-wide values like inherit and initial. Each keyword tells the browser how aggressive to be when adjusting an element's colors for the output device.

  • economy: The default value. The browser may strip backgrounds, lighten dark fills, and replace light text on dark backgrounds with dark text on white, all to save ink and improve readability on paper.
  • exact: The browser must preserve the element's declared colors and background images. Use this for zebra-striped tables, swatches, charts, branded headers, and anything where the color carries meaning.
  • inherit, initial, revert, revert-layer, unset: Standard CSS-wide keywords. They behave as defined for every other CSS property, with economy as the inherited default if no ancestor overrides it.

How is color-adjust different from forced-color-adjust?

Dimensionprint-color-adjust (color-adjust)forced-color-adjust
PurposeControls color preservation on print outputControls color preservation in OS forced-colors mode
TriggerAny print job or @media print stylesheetWindows High Contrast and @media (forced-colors: active)
Valueseconomy, exactauto, none
Defaulteconomyauto
InheritsYesYes
Typical usePreserve charts, swatches, and zebra rows on paperOpt out of high-contrast remapping for branded UI
Browser supportChrome 19+, Edge 79+, Firefox 48+, Safari 6+Chrome 89+, Edge 89+, Firefox 113+, Safari 18+

How do you use CSS color-adjust in a print stylesheet?

color-adjust applies to any element. Wrap the rule in an @media print block and pair the prefixed -webkit-print-color-adjust with the unprefixed print-color-adjust so every browser reads the same intent.

  • Open your print stylesheet: Add an @media print block to your main CSS file, or wire a dedicated print.css through a link tag with media set to print.
  • Target the element that must keep its colors: Pick the selector for the table, chart, branded header, or zebra-row container where the background or fill carries meaning on paper.
  • Declare both prefixed and unprefixed forms: Set -webkit-print-color-adjust: exact first, then print-color-adjust: exact right under it, so Chrome, Safari, Firefox, and Edge all honor the rule across versions.
  • Print preview the page: Press Ctrl+P (Cmd+P on macOS), open the destination dropdown, and choose Save as PDF to confirm the backgrounds and images survive the print pipeline.
  • Document the user toggle: Browsers expose a Background graphics checkbox in the print dialog that overrides color-adjust. Note this in your printable-page help text so users know to leave it on.
...

What are the known issues with CSS color-adjust?

color-adjust is widely supported, but a few cross-browser quirks still trip up real print jobs. The common pain points are user-override toggles, the legacy alias, vendor-prefix gaps, image rendering, and inheritance.

  • User toggle overrides CSS: Every browser exposes a Background graphics checkbox in the print dialog that overrides color-adjust: exact. If a user unchecks it, your zebra rows disappear no matter what your CSS says.
  • Legacy color-adjust alias: Old Chromium and Firefox builds only recognized color-adjust, not print-color-adjust. Ship both names side by side until your minimum supported versions cover Firefox 97, Chrome 92, and Safari 15.4.
  • Safari needs the WebKit prefix: Safari on macOS before 15.4 only honors -webkit-print-color-adjust. Drop the prefix only when your Safari floor is 15.4 or later on both desktop and iOS.
  • Internet Explorer ignores the property: IE 11 and earlier never implemented color-adjust. Print stylesheets must use background-image swaps or a server-rendered PDF for IE-era users.
  • Background images can still be dropped: Some printer drivers and the macOS Preview pipeline drop large background images even when print-color-adjust: exact is honored. Inline critical visuals as svg or img tags instead of background-image.
  • Inheritance can surprise: color-adjust inherits, so setting it on body cascades to every child. Scope the rule to the smallest selector that actually needs exact rendering, otherwise long pages can waste a lot of ink.

In my experience, the biggest production failure is forgetting the WebKit prefix for Safari. A chart that prints with the right gridlines on Chrome can print as a blank white box on macOS Safari, because the unprefixed property only landed in Safari 15.4 and a sizeable share of Mac users still run older builds.

...

Citations

All CSS color-adjust version numbers and platform notes in this guide come from these primary sources:

Author

Prince Dewani is a Community Contributor at TestMu AI, where he manages content strategies around software testing, QA, and test automation. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI. Prince has also presented academic research at the international conference PBCON-01. He further specializes in on-page SEO, bridging marketing with core testing technologies. On LinkedIn, he is followed by 4,300+ QA engineers, developers, DevOps experts, tech leaders, and AI-focused practitioners in the global testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Frequently asked questions

Did you find this page helpful?

More Related Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests