From e749a9eaededcf385e081a397dc55e321c62ab29 Mon Sep 17 00:00:00 2001 From: Aadi Desai <21363892+supleed2@users.noreply.github.com> Date: Sun, 12 Nov 2023 19:39:31 +0000 Subject: [PATCH] Backup state of remake --- .gitattributes | 2 + LICENSE | 15 +++ favicon.ico | Bin 0 -> 67646 bytes img/4el.svg | 231 ++++++++++++++++++++++++++++++++++++ img/cf.svg | 7 ++ img/default.svg | 7 ++ img/dweb.svg | 11 ++ img/me.svg | 8 ++ img/nfts.svg | 201 +++++++++++++++++++++++++++++++ img/os.svg | 7 ++ img/scan.svg | 8 ++ img/udl.ink.svg | 16 +++ img/udlinklogo.png | Bin 0 -> 42979 bytes img/w3s.svg | 8 ++ index.html | 133 +++++++++++++++++++++ script.js | 133 +++++++++++++++++++++ styles.css | 289 +++++++++++++++++++++++++++++++++++++++++++++ 17 files changed, 1076 insertions(+) create mode 100644 .gitattributes create mode 100644 LICENSE create mode 100644 favicon.ico create mode 100644 img/4el.svg create mode 100644 img/cf.svg create mode 100644 img/default.svg create mode 100644 img/dweb.svg create mode 100644 img/me.svg create mode 100644 img/nfts.svg create mode 100644 img/os.svg create mode 100644 img/scan.svg create mode 100644 img/udl.ink.svg create mode 100644 img/udlinklogo.png create mode 100644 img/w3s.svg create mode 100644 index.html create mode 100644 script.js create mode 100644 styles.css diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..fb1620d --- /dev/null +++ b/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2023 Aadi Desai + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5ec25d3301a838eaf655f988c44165f222c63670 GIT binary patch literal 67646 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/cf.svg b/img/cf.svg new file mode 100644 index 0000000..5dcc927 --- /dev/null +++ b/img/cf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/img/default.svg b/img/default.svg new file mode 100644 index 0000000..5509b05 --- /dev/null +++ b/img/default.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/img/dweb.svg b/img/dweb.svg new file mode 100644 index 0000000..6183574 --- /dev/null +++ b/img/dweb.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/img/me.svg b/img/me.svg new file mode 100644 index 0000000..31deb48 --- /dev/null +++ b/img/me.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/img/nfts.svg b/img/nfts.svg new file mode 100644 index 0000000..d3bd525 --- /dev/null +++ b/img/nfts.svg @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/os.svg b/img/os.svg new file mode 100644 index 0000000..435b0d0 --- /dev/null +++ b/img/os.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/img/scan.svg b/img/scan.svg new file mode 100644 index 0000000..0679fa7 --- /dev/null +++ b/img/scan.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/img/udl.ink.svg b/img/udl.ink.svg new file mode 100644 index 0000000..dc88eee --- /dev/null +++ b/img/udl.ink.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/img/udlinklogo.png b/img/udlinklogo.png new file mode 100644 index 0000000000000000000000000000000000000000..f020373fb14dc3e1f173f682cdf823eb0d4e1e51 GIT binary patch literal 42979 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

