Testing

#RRGGBBAA: Browser Support, Syntax, Limitations

The CSS #RRGGBBAA 8-digit hex notation works in Chrome 62+, Edge 79+, Firefox 49+, Safari 10+, Opera 52+, and Samsung Internet 8.2+. See full browser support.

Author

Prince Dewani

May 6, 2026

#RRGGBBAA is a CSS Color Module Level 4 hex notation that adds an alpha channel to standard hex color syntax for transparency. It works in Chrome 62+, Edge 79+, Firefox 49+, Safari 10+ on macOS and iOS, Opera 52+, and Samsung Internet 8.2+, while Internet Explorer and Opera Mini never added support.

This guide covers what #RRGGBBAA is, the browsers that support it, the syntax, how it compares to rgba(), how to convert opacity to hex alpha, and known issues.

What is #RRGGBBAA hex notation?

#RRGGBBAA is the 8-digit hexadecimal color notation defined in the W3C CSS Color Module Level 4. The first six digits set red, green, and blue (00 to ff each), and the last two digits set the alpha channel from 00 (fully transparent) to ff (fully opaque). It works anywhere a CSS color is allowed.

Which browsers does #RRGGBBAA support?

#RRGGBBAA ships in every modern engine and the Web Platform Baseline marks it as Widely Available. The path to default-on support was uneven, with Chrome and Opera shipping it behind a flag for several releases before turning it on, and Internet Explorer and Opera Mini never adding it at all.

Loading browser compatibility data...

#RRGGBBAA compatibility in Chrome

Chrome supports #RRGGBBAA from Chrome 62 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 52 to 61 had the notation behind the Experimental Web Platform features flag at chrome://flags, so it was disabled by default. Chrome 4 to 51 did not support 8-digit hex at all and dropped the declaration as invalid.

#RRGGBBAA compatibility in Edge

Microsoft Edge supports #RRGGBBAA from Edge 79 on Windows, macOS, and Linux through its Chromium engine. The legacy EdgeHTML versions (Edge 12 to 18) did not parse the 8-digit form and silently dropped the rule, so any old EdgeHTML traffic still has to use rgba() instead.

#RRGGBBAA compatibility in Firefox

Firefox supports #RRGGBBAA from Firefox 49 on Windows, macOS, and Linux, and from Firefox 49 on Android. Firefox 2 to 48 did not support the 8-digit form. Firefox shipped the feature unflagged in the same release for both desktop and Android, so there is no flag-gated middle range to worry about.

#RRGGBBAA compatibility in Safari

Safari supports #RRGGBBAA from Safari 10 on macOS and from Safari 10 on iOS and iPadOS. Safari 3.1 to 9.1 on macOS and Safari 3.2 to 9.3 on iOS did not support the notation, and the alpha pair was treated as an unknown trailing token. The current Safari and iOS Safari builds parse the 8-digit form unprefixed.

#RRGGBBAA compatibility in Opera

Opera supports #RRGGBBAA from Opera 52 on Windows, macOS, and Linux through its Blink engine. Opera 39 to 51 had it disabled by default behind the experimental features flag, and Opera 9 to 38 did not support the notation at all. Opera Mobile picks up support from Opera Mobile 80 on Android, while Opera Mini does not support it on any version.

#RRGGBBAA compatibility in Samsung Internet

Samsung Internet supports #RRGGBBAA from Samsung Internet 8.2 on Galaxy phones and tablets. Samsung Internet 5 to 7.4 had the notation disabled by default behind the Chromium experimental flag, and Samsung Internet 4 did not support it at all. The current Samsung Internet builds inherit every parser fix from upstream Chromium.

#RRGGBBAA compatibility in Android Browser

Modern Chrome for Android supports #RRGGBBAA from Chrome 62, and Firefox for Android supports it from Firefox 49. The legacy stock Android Browser supports the unprefixed 8-digit form on current Chromium-backed builds, while Android Browser 2.1 to 4.4.4 did not support it. Android WebView coverage is restricted on apps targeting older Android API levels due to a documented Chromium issue.

#RRGGBBAA compatibility in Internet Explorer

Internet Explorer 5.5 through Internet Explorer 11 never added support for #RRGGBBAA. Microsoft has retired Internet Explorer, so any legacy intranet page that still has to render on IE has to use the rgba() function or fall back to a flat hex color and a separate opacity property on the element.

Note

Note: #RRGGBBAA fails silently on Internet Explorer, EdgeHTML, Opera Mini, and pre-2017 Safari and Chrome builds. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What is the syntax of #RRGGBBAA hex notation?

#RRGGBBAA is a hash symbol followed by exactly eight hex digits. The first six digits encode red, green, and blue (two digits each, 00 to ff). The last two digits encode the alpha channel, also 00 to ff, where 00 is fully transparent and ff is fully opaque. A four-digit short form (#RGBA) also works and the browser duplicates each digit.

  • #RRGGBBAA (8-digit form): Two digits per channel. Example: #1e90ff80 is dodger blue at 50% alpha. Case-insensitive, so #1E90FF80 is the same color.
  • #RGBA (4-digit short form): One digit per channel. The browser duplicates each digit to expand it, so #f09a equals #ff0099aa.
  • Alpha range: 00 to ff in hex, equal to 0 to 255 in decimal and 0 to 1 in float. The alpha pair maps linearly: 80 hex equals 128 decimal which equals 0.502 in float.
  • Where it works: Anywhere a CSS color is valid - background-color, color, border-color, box-shadow, fill, stroke, gradient color stops, and CSS custom properties typed as color.
