color yourself
This commit is contained in:
@ -1,13 +1,3 @@
|
||||
const colors = [
|
||||
'#f00', '#e21c00', '#c83800', '#a50', '#8d7100',
|
||||
'#718d00', '#6fa100', '#5c8000', '#498000', '#080'
|
||||
];
|
||||
|
||||
const batteryColor = batteryPercent => colors[({
|
||||
"-2": 9,
|
||||
"-1": 0
|
||||
})[batteryPercent] ?? ~~(batteryPercent / 10 + 0.5) - 1];
|
||||
|
||||
const batteryLevel = batteryPercent => ({
|
||||
"-2": "not connected",
|
||||
"-1": "charging"
|
||||
@ -17,3 +7,14 @@ const batteryIcon = batteryPercent => ({
|
||||
"-2": "action-unavailable",
|
||||
"-1": "battery-ac-adapter"
|
||||
})[batteryPercent] ?? "audio-headphones-symbolic";
|
||||
|
||||
const interpolateColor = (c0, c1, f) => { // https://stackoverflow.com/a/63775249
|
||||
if(isNaN(f)) return "transparent";
|
||||
c0 = c0.replace('#', '').match(/.{1,2}/g).map(oct => parseInt(oct, 16) * (1-f));
|
||||
c1 = c1.replace('#', '').match(/.{1,2}/g).map(oct => parseInt(oct, 16) * f);
|
||||
return "#" + [0, 1, 2]
|
||||
.map(i => Math.min(Math.round(c0[i] + c1[i]), 255))
|
||||
.reduce((a, v) => ((a << 8) + v), 0)
|
||||
.toString(16)
|
||||
.padStart(6, "0");
|
||||
};
|
||||
|
Reference in New Issue
Block a user