8 Digit Hex Colors
One of the most requested capabilities in my early days of web development was the ability to set opacity on elements and even PNG images without the need for browser-specific CSS or hacks. Eventually we got native opacity support and even enjoyed rgba()
, the ability to cite an opacity level with a color.
While I loved the ability to provide an opacity with color using rgba()
, the use of hexadecimal color had always been ingrained in me, which made the sudden need for rgba conversions annoying. Luckily these days we have 8 digit hex values with allow us to cite an opacity level as the last two characters of the hex value!
The CSS
Hex implies "six" but the last two digits of the 8 character hex value are the opacity value:
.myElement {
/* { red/50% opacity } */
/* pink of white background */
background: #ff000080;
}
I love that we can use hexidecimal colors with the additional opacity value; needing to convert to rgba to take advantage of opacity was a needless frustration. I owe something to the creator of this API!
![6 Things You Didn’t Know About Firefox OS]()
Firefox OS is all over the tech news and for good reason: Mozilla's finally given web developers the platform that they need to create apps the way they've been creating them for years -- with CSS, HTML, and JavaScript. Firefox OS has been rapidly improving...
![An Interview with Eric Meyer]()
Your early CSS books were instrumental in pushing my love for front end technologies. What was it about CSS that you fell in love with and drove you to write about it?
At first blush, it was the simplicity of it as compared to the table-and-spacer...
![Implement jQuery’s hover() Method in MooTools]()
jQuery offers a quick event shortcut method called hover that accepts two functions that represent mouseover and mouseout actions. Here's how to implement that for MooTools Elements.
The MooTools JavaScript
We implement hover() which accepts to functions; one will be called on mouseenter and the other...
![Record Text Selections Using MooTools or jQuery AJAX]()
One technique I'm seeing more and more these days (CNNSI.com, for example) is AJAX recording of selected text. It makes sense -- if you detect users selecting the terms over and over again, you can probably assume your visitors are searching that term on Google...
OK. This is good to know, not because I will ever use an 8 digit Hex colour, but because I need to build this into all my Hex colour validation routines!
Hi, thanks for that post, I haven’t heard of this before. I would like to point out that hex does not imply ‘six’ but is short for hexadecimal which are number to the base of 16. Because of that also your example has a problem. The alpha channel’s value is also in hex so 50 does not convert to 50% but instead to 80. Since the same logic from the color channels, minimum is 00 (0)maximum is ff (255), needs to be applied, a hex value of 50 (80) equals to 80/255 = ~31.3 %
best regards
Sebastian
It means that you can set opacity to 255%, right?
I’d like to point out that the last two digits are not percentages but also hexadecimal numbers (16 values, from 0 to F). If you want 50% red you’ll need #FF000080, #FF000000 is 0% red and #FF0000FF is 100% red.
Very nice! Unfortunately not the best browser support if you want to include IE or Edge: https://caniuse.com/#feat=css-rrggbbaa