HEX to RGBA
Enter a hex color and set the opacity. You get CSS rgba(), the 8-digit hex that CSS also accepts, and the alpha-first form Android and Flutter use, each ready to copy. Then try the color as a tint over your own photo or video and download it.
On a checkerboard
Alpha byte 128 (0x80) = 50.2% opaque.
Flattened on white and on black
#FFAB99 and #802C1A: the opaque colors you get once it is drawn.
| CSS rgba() | rgba(255, 87, 51, 0.5) | |
|---|---|---|
| CSS rgb() with slash | rgb(255 87 51 / 50%) | |
| CSS 8-digit hex (#RRGGBBAA) | #FF573380 | |
| Android (#AARRGGBB) | #80FF5733 | |
| Flutter | Color(0x80FF5733) | |
| Opaque hex, no alpha | #FF5733 |
Input read as #RRGGBB.
How the conversion works
A hex color is three bytes written in base 16: red, green and blue, each from 00 to FF (0 to 255). rgba() writes the same three numbers in decimal and adds the alpha, the opacity, as a number from 0 to 1. So #FF5733 at 50% is rgba(255, 87, 51, 0.5).
The 8-digit form stores the alpha as a fourth byte. CSS Color Module Level 4 puts it last (#RRGGBBAA), where 00 is fully transparent and FF fully opaque. The Android Color class reads #AARRGGBB, alpha first, and Flutter writes Color(0xAARRGGBB). A byte has 256 steps, so an opacity such as 50% becomes 128/255 = 50.2% once stored in hex; the tool shows that stored value.
Hex transparency table
The alpha byte for each opacity: 100% is FF, fully opaque; 0% is 00, fully transparent. In CSS it goes after the color (#FF573380), on Android before it (#80FF5733). Each value is the opacity times 255, rounded to the nearest whole number, so 50% is 128 (80), not 127.5.
| Opacity | Hex byte | Decimal |
|---|---|---|
| 100% | FF | 255 |
| 95% | F2 | 242 |
| 90% | E6 | 230 |
| 85% | D9 | 217 |
| 80% | CC | 204 |
| 75% | BF | 191 |
| 70% | B3 | 179 |
| 65% | A6 | 166 |
| 60% | 99 | 153 |
| 55% | 8C | 140 |
| 50% | 80 | 128 |
| 45% | 73 | 115 |
| 40% | 66 | 102 |
| 35% | 59 | 89 |
| 30% | 4D | 77 |
| 25% | 40 | 64 |
| 20% | 33 | 51 |
| 15% | 26 | 38 |
| 10% | 1A | 26 |
| 5% | 0D | 13 |
| 0% | 00 | 0 |
Every percentage from 100 to 0
| Opacity | Hex byte | Decimal |
|---|---|---|
| 100% | FF | 255 |
| 99% | FC | 252 |
| 98% | FA | 250 |
| 97% | F7 | 247 |
| 96% | F5 | 245 |
| 95% | F2 | 242 |
| 94% | F0 | 240 |
| 93% | ED | 237 |
| 92% | EB | 235 |
| 91% | E8 | 232 |
| 90% | E6 | 230 |
| 89% | E3 | 227 |
| 88% | E0 | 224 |
| 87% | DE | 222 |
| 86% | DB | 219 |
| 85% | D9 | 217 |
| 84% | D6 | 214 |
| 83% | D4 | 212 |
| 82% | D1 | 209 |
| 81% | CF | 207 |
| 80% | CC | 204 |
| 79% | C9 | 201 |
| 78% | C7 | 199 |
| 77% | C4 | 196 |
| 76% | C2 | 194 |
| 75% | BF | 191 |
| 74% | BD | 189 |
| 73% | BA | 186 |
| 72% | B8 | 184 |
| 71% | B5 | 181 |
| 70% | B3 | 179 |
| 69% | B0 | 176 |
| 68% | AD | 173 |
| 67% | AB | 171 |
| 66% | A8 | 168 |
| 65% | A6 | 166 |
| 64% | A3 | 163 |
| 63% | A1 | 161 |
| 62% | 9E | 158 |
| 61% | 9C | 156 |
| 60% | 99 | 153 |
| 59% | 96 | 150 |
| 58% | 94 | 148 |
| 57% | 91 | 145 |
| 56% | 8F | 143 |
| 55% | 8C | 140 |
| 54% | 8A | 138 |
| 53% | 87 | 135 |
| 52% | 85 | 133 |
| 51% | 82 | 130 |
| 50% | 80 | 128 |
| 49% | 7D | 125 |
| 48% | 7A | 122 |
| 47% | 78 | 120 |
| 46% | 75 | 117 |
| 45% | 73 | 115 |
| 44% | 70 | 112 |
| 43% | 6E | 110 |
| 42% | 6B | 107 |
| 41% | 69 | 105 |
| 40% | 66 | 102 |
| 39% | 63 | 99 |
| 38% | 61 | 97 |
| 37% | 5E | 94 |
| 36% | 5C | 92 |
| 35% | 59 | 89 |
| 34% | 57 | 87 |
| 33% | 54 | 84 |
| 32% | 52 | 82 |
| 31% | 4F | 79 |
| 30% | 4D | 77 |
| 29% | 4A | 74 |
| 28% | 47 | 71 |
| 27% | 45 | 69 |
| 26% | 42 | 66 |
| 25% | 40 | 64 |
| 24% | 3D | 61 |
| 23% | 3B | 59 |
| 22% | 38 | 56 |
| 21% | 36 | 54 |
| 20% | 33 | 51 |
| 19% | 30 | 48 |
| 18% | 2E | 46 |
| 17% | 2B | 43 |
| 16% | 29 | 41 |
| 15% | 26 | 38 |
| 14% | 24 | 36 |
| 13% | 21 | 33 |
| 12% | 1F | 31 |
| 11% | 1C | 28 |
| 10% | 1A | 26 |
| 9% | 17 | 23 |
| 8% | 14 | 20 |
| 7% | 12 | 18 |
| 6% | 0F | 15 |
| 5% | 0D | 13 |
| 4% | 0A | 10 |
| 3% | 08 | 8 |
| 2% | 05 | 5 |
| 1% | 03 | 3 |
| 0% | 00 | 0 |
HEX to RGBA: questions
- How do I convert hex to rgba?
- Split the six hex digits into three pairs and read each pair as a number from 0 to 255: #FF5733 is red 255, green 87, blue 51. Then add the opacity as a number from 0 to 1: at 50% that is rgba(255, 87, 51, 0.5).
- How do I add transparency to a hex color?
- Add a seventh and eighth digit: the alpha byte. #FF573380 is #FF5733 at about 50%. All current browsers read 8-digit hex in CSS. The table on this page gives the byte for every percentage.
- Why is 50% opacity 80 and not 7F?
- The byte is the opacity times 255, rounded: 0.5 × 255 = 127.5, which rounds to 128, and 128 in hex is 80. Some tables truncate instead and give 7F (127). The difference is under half a percent and not visible.
- Is the alpha first or last?
- In CSS and in most web tools it is last: #RRGGBBAA. Android color strings and Flutter Color(0x…) values put it first: #AARRGGBB. The same eight digits mean different colors in the two orders, so check which one your platform expects.
- What does a transparent color look like once it is drawn?
- It depends on what is behind it. The tool shows it flattened on white and on black: the opaque colors you would pick with an eyedropper from a screenshot.
- How do I put a color overlay on a photo or video?
- Under the codes, press “Preview this color on your photo or video” and pick a picture or a clip: the color is laid over it at the opacity you set, like a tint or a color filter, and you can download the result. A photo is saved as JPG if you gave a JPG and as PNG otherwise; a video is saved as MP4 or WebM, whichever your browser can record. A video is re-recorded in real time in your browser, with sound where the browser allows it. The file is not uploaded anywhere.
Sources
- W3C. CSS Color Module Level 4, §5.2 «The RGB hexadecimal notations»: in 8-digit hex the last pair is the alpha, 00 fully transparent, ff fully opaque (Candidate Recommendation Draft, 3 November 2026). Link
- Android Developers. android.graphics.Color: color ints are ARGB (alpha in the highest 8 bits); parseColor accepts #RRGGBB and #AARRGGBB. Link
- Flutter API. Color constructor: bits 24–31 are the alpha, written Color(0xAARRGGBB). Link