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…)
|
2023-07-25 08:11:02 -08:00
|
|
|
const toElectronBackgroundColor = (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);
|
2022-03-18 17:29:57 -08:00
|
|
|
return `#${alphaHex}${color.hex().toString().slice(1)}`;
|
2016-09-18 22:47:33 -08:00
|
|
|
};
|
2023-07-25 08:11:02 -08:00
|
|
|
|
|
|
|
|
export default toElectronBackgroundColor;
|