use mask instead of filter

This commit is contained in:
ygg2 2024-08-29 10:26:10 -04:00
parent 28ded9ed7c
commit 3a6f400cc4
6 changed files with 62 additions and 162 deletions

View file

@ -499,21 +499,20 @@ class Localuser {
buildservers() {
const serverlist = document.getElementById("servers"); //
const outdiv = document.createElement("div");
const img = document.createElement("img");
const home = document.createElement("span");
const div = document.createElement("div");
div.classList.add("home", "servericon");
img.src = "/icons/home.svg";
img.classList.add("svgtheme", "svgicon");
img["all"] = this.guildids.get("@me");
home.classList.add("svgtheme", "svgicon", "svg-home");
home["all"] = this.guildids.get("@me");
this.guildids.get("@me").html = outdiv;
const unread = document.createElement("div");
unread.classList.add("unread");
outdiv.append(unread);
outdiv.append(div);
div.appendChild(img);
div.appendChild(home);
outdiv.classList.add("servernoti");
serverlist.append(outdiv);
img.onclick = function () {
home.onclick = function () {
this["all"].loadGuild();
this["all"].loadChannel();
};
@ -545,9 +544,8 @@ class Localuser {
this.createGuild();
};
const guilddsdiv = document.createElement("div");
const guildDiscoveryContainer = document.createElement("img");
guildDiscoveryContainer.src = "/icons/explore.svg";
guildDiscoveryContainer.classList.add("svgtheme", "svgicon");
const guildDiscoveryContainer = document.createElement("span");
guildDiscoveryContainer.classList.add("svgtheme", "svgicon", "svg-explore");
guilddsdiv.classList.add("home", "servericon");
guilddsdiv.appendChild(guildDiscoveryContainer);
serverlist.appendChild(guilddsdiv);
@ -922,7 +920,6 @@ class Localuser {
{
const userinfos = getBulkInfo();
tas.addColorInput("Accent color:", _ => {
fixsvgtheme();
userinfos.accent_color = _;
localStorage.setItem("userinfos", JSON.stringify(userinfos));
document.documentElement.style.setProperty('--accent-color', userinfos.accent_color);
@ -1426,61 +1423,3 @@ class Localuser {
}
}
export { Localuser };
let fixsvgtheme;
{
let last;
const dud = document.createElement("p");
dud.classList.add("svgtheme");
document.body.append(dud);
const css = window.getComputedStyle(dud);
function fixsvgtheme_() {
//console.log(things);
const color = css.color;
if (color === last) {
return;
}
;
last = color;
const thing = color.replace("rgb(", "").replace(")", "").split(",");
//sconsole.log(thing);
const r = +thing[0] / 255;
const g = +thing[1] / 255;
const b = +thing[2] / 255;
const max = Math.max(r, g, b);
const min = Math.min(r, g, b);
const l = (max + min) / 2;
let s;
let h;
if (max !== min) {
if (l <= .5) {
s = (max - min) / (max + min);
}
else {
s = (max - min) / (2.0 - max - min);
}
if (r === max) {
h = (g - b) / (max - min);
}
else if (g === max) {
h = 2 + (b - r) / (max - min);
}
else {
h = 4 + (r - g) / (max - min);
}
}
else {
s = 0;
h = 0;
}
const rot = Math.floor(h * 60) + "deg";
const invert = .5 - (s / 2) + "";
const brightness = Math.floor((l * 200)) + "%";
document.documentElement.style.setProperty('--rot', rot);
document.documentElement.style.setProperty('--invert', invert);
document.documentElement.style.setProperty('--brightness', brightness);
}
fixsvgtheme = fixsvgtheme_;
setTimeout(fixsvgtheme_, 100);
fixsvgtheme_();
}
export { fixsvgtheme };