|@S(47~6*qxh5r;$%E@#lRrVum`?HVWh4m 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 literal 0 HcmV?d00001 diff --git a/img/w3s.svg b/img/w3s.svg new file mode 100644 index 0000000..06485c3 --- /dev/null +++ b/img/w3s.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..8f2b553 --- /dev/null +++ b/index.html @@ -0,0 +1,133 @@ + + + + + + + UDlink Docs + + + + + + + + + + + + + + + + + + + +

+ +
+ udl.ink/ + + + +
+
+ Options + + +
+
+

Use the default gateway (checked and updated if the current default gateway stops working in the future), + select a specific gateway, or use one of the extra features like Opensea or Block Explorer linking

+
+

Note: the formatting of this page is currently very broken on mobile, and is being actively + worked on.

+
+
+ + + + Alchemy Supercharged + + + + + \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..25becd8 --- /dev/null +++ b/script.js @@ -0,0 +1,133 @@ +const prefix = document.getElementById("input-prefix"); +const userInput = document.getElementById("user-input"); +const exampleTexts = [ + "8bitsquid.x", + "3blocks.x", + "kooheji.crypto", + "charlielowndes.nft", + "bro.nft", + "virtualjester.x", + "sandy.nft", + "0xcryptopapi.x", +]; +const carousel = document.querySelector(".carousel"); +const scrollLeftButton = document.querySelector(".scroll-left"); +const scrollRightButton = document.querySelector(".scroll-right"); +let currentIndex = 0; +let typing = true; +let typingIndex = 0; +let userInputClear = true; +let flashCount = 0; + +scrollLeftButton.addEventListener("click", () => { + carousel.scrollBy({ + left: -480, // Scroll 3 options to the left + behavior: 'smooth' // Use smooth scrolling + }); +}); + +scrollRightButton.addEventListener("click", () => { + carousel.scrollBy({ + left: 480, // Scroll 3 options to the right + behavior: 'smooth' // Use smooth scrolling + }); +}); + +function animateGhostText() { + if (userInput.value === "") { + if (typing) { + userInput.placeholder = exampleTexts[currentIndex].substring(0, typingIndex++) + "|"; + if (typingIndex > exampleTexts[currentIndex].length) { + typing = false; + setTimeout(() => { if (userInputClear) animateGhostText() }, 200); + } else { + setTimeout(() => { if (userInputClear) animateGhostText() }, 200); + } + } else { + if (flashCount < 5) { + userInput.placeholder = exampleTexts[currentIndex].substring(0, typingIndex) + ((flashCount % 2) ? "" : "|"); + flashCount++; + setTimeout(() => { if (userInputClear) animateGhostText() }, 500); + return; + } + userInput.placeholder = exampleTexts[currentIndex].substring(0, typingIndex--) + "|"; + if (typingIndex === 0) { + typing = true; + flashCount = 0; + currentIndex = (currentIndex + 1) % exampleTexts.length; + setTimeout(() => { if (userInputClear) animateGhostText() }, 200); + } else { + setTimeout(() => { if (userInputClear) animateGhostText() }, 100); + } + } + } else { + userInput.placeholder = ""; + } +} + +userInput.addEventListener("input", () => { + if (userInput.value === "") { + typingIndex = 0; + typing = true; + flashCount = 0; + userInputClear = true; + animateGhostText(); + } else { + userInput.placeholder = ""; + userInputClear = false; + } +}); + +animateGhostText(); + +document.querySelector(".collapsible").addEventListener("click", function () { + this.classList.toggle("active"); + carousel.style.maxHeight = carousel.style.maxHeight ? null : carousel.scrollHeight + "px"; +}); + +Array.from(document.getElementsByClassName("option")).forEach(option => { + option.addEventListener("click", () => { + document.documentElement.style.setProperty("--input-prefix-width", option.getAttribute("data-prefix").length + "0px"); + prefix.textContent = option.getAttribute("data-prefix"); + }); +}); + +async function copyToClipboard(text) { + try { + await navigator.clipboard.writeText(text); + return true; + } catch (err) { + console.error("Failed to copy text: ", err); + return false; + } +} + +const inputButton = document.getElementById("copy-button"); +const copyIcon = inputButton.innerHTML; +const copiedIcon = document.getElementById("copied-tick").cloneNode(true); +copiedIcon.style.display = ""; +inputButton.addEventListener("click", async () => { + if (userInput.value !== "") { + if (await copyToClipboard(`${prefix.textContent}${userInput.value}`)) { + // Change button content to a checkmark + inputButton.innerHTML = copiedIcon.outerHTML; + + // Revert button content back after 1 second + setTimeout(() => { + inputButton.innerHTML = copyIcon; + }, 1000); + } else { + alert(`Your browser does not support copying to clipboard, please copy the link below manually:\nhttps://${prefix.textContent}${userInput.value}`); + } + } else { + alert("Please enter an Unstoppable Domain to link to"); + } +}); + +document.getElementById("go-now").addEventListener("click", () => { + if (userInput.value !== "") { + window.open(`https://${prefix.textContent}${userInput.value}`, "_blank"); + } else { + alert("Please enter an Unstoppable Domain to go to"); + } +}); diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..4e7f7cb --- /dev/null +++ b/styles.css @@ -0,0 +1,289 @@ +/* latin */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: italic; + font-weight: 200; + font-stretch: 100%; + src: url(https://fonts.bunny.net/jetbrains-mono/files/jetbrains-mono-latin-200-italic.woff2) format('woff2'), url(https://fonts.bunny.net/jetbrains-mono/files/jetbrains-mono-latin-200-italic.woff) format('woff'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +/* latin */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 200; + font-stretch: 100%; + src: url(https://fonts.bunny.net/jetbrains-mono/files/jetbrains-mono-latin-200-normal.woff2) format('woff2'), url(https://fonts.bunny.net/jetbrains-mono/files/jetbrains-mono-latin-200-normal.woff) format('woff'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +/* latin-ext */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: italic; + font-weight: 200; + font-stretch: 100%; + src: url(https://fonts.bunny.net/jetbrains-mono/files/jetbrains-mono-latin-ext-200-italic.woff2) format('woff2'), url(https://fonts.bunny.net/jetbrains-mono/files/jetbrains-mono-latin-ext-200-italic.woff) format('woff'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} + +/* latin-ext */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 200; + font-stretch: 100%; + src: url(https://fonts.bunny.net/jetbrains-mono/files/jetbrains-mono-latin-ext-200-normal.woff2) format('woff2'), url(https://fonts.bunny.net/jetbrains-mono/files/jetbrains-mono-latin-ext-200-normal.woff) format('woff'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} + +:root { + --bg-colour: #122654; + --accent-colour: #2be9ff; + --accent-colour-2: #9976f3; + --input-box-bg-colour: #1a2a5a; + --input-box-bg-colour-2: #122654; + --input-box-border-thickness: 2px; + --input-box-border-colour: #2be9ff; + --input-box-border: var(--input-box-border-thickness) solid var(--input-box-border-colour); + --input-box-text-colour: #2be9ff; + --input-box-placeholder-colour: #2be9ff; + --input-box-button-colour: #2be9ff; + --input-box-border-radius: 20px; + --input-buttons-bg-colour: #122654; + --collapsible-expand-time: 0.25s; + --collapsible-bg-colour: #1a2a5a; +} + +html { + --input-prefix-width: 80px; +} + +body { + font-family: 'JetBrains Mono', monospace; + margin: 0; + min-height: 100%; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; + overflow-x: hidden; + overflow-y: scroll; + scrollbar-width: none; + background-image: linear-gradient(to top, transparent, transparent), linear-gradient(to bottom, var(--bg-colour), var(--accent-colour-2)); + background-repeat: no-repeat; + background-size: 100% auto, 100% 100%; + background-attachment: fixed; + background-position: 0 100%, 0 0; +} + +body::-webkit-scrollbar { + display: none; +} + +.banner-image { + display: flex; + justify-content: center; + min-height: 150px; + margin: 20px 10%; +} + +.banner-image img { + max-height: 150px; + max-width: 80%; +} + +.input-container { + display: flex; + border: var(--input-box-border); + border-radius: var(--input-box-border-radius); + margin-bottom: 10px; +} + +.input-prefix { + background-color: var(--input-box-bg-colour-2); + color: var(--accent-colour); + padding: 8px; + font-size: 16px; + border-right: var(--input-box-border); + display: flex; + align-items: center; + width: var(--input-prefix-width); + border-radius: var(--input-box-border-radius) 0 0 var(--input-box-border-radius); + justify-content: flex-end; +} + +.user-input { + font-family: 'JetBrains Mono', monospace; + background-color: var(--input-box-bg-colour); + color: var(--accent-colour); + width: calc(300px - var(--input-prefix-width)); + /* TODO: make dynamic */ + padding: 8px; + font-size: 16px; + border: none; + outline: none; +} + +.user-input::placeholder { + color: var(--accent-colour); +} + +.input-button { + background-color: var(--input-buttons-bg-colour); + border: none; + padding: 8px; + cursor: pointer; + outline: none; + border-left: var(--input-box-border); + display: flex; + justify-content: center; + align-items: center; +} + +.last-button { + border-radius: 0 var(--input-box-border-radius) var(--input-box-border-radius) 0; +} + +.input-button svg { + fill: var(--accent-colour); + width: 20px; + height: 15px; +} + +.collapsible-container { + display: flex; + flex-direction: column; + width: 100%; + align-items: center; + margin-top: 10px; +} + +.collapsible { + background-color: transparent; + cursor: pointer; + padding: 10px; + border: none; + transition: var(--collapsible-expand-time); +} + +.collapsible-text { + color: var(--accent-colour); +} + +.collapsible svg { + height: 10px; + fill: var(--accent-colour); +} + +.collapsible.active { + transform: scaleY(-1); +} + +.carousel-wrapper { + position: relative; + width: 100%; + overflow-y: hidden; + display: inline-flex; + align-items: center; + pointer-events: none; +} + +.carousel { + max-height: 0; + width: 100%; + overflow-x: scroll; + white-space: nowrap; + transition: max-height var(--collapsible-expand-time) ease-in-out; + display: inline-flex; + justify-content: flex-start; + background-color: var(--collapsible-bg-colour); + scrollbar-width: none; + -ms-overflow-style: none; + pointer-events: auto; +} + +.carousel::-webkit-scrollbar { + display: none; +} + +.carousel:after { + content: ""; + position: absolute; + width: 100%; + height: 100%; + box-shadow: inset 0px 20px 15px -15px #000, inset 0px -15px 15px -15px #000; + pointer-events: none; +} + +.scroll-button { + border: none; + padding: 10px; + cursor: pointer; + z-index: 1; + background-color: transparent; + position: absolute; +} + +.scroll-button svg { + fill: var(--accent-colour); + height: 20px; +} + +.scroll-left { + margin-left: 60px; + left: 0px; + pointer-events: auto; +} + +.scroll-right { + margin-right: 60px; + right: 0px; + pointer-events: auto; +} + +.carousel-inner-wrapper { + display: flex; + padding: 0px calc(50% - 60px); + scroll-snap-type: y mandatory; +} + +.carousel-inner-wrapper>div { + scroll-snap-align: center; +} + +.option { + width: 100px; + height: 100px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + margin: 10px; + cursor: pointer; + border: none; +} + +.option img { + width: 100px; + height: 50px; + object-fit: contain; +} + +.option p { + margin: 10px; + font-size: 12px; + color: var(--accent-colour); +} + +.options-description { + display: flex; + max-width: 800px; + color: var(--accent-colour); + flex-direction: column; + justify-content: flex-start; + margin: 0px 10%; +} + +/* TODO: @media (width < 600px) { stuff to change format of input box } */ \ No newline at end of file