# Understanding #rrggbbaa color notation

The new `#rgba`

and `#rrggbbaa`

color formats have been in consideration for several years and have just started to make their way into the browsers now.

The added **aa** in the previously present hex notation is the *alpha* value which defines the *opacity* of the color. This means that now you will be able to use colors with opacity without switching from hex notation to `rgba()`

.

Below is a comparison of how you would write colors in the current scheme v/s the new 8-digit hex scheme.

## Comparison

The current way for adding colors with opacity is to use an `rgba()`

notation, if you consider a white (#FFFFFF) color with 80% opacity, here's how you would write it in comparison to the new notation:

```
background: rgba(255,255,255,0.8); // rgba() Format
background: #FFFFFFCC; // #RRGGBBAA Format
background: #FFFC; // #RGBA Format
```

From the comparison, you would realize that the new system is very easy to write and comprehend.

## Learning the Alpha

The value of alpha in the new hex notation would range from 00 to FF where 00 is the minimum value i.e 0% and FF is the max value which would be 100% opacity.

If you're aware of hexadecimal calculations, you'll easily be able to calculate the value of alpha based on the percentage of opacity that you need.

Calculating the hex code for 50% Alpha

Since the decimal values for opacity range from 0 to 255, in a traditional rgb notation; the value for 50% opacity would be 127, and hexadecimal value for this would be 7F

Here are some hex values that I get to see on a daily basis:

0% - **00**

10% - **1A**,

25% - **40**,

50% - **7F**,

75% - **BF**,

100% - **FF**

## Advantages

- Colors will be very very quick to write especially with the
`#rgba`

shorthand. - Colors are identifiable at the first glance because of a consistent notation followed everywhere.
- No switching between hex notation to rgba() while working with translucent colors thus adding in more consistency to the code.

## Disadvantages

The only disadvantage I see right now is the tricky part of calculating the hexadecimal alpha value. This, however can be subjective to the developer, and would get easier with time.

Most developers like to write their colors in a #hex notation and it's a real pain it is to switch from a `#hex`

notation to an `rgba()`

notation just for adding opacity to a color.

The new 8 digit hex notation solves this problem by adding an *alpha* to the existing notation.

Are you as excited as I am about this update? Let me know your thoughts in the comments. 😊