您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Let you see Diep.io online
当前为
// ==UserScript== // @name Diep.io servers status online (beta version) // @version 0.0.1 // @description Let you see Diep.io online // @author @jaja.morgan // @match https://diep.io/* // @grant GM_addStyle // @license MIT // @namespace *://diep.io/ // ==/UserScript== const hotKeys = ["t", "е"]; // show/hide hotKeys const refreshTiming = 60; // in seconds const SVGS = { fra: `<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-de" viewBox="0 0 512 512" > <path fill="#ffce00" d="M0 341.3h512V512H0z"></path> <path fill="#000" d="M0 0h512v170.7H0z"></path> <path fill="#d00" d="M0 170.7h512v170.6H0z"></path> </svg>`, atl: `<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-us" viewBox="0 0 512 512"> <g fill-rule="evenodd"> <g stroke-width="1pt"> <path fill="#bd3d44" d="M0 0h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)"></path> <path fill="#fff" d="M0 10h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)"></path> </g> <path fill="#192f5d" d="M0 0h98.8v70H0z" transform="scale(3.9385)"></path> <path fill="#fff" d="m8.2 3 1 2.8H12L9.7 7.5l.9 2.7-2.4-1.7L6 10.2l.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.4 1.7 1 2.7L74 8.5l-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9L92 7.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0 1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7 .8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 24.2l.9-2.7-2.4-1.7h3zm16.4 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9L92 21.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0 1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7 .8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 38.2l.9-2.7-2.4-1.7h3zm16.4 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9L92 35.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0 1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7 .8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 52.2l.9-2.7-2.4-1.7h3zm16.4 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9L92 49.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0 1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7 .8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 66.2l.9-2.7-2.4-1.7h3zm16.4 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0 1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0 .9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0 .9 2.8h2.9L92 63.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9z" transform="scale(3.9385)"></path> </g> </svg>`, itm: `<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-jp" viewBox="0 0 512 512"> <defs> <clipPath id="jp-a"> <path fill-opacity=".7" d="M177.2 0h708.6v708.7H177.2z"></path> </clipPath> </defs> <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#jp-a)" transform="translate(-128) scale(.72249)"> <path fill="#fff" d="M0 0h1063v708.7H0z"></path> <circle cx="523.1" cy="344.1" r="194.9" fill="#d30000" transform="translate(-59.7 -34.5) scale(1.1302)"></circle> </g> </svg> `, syd: ` <svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-au" viewBox="0 0 512 512" > <path id="path598" fill="#006" stroke-width="1.3" d="M0 0h512v512H0z" ></path> <path id="path606" fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M54.9 368.6 95.5 384l13.4-41.4 13.3 41.4 40.7-15.4-24.1 36.3 37.4 22.2-43.3 3.7 6 43.1-30-31.5-30 31.5 6-43-43.4-3.8L79 404.9m325 71.5-19 1.6 2.7 18.8-13-13.7-13 13.7L364 478l-18.8-1.6 16.3-9.6L351 451l17.7 6.7 5.8-18 5.7 18L398 451l-10.4 15.8m16.2-270.4L385 198l2.6 18.8-13-13.7-13 13.7L364 198l-18.8-1.6 16.3-9.6L351 171l17.7 6.7 5.8-18 5.7 18L398 171l-10.4 15.8m-88.8 123.4-18.8 1.6 2.6 18.7-13-13.7-13 13.7 2.5-18.7-18.8-1.6 16.3-9.7-10.5-15.7 17.7 6.7 5.8-18 5.7 18 17.7-6.7-10.4 15.7M497 282.2l-18.8 1.6 2.6 18.7-13-13.7-13 13.7 2.5-18.7-18.8-1.6 16.3-9.7-10.5-15.7 17.7 6.7 5.8-18 5.8 18 17.6-6.7-10.4 15.7M416.6 355l-10.3 6.4 2.9-11.8-9.3-7.8 12-.9 4.7-11.2L421 341l12.1 1-9.2 7.7 2.9 11.8" ></path> <g id="g1582" transform="scale(.5)"> <path id="path1560" fill="#006" d="M0 0h512v512H0z"></path> <path id="path1562" fill="#fff" d="M512 0v64L322 256l190 187v69h-67L254 324 68 512H0v-68l186-187L0 74V0h62l192 188L440 0z" ></path> <path id="path1564" fill="#c8102e" d="m184 324 11 34L42 512H0v-3zm124-12 54 8 150 147v45zM512 0 320 196l-4-44L466 0zM0 1l193 189-59-8L0 49z" ></path> <path id="path1566" fill="#fff" d="M176 0v512h160V0zM0 176v160h512V176z" ></path> <path id="path1568" fill="#c8102e" d="M0 208v96h512v-96zM208 0v512h96V0z" ></path> </g> </svg>`, }; const INDICES = { regions: { fra: 1, atl: 2, itm: 3, syd: 4, }, gameModes: { ffa: 1, teams: 2, "4teams": 3, maze: 4, event: 5, sandbox: 6, }, }; let lobbiesArr = []; let inRefreshing = false; const user_options = { sortMode: "region", hideRegions: [], hideModes: ["sandbox"], }; const list = document.createElement("div"); list.id = "list"; list.style.display = "none"; list.innerHTML = `<div class="list__headers"> <h3 class="lobby__region sortable">Region</h3> <h3 class="lobby__name">IP</h3> <h3 class="lobby__onl sortable">Players</h3> <h3 class="lobby__gm sortable">Game Mode</h3> </div> <div class="list__container"> <div class="list__lobbies"> <div class="scanning"> <div>SCANNING ALL FREQUENCIES</div> <div class="wrapper"> <span class="circle circle-1"></span> <span class="circle circle-2"></span> <span class="circle circle-3"></span> <span class="circle circle-4"></span> <span class="circle circle-5"></span> <span class="circle circle-6"></span> <span class="circle circle-7"></span> <span class="circle circle-8"></span> <span class="circle circle-9"></span> <span class="circle circle-10"></span> </div> </div> </div> <div class="list__options"> <h3>Options</h3> <ul class="options__filters"></ul> <ul class="options__buttons"> <button class="gray-btn" disable>Connect</button> <button class="yellow-btn">Refresh</button> </ul> </div> </div>`; document.body.append(list); createCB("showFra", "Show Frankfurt:", true); createCB("showAtl", "Show Atlanta:", true); createCB("showItm", "Show Osaka:", true); createCB("showSyd", "Show Sydney:", true); setDraggable(list, [list.querySelector(".list__headers")]); const list_header_players = document.body.querySelector( ".list__headers .lobby__onl" ); const list_header_region = document.body.querySelector( ".list__headers .lobby__region" ); const list_header_gamemode = document.body.querySelector( ".list__headers .lobby__gm" ); list_header_players.onclick = () => { if (user_options.sortMode !== "p_increase") { user_options.sortMode = "p_increase"; } else { user_options.sortMode = "p_decrease"; } sort(); }; list_header_region.onclick = () => { if (user_options.sortMode !== "regions") { user_options.sortMode = "regions"; sort(); } }; list_header_gamemode.onclick = () => { if (user_options.sortMode !== "gms") { user_options.sortMode = "gms"; sort(); } }; const list_lobbies = document.body.querySelector(".list__lobbies"); const scanning = document.body.querySelector(".list__lobbies .scanning"); document.addEventListener("keydown", (e) => { if (hotKeys.includes(e.key)) { if (list.style.display == "none") { list.style.display = "inline-block"; } else list.style.display = "none"; } }); checking(); let chkInt = setInterval(() => { checking(); }, refreshTiming * 1000); setInterval(() => { [...list_lobbies.children].forEach((e) => { if (e.classList.contains(".lobby__name")) { if (e.querySelector(".lobby__name").innerText === lobby_ip) { e.classList.add("active"); } else e.className = "lobby"; } }); }, 1000); const refresh_btn = document.body.querySelector("button.yellow-btn"); refresh_btn.onclick = () => { if (inRefreshing) return; clearInterval(chkInt); checking(); chkInt = setInterval(() => { checking(); }, refreshTiming * 1000); }; function createLobby(r_name, lobby_data) { const lobby = document.createElement("div"); lobby.classList = "lobby"; const lobby_region = document.createElement("h4"); lobby_region.classList = "lobby__region"; lobby_region.innerHTML = SVGS[`${r_name}`]; lobby.region = r_name; const lobby_name = document.createElement("h4"); lobby_name.classList = "lobby__name"; lobby_name.innerText = `${lobby_data.ip}`; const lobby_onl = document.createElement("h4"); lobby_onl.classList = "lobby__onl"; lobby_onl.innerText = `${lobby_data.numPlayers}`; lobby.plrsCount = lobby_data.numPlayers; const lobby_gm = document.createElement("h4"); lobby_gm.classList = "lobby__gm"; lobby_gm.innerText = `${lobby_data.gamemode}`; lobby.mode = lobby_data.gamemode; lobby.append(lobby_region, lobby_name, lobby_onl, lobby_gm); return lobby; } function createCB(id, text, isChecked = false) { let ln = document.createElement("line"); let cb = document.createElement("input"); cb.type = "checkbox"; cb.id = id; cb.checked = isChecked; let lb = document.createElement("label"); lb.htmlFor = id; lb.className = "custom-cb"; lb.innerText = text; switch (id) { case "showFra": cb.onclick = () => { if (!cb.checked) { user_options.hideRegions.push("fra"); } else user_options.hideRegions = user_options.hideRegions.filter( (e) => e !== "fra" ); sort(); }; break; case "showAtl": cb.onclick = () => { if (!cb.checked) { user_options.hideRegions.push("atl"); } else user_options.hideRegions = user_options.hideRegions.filter( (e) => e !== "atl" ); sort(); }; break; case "showItm": cb.onclick = () => { if (!cb.checked) { user_options.hideRegions.push("itm"); } else user_options.hideRegions = user_options.hideRegions.filter( (e) => e !== "itm" ); sort(); }; break; case "showSyd": cb.onclick = () => { if (!cb.checked) { user_options.hideRegions.push("syd"); } else user_options.hideRegions = user_options.hideRegions.filter( (e) => e !== "syd" ); sort(); }; break; } ln.append(cb, lb); document.body.querySelector(".list__options ul").append(ln); } async function getData() { try { const response = await fetch("https://lb.diep.io/api/lb/pc"); return await response.json(); } catch (e) { console.error(e); } } async function checking() { [...list_lobbies.children].forEach((e) => { if (e.classList.contains("lobby")) e.remove(); }); scanning.style.display = "block"; lobbiesArr = []; inRefreshing = true; const data = await getData(); scanning.style.display = "none"; inRefreshing = false; for (const region of data.regions) { for (const lobby of region.lobbies) { lobbiesArr.push(createLobby(region.region, lobby)); } } sort(); } function sort() { [...list_lobbies.children].forEach((e) => { if (e.classList.contains("lobby")) e.remove(); }); if (user_options.sortMode === "p_increase") { lobbiesArr .sort((a, b) => { return a.plrsCount - b.plrsCount; }) .reverse(); } else if (user_options.sortMode === "p_decrease") { lobbiesArr.sort((a, b) => { return a.plrsCount - b.plrsCount; }); } else if (user_options.sortMode === "regions") { lobbiesArr.sort((a, b) => { return INDICES.regions[`${a.region}`] - INDICES.regions[`${b.region}`]; }); } else if (user_options.sortMode === "gms") { lobbiesArr.sort((a, b) => { return INDICES.gameModes[`${a.mode}`] - INDICES.gameModes[`${b.mode}`]; }); } lobbiesArr.forEach((e) => { if (user_options.hideModes.includes(e.mode)) return; if (user_options.hideRegions.includes(e.region)) return; list_lobbies.append(e); }); } function setDraggable(el, el_child) { var newPosX = 0, newPosY = 0, MousePosX = 0, MousePosY = 0; if (el_child) { el_child.forEach((e) => e.addEventListener("mousedown", MouseDown)); } else el.addEventListener("mousedown", MouseDown); function MouseDown(mouseDown) { MousePosX = mouseDown.pageX; MousePosY = mouseDown.pageY; if (el_child) { el_child.forEach((e) => e.classList.add("dragableging")); } else el.classList.add("dragableging"); document.addEventListener("mousemove", elementMove); document.addEventListener("mouseup", stopElementMove); } function elementMove(mouseMove) { newPosX = MousePosX - mouseMove.pageX; newPosY = MousePosY - mouseMove.pageY; MousePosX = mouseMove.pageX; MousePosY = mouseMove.pageY; el.style.top = el.offsetTop - newPosY + "px"; el.style.left = el.offsetLeft - newPosX + "px"; } function stopElementMove() { if (el_child) { el_child.forEach((e) => e.classList.remove("dragableging")); } else el.classList.remove("dragableging"); document.removeEventListener("mousemove", elementMove); document.removeEventListener("mouseup", stopElementMove); } } GM_addStyle(`* { outline: none; border: none; margin: 0; padding: 0; } #list { position: absolute; z-index: 999; top: 50px; left: 50%; transform: translateX(-50%); color: white; font-family: "Ubuntu", sans-serif; font-size: 14px; background-color: #050c0a; padding: 0 5px; user-select: none; box-shadow: #050c0a8a 0px 0px 2px 6px; } .list__headers { background-color: #050c0a; color: #5b9e7d; display: flex; justify-content: space-between; align-items: center; text-align: center; cursor: grab; gap: 25px; padding: 15px; max-width: 575px; } .sortable { cursor: pointer; } .list__container { display: flex; justify-content: space-between; align-items: flex-start; text-align: center; padding: 3px 3px 8px 3px; } /* * lobbies */ .list__lobbies { position: relative; background-color: #081c1c; padding-right: 4px; overflow-y: scroll; display: flex; flex-direction: column; align-items: center; min-width: 616px; height: 395px; } .list__lobbies .scanning { display: none; top: 50%; left: 50%; transform: translateX(-50%) translateY(-75%); position: absolute; background-color: #153832; color: #8addd3; font-size: 28px; padding: 5px 10px; width: 420px; } .circle { display: inline-block; width: 10px; height: 10px; opacity: 0; border-radius: 3px; background-color: #8addd3; animation: loading 1.5s cubic-bezier(0.8, 0.5, 0.2, 1.4) infinite; position: relative; } @keyframes loading { 0% { opacity: 0; transform: scale(0); } 40% { opacity: 0; transform: scale(0); } 60% { opacity: 1; transform: scale(1); } 80% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(0); } } .circle-1 { animation-delay: 0s; } .circle-2 { animation-delay: 0.05s; } .circle-3 { animation-delay: 0.1s; } .circle-4 { animation-delay: 0.15s; } .circle-5 { animation-delay: 0.2s; } .circle-6 { animation-delay: 0.25s; } .circle-7 { animation-delay: 0.3s; } .circle-8 { animation-delay: 0.35s; } .circle-9 { animation-delay: 0.4s; } .circle-10 { animation-delay: 0.5s; } .list__lobbies::-webkit-scrollbar { background-color: #0a2120; width: 8px; padding: 1px; } .list__lobbies::-webkit-scrollbar-thumb { background-color: #f3fdfd; border-radius: 1px; } .lobby { background-color: #153832; color: #8addd3; padding: 5px 15px; border-radius: 5px; border: #375552 2px solid; margin-bottom: -1px; display: flex; justify-content: space-between; align-items: center; gap: 25px; min-width: 500px; } .lobby.active { background-color: #315a56; } .lobby:hover { background-color: #2c6b54; transition: 0.05s; } .chosen { background-color: #325c57; } .lobby svg { align-items: center; border-radius: 50%; height: 20px; width: auto; } .lobby__region { width: 50px; } .lobby__name { width: 250px; } .lobby .lobby__name { user-select: text; } .lobby__onl { width: 75px; } .lobby__gm { width: 120px; } /* * options */ .list__options { font-weight: bolder; background-color: #133532; color: #69c49f; height: 395px; width: 250px; } .list__options h3 { font-size: 28px; margin: 10px 10px 30px 10px; } .list__options ul { display: flex; flex-direction: column; justify-content: space-between; /* align-items: flex-start; */ text-align: left; margin: 0 10px; } ul.options__filters { margin-bottom: 100px; } .list__options line { position: relative; width: 100%; font-size: 14px; margin-bottom: 17.5px; } .list__options input { position: absolute; opacity: 0; } .custom-cb::before { content: ""; cursor: pointer; top: 50%; right: 0; transform: translateY(-50%); position: absolute; background-color: transparent; border: #69c49f 2px solid; width: 20px; height: 20px; } .custom-cb::after { content: ""; cursor: pointer; opacity: 0; top: 50%; right: 4.5px; transform: translateY(-50%); position: absolute; background-color: #69c49f; width: 15px; height: 15px; } .list__options input:checked + .custom-cb::after { opacity: 1; transition: 0.05s; } /* * buttons */ button { position: relative; font-size: 24px; font-weight: bold; color: #bbc9c9; margin: 5px 0px; padding: 3px 0; border-radius: 7.5px; cursor: pointer; } button.gray-btn { background-color: #343434; cursor: not-allowed; filter: brightness(0.5); } button.yellow-btn { background-color: #4f4917; } button.yellow-btn:hover { background-color: #c4b73b; box-shadow: inset #4f4917 0px 0px 12px 12px; } button.yellow-btn:active { background-color: #dfcc20; box-shadow: inset #4f4917 0px 0px 10px 7px; } .dragableging { cursor: grabbing; }`);