From 93b7de928e8ab59396fcd5ac263aed37afc5ec85 Mon Sep 17 00:00:00 2001 From: Igor Tolmachev Date: Sat, 20 Apr 2024 17:40:45 +0900 Subject: Add "click to copy" tooltip --- index.html | 7 +++---- minecraft/index.html | 11 +++++------ script.js | 18 +++++++++++++++++ style.css | 55 +++++++++++++++++++++++++++++----------------------- 4 files changed, 57 insertions(+), 34 deletions(-) create mode 100644 script.js diff --git a/index.html b/index.html index 2542722..a88fa21 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,13 @@ - - - + + + igorek.dev @@ -36,5 +36,4 @@
󰍳    Minecraft servers https://igorek.dev/minecraft
And more ...
- diff --git a/minecraft/index.html b/minecraft/index.html index 5a07615..1e082b9 100644 --- a/minecraft/index.html +++ b/minecraft/index.html @@ -1,13 +1,13 @@ - - - + + + Minecraft server list @@ -41,13 +41,12 @@
     Version: 1.20.4
      Map: https://mc.igorek.dev
-     IP: mc.igorek.dev:25565 [󰆏]
+     IP: mc.igorek.dev:25565
      Recommended mods: Simple Voice Chat
     
     Version: beta 1.7.3
-     IP: mc.igorek.dev:25575 [󰆏]
+     IP: mc.igorek.dev:25575
     
- diff --git a/script.js b/script.js new file mode 100644 index 0000000..b16142f --- /dev/null +++ b/script.js @@ -0,0 +1,18 @@ +function copy(text, tooltip) { + return () => { + navigator.clipboard.writeText(text); + tooltip.textContent = "[copied]"; + setTimeout(() => (tooltip.textContent = "[click to copy]"), 1000); + }; +} + +window.onload = () => { + document.querySelectorAll(".copy").forEach((element) => { + const tooltip = document.createElement("span"); + tooltip.classList.add("copy-tooltip"); + tooltip.textContent = "[click to copy]"; + + element.onclick = copy(element.attributes["copy-text"]?.value, tooltip); + element.appendChild(tooltip); + }); +}; diff --git a/style.css b/style.css index ceac6b3..b88584d 100644 --- a/style.css +++ b/style.css @@ -1,48 +1,55 @@ @font-face { - font-family: Noto Sans Mono; - src: url(font.ttf); + font-family: Noto Sans Mono; + src: url(font.ttf); } * { - font-family: Noto Sans Mono; + font-family: Noto Sans Mono; } @media screen and (max-width: 700px) { - * { - font-size: small; - } + * { + font-size: small; + } } @media screen and (min-width: 700px) { - * { - font-size: x-large; - } + * { + font-size: x-large; + } } @media (prefers-color-scheme: dark) { - body { - color: #a7a7a7; - background: #1e1e1e; - } + body { + color: #a7a7a7; + background: #1e1e1e; + } } @media (prefers-color-scheme: light) { - body { - color: #464b50; - background: #ffffff; - } + body { + color: #464b50; + background: #ffffff; + } } a, .copy { - cursor: pointer; - text-decoration: underline; - color: #7587a6; + cursor: pointer; + color: #7587a6; } a:active, .copy:active { - cursor: pointer; - text-decoration: underline; - color: #9b859d; -} \ No newline at end of file + cursor: pointer; + color: #9b859d; +} + +.copy > .copy-tooltip { + visibility: hidden; + margin-left: 1em; +} + +.copy:hover > .copy-tooltip { + visibility: visible; +} -- cgit v1.2.3