/* 1. Basic 8-digit hex with alpha. */
.card {
    background-color: #1e90ff80; /* dodger blue at 50% alpha */
    border: 1px solid #00000033;  /* black at 20% alpha */
}

/* 2. Short 4-digit form. The browser duplicates each digit. */
.badge {
    background-color: #f09a; /* same as #ff0099aa */
}

/* 3. Detect support before shipping a fallback. */
@supports (color: #ff000080) {
    .toast {
        background-color: #ff000080;
    }
}

@supports not (color: #ff000080) {
    .toast {
        background-color: rgba(255, 0, 0, 0.5);
    }
}

How does #RRGGBBAA compare to rgba()?

#RRGGBBAA and rgba() paint the same color when their channel values match. The differences are syntax length, readability, browser-support floor, and the way each one expresses the alpha channel. rgba() has an older support baseline, so it is the safer choice for any page that still ships to pre-2017 browsers.

Dimension#RRGGBBAArgba()
Notation length9 characters (hash plus 8 digits)17 to 22 characters depending on values
Alpha formatTwo hex digits, 00 to ffFloat 0 to 1, or percentage 0% to 100%
Browser support floorChrome 62, Firefox 49, Safari 10, Edge 79Chrome 4, Firefox 3, Safari 3.1, IE 9
Internet ExplorerNot supported on any IE versionSupported from IE 9 on
Readability for designersCompact, but alpha hex pair is harder to scanVerbose, but the 0 to 1 float reads naturally
Best fitModern stacks where every target ships Chromium 62, Gecko 49, or WebKit 10 or newerPages that still ship to Internet Explorer or pre-2017 browser traffic
...

How do you convert opacity percentage to hex alpha?

Hex alpha runs from 00 to ff (0 to 255 in decimal). Opacity in CSS runs from 0 to 1 (or 0% to 100%). Map between the two with a short, four-step calculation that you can do in your head, in DevTools, or in a one-liner script.

  • Take the opacity value: Start with the alpha you want as a 0 to 1 float. 50% opacity is 0.5, 25% is 0.25, 100% is 1.
  • Multiply by 255: Scale the float to the 0 to 255 byte range. 0.5 times 255 is 127.5.
  • Round to the nearest integer: The hex pair must be a whole byte. 127.5 rounds to 128.
  • Convert to two-digit hex: Use Number(128).toString(16) in DevTools to get "80". Pad to two digits if the result is a single character: 5 becomes 05, not 5.
  • Append to the 6-digit color: Add the alpha pair to the end of #RRGGBB. So red at 50% alpha is #ff000080, and red at 25% alpha is #ff000040.

Quick reference for the values most teams use: 100% = ff, 75% = bf, 50% = 80, 25% = 40, 10% = 1a, 5% = 0d, 0% = 00. If the conversion looks wrong in the browser, paste the full color into DevTools and check that the parsed alpha matches your intended percentage.

What are the known issues with #RRGGBBAA?

#RRGGBBAA ships widely now, but several quirks still trip up teams. Most issues come from the IE and EdgeHTML support gap, the silent drop on older browsers, and tooling that does not normalize between the 4-digit and 8-digit forms.

  • Silent drop on unsupported browsers: Internet Explorer, EdgeHTML, Opera Mini, and pre-2017 Safari and Chrome treat the 8-digit value as invalid and discard the entire declaration. The element then falls back to its default background, which is often plain white or transparent.
  • No fallback chain in the cascade: Unlike rgba() pages that pair a hex color with a separate opacity rule, #RRGGBBAA collapses the two into one declaration. Add a paired rgba() rule above the hex rule if you need to keep the color visible on Internet Explorer or EdgeHTML.
  • 4-digit form rounding: #RGBA expands each digit by duplication, so #abc1 expands to #aabbcc11, not to a true linear midpoint. Use the 8-digit form for any color where the alpha needs precise control.
  • Color picker tools mismatch: Some legacy design tools export hex with a separate opacity slider rather than a single 8-digit string, so the value pasted into CSS does not include the alpha. Always confirm the alpha pair is present before shipping.
  • Confusion with the legacy IE #AARRGGBB form: Old Internet Explorer filter syntax used #AARRGGBB (alpha first), which is the opposite order. Anything that still references the IE form has to be re-ordered before it works in modern browsers.
  • Android WebView restrictions: Android WebView coverage of #RRGGBBAA is limited on apps targeting older Android API levels because of a documented Chromium issue, so apps that embed a WebView still need to test the value across the WebView versions they ship.

In my experience, the trap that bites teams hardest is shipping a translucent toast notification with #ff000080 in a design system, then watching it render as a fully opaque red on an internal IE tab the support team uses, because the entire background-color declaration was dropped and the cascade fell through to a hard-coded fallback color two stylesheets up.

...

Citations

All #RRGGBBAA 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