2017-08-31 05:20:39 -08:00
|
|
|
// Packages
|
2019-12-25 00:52:32 -09:00
|
|
|
import Color from 'color';
|
2016-09-18 22:47:33 -08:00
|
|
|
|
|
|
|
|
// returns a background color that's in hex
|
|
|
|
|
// format including the alpha channel (e.g.: `#00000050`)
|
|
|
|
|
// input can be any css value (rgb, hsl, string…)
|
2019-12-25 00:52:32 -09:00
|
|
|
export default (bgColor: string) => {
|
2016-09-18 22:47:33 -08:00
|
|
|
const color = Color(bgColor);
|
2017-08-31 05:20:39 -08:00
|
|
|
|
2016-09-21 06:27:11 -08:00
|
|
|
if (color.alpha() === 1) {
|
2017-08-31 05:20:39 -08:00
|
|
|
return color.hex().toString();
|
2016-09-18 22:47:33 -08:00
|
|
|
}
|
2016-12-21 17:31:30 -09:00
|
|
|
|
|
|
|
|
// http://stackoverflow.com/a/11019879/1202488
|
|
|
|
|
const alphaHex = Math.round(color.alpha() * 255).toString(16);
|
2019-11-28 05:17:01 -09:00
|
|
|
return `#${alphaHex}${color
|
|
|
|
|
.hex()
|
|
|
|
|
.toString()
|
|
|
|
|
.substr(1)}`;
|
2016-09-18 22:47:33 -08:00
|
|
|
};
|