diff --git a/css/main.css b/css/main.css index da18606..9f0ae42 100644 --- a/css/main.css +++ b/css/main.css @@ -29,6 +29,13 @@ ============================================================ */ * { box-sizing: border-box; +} + +/* Default cursor lives on so it INHERITS down the tree. + Setting it on `*` paints it directly onto every element, which beats + inheritance and makes children of links/buttons (spans, icons, imgs) + fall back to the default cursor instead of the pointer. */ +html { cursor: url('/assets/cursor/default_0.png') 3 3, auto; } @@ -76,7 +83,8 @@ body { /* clickable */ -a, button, [role="button"], label[for], select, summary { +a, button, [role="button"], [role="link"], [data-href], label[for], select, summary, +.pc-name--link, #oneko { cursor: url('../assets/cursor/pointer_0.png'), pointer; } @@ -433,7 +441,7 @@ body::after { border-radius: 999px; background: var(--surface-0); border: 1px solid var(--surface-1); - cursor: pointer; + cursor: url('../assets/cursor/pointer_0.png'), pointer; transition: border-color 0.15s ease, transform 0.15s ease; } @@ -650,7 +658,7 @@ body:has(.dev-info) .hub { color: var(--subtext-0); font-size: 1.35rem; line-height: 1; - cursor: pointer; + cursor: url('../assets/cursor/pointer_0.png'), pointer; padding: 0 0.25rem; } @@ -694,7 +702,7 @@ body:has(.dev-info) .hub { font-family: inherit; font-size: 0.74rem; text-align: center; - cursor: pointer; + cursor: url('../assets/cursor/pointer_0.png'), pointer; transition: transform 0.15s ease, border-color 0.15s ease; } @@ -709,7 +717,7 @@ body:has(.dev-info) .hub { } .cat-option.locked { - cursor: default; + cursor: url('../assets/cursor/default_0.png'), default; opacity: 0.75; } @@ -1102,7 +1110,7 @@ body:has(.friend-grid) { height: 14px; opacity: 0.18; align-self: center; - cursor: default; + cursor: url('../assets/cursor/default_0.png'), default; pointer-events: auto; /* parent .badges sets none — re-enable here */ image-rendering: auto; @@ -1118,7 +1126,7 @@ body:has(.friend-grid) { #pokeball-secret.found { opacity: 1; - cursor: default; + cursor: url('../assets/cursor/default_0.png'), default; filter: drop-shadow(0 0 4px var(--red)); } @@ -1392,7 +1400,7 @@ summary.section-title { align-items: center; justify-content: space-between; gap: 0.5rem; - cursor: pointer; + cursor: url('../assets/cursor/pointer_0.png'), pointer; list-style: none; user-select: none; margin-bottom: 0; @@ -2448,7 +2456,7 @@ body:has(.music-wrap) { font-family: inherit; font-size: 0.72rem; letter-spacing: 0.04em; - cursor: pointer; + cursor: url('../assets/cursor/pointer_0.png'), pointer; border-radius: 999px; padding: 0.28rem 0.8rem 0.28rem 0.7rem; background: var(--surface-0); @@ -3351,7 +3359,7 @@ a.pc-row:hover, align-self: flex-start; background: none; border: none; - cursor: pointer; + cursor: url('../assets/cursor/pointer_0.png'), pointer; font-size: 0.95rem; line-height: 1; color: var(--subtext-0); diff --git a/js/core.js b/js/core.js index 729c72f..7f4a285 100644 --- a/js/core.js +++ b/js/core.js @@ -38,7 +38,7 @@ console.log(` // mmmmmmmmmmmmmmmmm girls kissing,,,,, document.querySelectorAll("[data-href]").forEach((el) => { - el.style.cursor = "pointer"; + // cursor handled in css ([data-href] + [role="link"]) so the custom PNG isn't overridden if (!el.hasAttribute("role")) el.setAttribute("role", "link"); if (!el.hasAttribute("tabindex")) el.setAttribute("tabindex", "0"); @@ -455,7 +455,7 @@ const spriteFor = (c) => c.sprite || BASE_SPRITE; if (!oneko) return; oneko.style.pointerEvents = "auto"; - oneko.style.cursor = "pointer"; + // cursor handled in css (#oneko) so the custom pointer PNG isn't overridden const ls = window.localStorage; let clicks = parseInt(ls.getItem("onekoClicks") || "0", 10); diff --git a/js/discord.js b/js/discord.js index 5695f5c..fdb48f2 100644 --- a/js/discord.js +++ b/js/discord.js @@ -104,7 +104,6 @@ // Optional website link on the name (friends can have a personal site). if (opts.link) { nameEl.classList.add("pc-name--link"); - nameEl.style.cursor = "pointer"; nameEl.setAttribute("role", "link"); nameEl.setAttribute("tabindex", "0"); const goLink = function () { window.open(opts.link, "_blank", "noopener"); };