From e145681c9dff1d85e0219b7274bffcc7e5c0b550 Mon Sep 17 00:00:00 2001 From: zyqunix Date: Mon, 18 Nov 2024 21:50:30 +0100 Subject: [PATCH] huge change: uses json instead of absolute tool-div adding --- assets/Keyboard Test.png | Bin 0 -> 52617 bytes assets/Mouse Test.png | Bin 0 -> 61251 bytes assets/keyboard.png | Bin 58920 -> 0 bytes bio/index.html | 2 +- click/index.html | 2 +- cool/index.html | 13 +++ cool/script.js | 207 +++++++++++++++++++++++++++++++++++++++ index.html | 34 ++----- quote.js | 72 ++++++++++++++ style.css | 54 +++++----- theme.js | 83 ++++++++-------- tools.js | 50 ++++++++++ tools.json | 14 +++ 13 files changed, 434 insertions(+), 97 deletions(-) create mode 100644 assets/Keyboard Test.png create mode 100644 assets/Mouse Test.png delete mode 100644 assets/keyboard.png create mode 100644 cool/index.html create mode 100644 cool/script.js create mode 100644 quote.js create mode 100644 tools.js create mode 100644 tools.json diff --git a/assets/Keyboard Test.png b/assets/Keyboard Test.png new file mode 100644 index 0000000000000000000000000000000000000000..5389e578f45742efab6d1ab0be96b10b91780fb4 GIT binary patch literal 52617 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 N*9UvvzaCC1_%AJ3&u0Jt literal 0 HcmV?d00001 diff --git a/assets/Mouse Test.png b/assets/Mouse Test.png new file mode 100644 index 0000000000000000000000000000000000000000..70b7b62ff43f0c5eeca86ab1e183f7b42fc0ef3c GIT binary patch literal 61251 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
-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 Y#lRmg&6#Tb3j7>7WN|S2N7u{$2dEqGlmGw# diff --git a/bio/index.html b/bio/index.html index 4096399..8a9d740 100644 --- a/bio/index.html +++ b/bio/index.html @@ -9,7 +9,7 @@ - + diff --git a/click/index.html b/click/index.html index b4f2fc0..277dba1 100644 --- a/click/index.html +++ b/click/index.html @@ -6,7 +6,7 @@ Click Test - + diff --git a/cool/index.html b/cool/index.html new file mode 100644 index 0000000..8dcd107 --- /dev/null +++ b/cool/index.html @@ -0,0 +1,13 @@ + + + + + + Cool + + + + + + + \ No newline at end of file diff --git a/cool/script.js b/cool/script.js new file mode 100644 index 0000000..75f4730 --- /dev/null +++ b/cool/script.js @@ -0,0 +1,207 @@ +var background_color = "#fafafa"; +var canvas = document.getElementById("canvas"); +var renderer = new THREE.WebGLRenderer( { canvas: canvas } ); +var scene = new THREE.Scene(); +scene.background = new THREE.Color(0xffffff); +var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 ); +var win_width = 0, win_height = 0; +function update_size() { + if (window.innerWidth != win_width || window.innerHeight != win_height) { + win_width = window.innerWidth; + win_height = window.innerHeight; + renderer.setPixelRatio(window.devicePixelRatio || 1); + renderer.setSize(win_width, win_height); + camera.aspect = win_width / win_height; + camera.updateProjectionMatrix(); + } +} +update_size(); + +var clock = new THREE.Clock(); +var delta_time = 1/60.0; +var elapsed_time = 0; + +var geometry = new THREE.Geometry(); +var radius = 10; +var depth_step = 10; +var num_rings = 100; +var num_segments = 24; + +var outer_h = Math.max($("#outer").height(), 10000) - 1200; +var content_h = Math.max($("#content").height(), 10000); +var content_h2 = $("#content").height() + 9200; + +var base_colors = []; +var colors = []; +var num_colors = num_rings * num_segments * 2; +for (var c = 0; c < num_colors; c++) { + base_colors[c] = new THREE.Color(Math.random(), Math.random(), Math.random()); + colors[c] = base_colors[c].clone(); +} + +function lerp(res, color1, color2, t) { + res.r = (1-t)*color1.r + t*color2.r; + res.g = (1-t)*color1.g + t*color2.g; + res.b = (1-t)*color1.b + t*color2.b; +} + +function update_colors(delta, progress) { + var bias = 1; + var bg = new THREE.Color(background_color); + var h1 = content_h - 6000; + var h2 = content_h + 400; + if (progress < h1) { + bias = 0; + } else if (progress < h2) { + bias = (progress - h1) / (h2 - h1); + } + //if (s > content_h) { + // if (s > content_h + 1000) { + // color = new THREE.Color(1, 1, 1); + // } else { + // var q = (s - content_h) / 1000; + // //color = new THREE.Color(r + (1-r) * q, g + (1-g) * q, b + (1-b) * q); + // color = new THREE.Color(); + // color.setHSL(0, 0.5, q * 0.6 + 0.4); + // } + //} else { + // var q = (content_h-s) / content_h; + // color = new THREE.Color(); + // color.setHSL(q, 0.5, 0.4); + //} + for (var c = 0; c < num_colors; c++) { + var hsl = base_colors[c].getHSL(); + var h = hsl.h; + h = (h + delta * (1+c/100)) % 1; + base_colors[c].setHSL(h, hsl.s, hsl.l); + lerp(colors[c], bg, base_colors[c], bias); + } +} +update_colors(0, 0); + +var verts = []; +var speeds = []; +var phases = []; +function init_verts() { + var x = 0, y = 0, z = 0; + var dz = -depth_step / num_segments; + for (var r = 0; r < num_rings; r++) { + for (var s = 0; s < num_segments; s++) { + var angle = Math.PI * 2 * (s / num_segments); + var x = Math.cos(angle) * radius; + var y = Math.sin(angle) * radius; + verts.push(new THREE.Vector3(x, y, z)); + speeds.push(Math.random()); + phases.push(Math.random()); + z += dz; + } + } +} +init_verts(); +function update_verts(t) { + var d = num_rings * 0.4; + var v = 0; + for (var r = 0; r < num_rings; r++) { + for (var s = 0; s < num_segments; s++) { + if (r > d) { + var p = 0.5 + 0.5 * Math.sin(t*speeds[v] + phases[v]) + var q = (r-d)/d * 1.1; + var rad = (1-p * q) * radius; + var angle = Math.PI * 2 * (s / num_segments); + var x = Math.cos(angle) * rad; + var y = Math.sin(angle) * rad; + var vert = verts[v]; + vert.x = x; + vert.y = y; + } + v++; + } + } +} +update_verts(0); + +function mkgeometry(geometry) { + var fi = 0; + var f = 0; + var vi = 0; + var v = 0; + var x = 0, y = 0, z = 0; + var dz = -depth_step / num_segments; + var c = 0; + for (var r = 0; r < num_rings; r++) { + for (var s = 0; s < num_segments; s++) { + var vert1 = verts[vi]; + var vert2 = vi - 1 >= 0 ? verts[vi - 1] : verts[0]; + var vert3 = vi - num_segments >= 0 ? verts[vi - num_segments] : verts[0]; + var vert4 = vi - num_segments - 1 >= 0 ? verts[vi - num_segments - 1] : verts[0]; + vi++; + + geometry.vertices[v++] = vert1; + geometry.vertices[v++] = vert2; + geometry.vertices[v++] = vert4; + geometry.faces[f++] = new THREE.Face3(fi, fi+1, fi+2, null, colors[c++]); + fi += 3; + geometry.vertices[v++] = vert1; + geometry.vertices[v++] = vert4; + geometry.vertices[v++] = vert3; + geometry.faces[f++] = new THREE.Face3(fi, fi+1, fi+2, null, colors[c++]); + fi += 3; + old_x = x; + old_y = y; + old_z = z; + z += dz; + } + } + geometry.verticesNeedUpdate = true; + geometry.colorsNeedUpdate = true; + geometry.elementsNeedUpdate = true; +} +mkgeometry(geometry); +var material = new THREE.MeshBasicMaterial({ vertexColors: THREE.VertexColors, color: background_color }); +material.depthFunc = THREE.AlwaysDepth; +var mesh = new THREE.Mesh(geometry, material); +scene.add(mesh); + +var s = 0; +var total_s = 0; +var first_time = true; +var animate = function () { + //console.log("updating background"); + update_size(); + delta_time = clock.getDelta(); + elapsed_time = clock.elapsedTime; + + var win = $(window); + var prev_s = s; + s = $(window).scrollTop(); + var ds = Math.abs(s - prev_s); + camera.position.z = -s/outer_h*(num_rings * depth_step); + //var color; + //color = new THREE.Color("#efefef"); + //if (s > content_h) { + // if (s > content_h + 1000) { + // color = new THREE.Color(1, 1, 1); + // } else { + // var q = (s - content_h) / 1000; + // //color = new THREE.Color(r + (1-r) * q, g + (1-g) * q, b + (1-b) * q); + // color = new THREE.Color(); + // color.setHSL(0, 0.5, q * 0.6 + 0.4); + // } + //} else { + // var q = (content_h-s) / content_h; + // color = new THREE.Color(); + // color.setHSL(q, 0.5, 0.4); + //} + //material.color = color; + if (ds > 0 || first_time) { + total_s += ds * 0.01; + update_colors(ds * 0.00001, s); + update_verts(total_s); + mkgeometry(mesh.geometry); + first_time = false; + } + renderer.render(scene, camera); + requestAnimationFrame( animate ); +}; +animate(); +//setInterval(animate, 500); // backup as sometimes requestAnimationFrame doesn't trigger in Firefox diff --git a/index.html b/index.html index e1f67fc..98b098f 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,10 @@ zyq's Tools + + + +
@@ -18,34 +22,16 @@

This is a website for future tools. The source code can be found on my GitHub!

Clicking "Test It" will open the tool in the current tab.

More tools will come in the future.

-

MOTD: "To the mind that is still, the whole universe surrenders." - Lao Tzu

-
-
-

Mouse Test

-

This allows you to test your mouse's keys!

-
- - -
- Test It -
+
-
-

Keyboard Test

-

This allows you to test your keyboard's keys to see if they all work!

-
- Keyboard Image -
- Test It -
- -
+ + + + - - - + \ No newline at end of file diff --git a/quote.js b/quote.js new file mode 100644 index 0000000..d3bdf0c --- /dev/null +++ b/quote.js @@ -0,0 +1,72 @@ +const quotes = [ + "The journey of a thousand miles begins with one step. - Lao Tzu", + "Knowing others is wisdom, knowing yourself is Enlightenment. - Lao Tzu", + "A man who does not plan long ahead will find trouble right at his door. - Confucius", + "The man who moves a mountain begins by carrying away small stones. - Confucius", + "He who asks a question is a fool for five minutes; he who does not ask a question remains a fool forever. - Confucius", + "Life is really simple, but we insist on making it complicated. - Confucius", + "When it is obvious that the goals cannot be reached, don't adjust the goals, adjust the action steps. - Confucius", + "The superior man is modest in his speech but exceeds in his actions. - Confucius", + "Our greatest glory is not in never falling, but in rising every time we fall. - Confucius", + "Real knowledge is to know the extent of one's ignorance. - Confucius", + "To be wronged is nothing unless you continue to remember it. - Confucius", + "Silence is a true friend who never betrays. - Confucius", + "Choose a job you love, and you will never have to work a day in your life. - Confucius", + "The more man meditates upon good thoughts, the better will be his world and the world at large. - Confucius", + "To see what is right and not do it is the want of courage. - Confucius", + "I hear and I forget. I see and I remember. I do and I understand. - Confucius", + "When we see men of worth, we should think of equaling them; when we see men of a contrary character, we should turn inwards and examine ourselves. - Confucius", + "The superior man is modest in his speech, but exceeds in his actions. - Confucius", + "Ignorance is the night of the mind, but a night without moon and star. - Confucius", + "Wherever you go, go with all your heart. - Confucius", + "Wheresoever you go, go with all your heart. - Confucius", + "The gem cannot be polished without friction, nor man perfected without trials. - Confucius", + "When anger rises, think of the consequences. - Confucius", + "Better a diamond with a flaw than a pebble without. - Confucius", + "By nature, men are nearly alike; by practice, they get to be wide apart. - Confucius", + "When it is obvious that the goals cannot be reached, don't adjust the goals, adjust the action steps. - Confucius", + "What you do not want done to yourself, do not do to others. - Confucius", + "He who learns but does not think, is lost! He who thinks but does not learn is in great danger. - Confucius", + "To see and listen to the wicked is already the beginning of wickedness. - Confucius", + "Respect yourself and others will respect you. - Confucius", + "The superior man understands what is right; the inferior man understands what will sell. - Confucius", + "Without feelings of respect, what is there to distinguish men from beasts? - Confucius", + "Study the past if you would define the future. - Confucius", + "Success depends upon previous preparation, and without such preparation there is sure to be failure. - Confucius", + "If you think in terms of a year, plant a seed; if in terms of ten years, plant trees; if in terms of 100 years, teach the people. - Confucius", + "Wheresoever you go, go with all your heart. - Confucius", + "I hear and I forget. I see and I remember. I do and I understand. - Confucius", + "The man who asks a question is a fool for a minute, the man who does not ask is a fool for life. - Confucius", + "To know what is right and not do it is the worst cowardice. - Confucius", + "Real knowledge is to know the extent of one's ignorance. - Confucius", + "When you see a good person, think of becoming like them. When you see someone not so good, reflect on your own weak points. - Confucius", + "When it is obvious that the goals cannot be reached, don't adjust the goals, adjust the action steps. - Confucius", + "He who learns but does not think, is lost! He who thinks but does not learn is in great danger. - Confucius", + "The superior man is modest in his speech but exceeds in his actions. - Confucius", + "When we see men of a contrary character, we should turn inwards and examine ourselves. - Confucius", + "They must often change who would be constant in happiness or wisdom. - Confucius", + "The journey of a thousand miles begins with one step. - Lao Tzu", + "When I let go of what I am, I become what I might be. - Lao Tzu", + "Kindness in words creates confidence. Kindness in thinking creates profoundness. Kindness in giving creates love. - Lao Tzu", + "Mastering others is strength. Mastering yourself is true power. - Lao Tzu", + "Being deeply loved by someone gives you strength, while loving someone deeply gives you courage. - Lao Tzu", + "Life is a series of natural and spontaneous changes. Don't resist them; that only creates sorrow. Let reality be reality. Let things flow naturally forward in whatever way they like. - Lao Tzu", + "The wise man does not lay up his own treasures. The more he gives to others, the more he has for his own. - Lao Tzu", + "To the mind that is still, the whole universe surrenders. - Lao Tzu", + "The truth is not always beautiful, nor beautiful words the truth. - Lao Tzu", + "Act without expectation. - Lao Tzu", + "Nature does not hurry, yet everything is accomplished. - Lao Tzu", + "Time is a created thing. To say 'I don't have time,' is like saying, 'I don't want to.' - Lao Tzu", + "Be content with what you have; rejoice in the way things are. When you realize there is nothing lacking, the whole world belongs to you. - Lao Tzu", + "Those who know do not speak. Those who speak do not know. - Lao Tzu", + "Life and death are one thread, the same line viewed from different sides. - Lao Tzu", + "Do the difficult things while they are easy and do the great things while they are small. A journey of a thousand miles must begin with a single step. - Lao Tzu" +]; + +const randomIndex = Math.floor(Math.random() * quotes.length); +const randomQuote = quotes[randomIndex]; + +const motd = document.createElement('h3'); +motd.id = "motd"; +motd.innerHTML = `MOTD: ${randomQuote}`; +document.getElementById('welcome').appendChild(motd) diff --git a/style.css b/style.css index 188c076..70eacf4 100644 --- a/style.css +++ b/style.css @@ -3,7 +3,6 @@ body { justify-content: center; align-items: center; height: 100vh; - margin: 0; font-family: monospace; background-color: #2a2a2a; transition: background-color 0.3s, color 0.3s; @@ -39,18 +38,21 @@ img { overflow-x: hidden; } -.home { - text-decoration: none; - color: #f0f0f0; - padding: 10px; - background-color: rgba(75, 75, 75, 1); - border: 2px solid rgba(80, 80, 80, 1); - border-radius: 7px; - transition: 0.3s; - margin-left: 25px; - margin-right: -10px; - user-select: none; - cursor: pointer !important; +#footer { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + max-width: 100vw; + position: fixed; + background-color: #3b3b3b80; + padding: 1.5vh 2vw; + backdrop-filter: blur(3px); + font-size: large; + bottom: 0; + border-top: 1px solid #46464680; + z-index: 9999; + overflow-x: hidden; } .theme-button { @@ -58,22 +60,15 @@ img { background: none; border: none; transition: 0.3s; -} - -.home:hover { - background-color: rgba(85, 85, 85, 1); - border: 2px solid rgba(90, 90, 90, 1); - text-decoration: underline; + margin-left: 30px; } .welcome { text-align: center; margin: 0; - width: 100vw; + width: 60vw; max-width: 1920px; line-height: 1.4; - padding-left: 20px; - padding-right: 20px; padding-bottom: 25px; padding-top: 60px; box-sizing: border-box; @@ -94,11 +89,12 @@ img { gap: 2.5vw; justify-content: center; min-height: 10vh; - max-width: 100vw; - padding-bottom: 50px; + max-width: 80vw; + margin-bottom: 50px; } #tool-div { + bottom: 20px !important; padding: 1vh 3vw; background-color: rgba(75, 75, 75, 1); border: 2px solid rgba(80, 80, 80, 1); @@ -111,6 +107,7 @@ img { justify-content: center; height: auto; max-width: 90vw; + width: 50vw; box-shadow: 0 4px 10px rgba(16, 16, 16, 0.5); } @@ -127,14 +124,9 @@ img { } .tool-media { - height: 200px; - border-radius: 10px; + max-width: 30vw; + border-radius: 5px; margin: 10px; - transition: 0.25s ease-in-out; -} - -.tool-image.active { - opacity: 1; } .visit-tool { diff --git a/theme.js b/theme.js index 53c2591..0e4f037 100644 --- a/theme.js +++ b/theme.js @@ -1,39 +1,40 @@ const themeToggle = document.getElementById('themeToggle'); -const topbar = document.getElementById('topbar') -const toolContainer = document.getElementById('tool-div') -const visit = document.getElementById('visit') -const welcome = document.getElementById('welcome') -const homeButton = document.getElementById('home') +const topbar = document.getElementById('topbar'); +const toolContainers = document.querySelectorAll('#tool-div'); +const visit = document.getElementById('visit'); +const welcome = document.getElementById('welcome'); let isLightMode = false; themeToggle.addEventListener('click', function() { - if (!isLightMode) { - document.body.style.backgroundColor = '#C8C8C8'; - topbar.style.backgroundColor = "#B0B0B0"; - topbar.style.borderColor = "#aeaeae"; - - - home.style.backgroundColor = "#909090"; - home.style.borderColor = "#858585"; - - - toolContainer.style.backgroundColor = "#B0B0B0"; - toolContainer.style.borderColor = "#A5A5A5"; + if (!isLightMode) { isLightMode = true; + document.body.style.backgroundColor = '#C8C8C8'; + topbar.style.backgroundColor = "#B0B0B0E1"; + topbar.style.borderColor = "#aeaeaeE1"; + footer.style.backgroundColor = "#B0B0B080"; + footer.style.backgroundColor = "#A5A5A580"; - let children = toolContainer.children; - for (let i = 0; i < children.length; i++) { - children[i].style.color = "#1E1E1E"; - } + + toolContainers.forEach(toolContainer => { + toolContainer.style.backgroundColor = "#B0B0B0"; + toolContainer.style.borderColor = "#A5A5A5"; + + let children = toolContainer.children; + for (let i = 0; i < children.length; i++) { + children[i].style.color = "#1E1E1E"; + } + }); let welcomeChildren = welcome.querySelectorAll('*'); - for (let o = 0; o< welcomeChildren.length; o++) { + for (let o = 0; o < welcomeChildren.length; o++) { welcomeChildren[o].style.color = "#1E1E1E"; } - visit.style.backgroundColor = "#8CC8A5"; - visit.style.borderColor = "#A0DCB9"; + if (visit) { + visit.style.backgroundColor = "#8CC8A5"; + visit.style.borderColor = "#A0DCB9"; + } themeToggle.innerHTML = ` @@ -41,7 +42,7 @@ themeToggle.addEventListener('click', function() { - + @@ -55,29 +56,31 @@ themeToggle.addEventListener('click', function() { document.body.style.backgroundColor = '#2a2a2a'; - home.style.backgroundColor = "#4b4b4b"; - home.style.borderColor = "#505050"; + toolContainers.forEach(toolContainer => { + let children = toolContainer.children; + for (let i = 0; i < children.length; i++) { + children[i].style.color = "#f0f0f0"; + } - let children = toolContainer.children; - for (let i = 0; i < children.length; i++) { - children[i].style.color = "#f0f0f0"; - } + toolContainer.style.backgroundColor = "#4b4b4b"; + toolContainer.style.borderColor = "#505050"; + }); let welcomeChildren = welcome.querySelectorAll('*'); - for (let o = 0; o< welcomeChildren.length; o++) { + for (let o = 0; o < welcomeChildren.length; o++) { welcomeChildren[o].style.color = "#f0f0f0"; } topbar.style.backgroundColor = "rgba(59, 59, 59, 0.885)"; - topbar.style.borderColor = "#505050"; + topbar.style.borderColor = "#505050E1"; + footer.style.backgroundColor = "#3b3b3b80"; + footer.style.backgroundColor = "#46464680"; - toolContainer.style.backgroundColor = "#4b4b4b"; - toolContainer.style.borderColor = "#505050"; - - visit.style.backgroundColor = "#3c7855"; - visit.style.borderColor = "#4b8764"; + if (visit) { + visit.style.backgroundColor = "#3c7855"; + visit.style.borderColor = "#4b8764"; + } themeToggle.innerHTML = ` `; - } -}); +}); \ No newline at end of file diff --git a/tools.js b/tools.js new file mode 100644 index 0000000..8946254 --- /dev/null +++ b/tools.js @@ -0,0 +1,50 @@ +async function fetchTools() { + try { + const response = await fetch('tools.json'); + if (!response.ok) { + throw new Error("VPS response is bad"); + } + const tools = await response.json(); + return tools; + } catch (error) { + console.error("Failed to fetch tools:", error); + return []; + }; +}; + +function renderTools(filteredTools) { + const toolList = document.getElementById('toolsMain'); + toolList.innerHTML = ""; + + if (filteredTools.length === 0) { + toolList.innerHTML = "
No tools match the selected filter.
" + return; + } + + filteredTools.sort((a, b) => b.description - a.description); + filteredTools.forEach(tool => { + const toolItem = document.createElement("div"); + toolItem.id = "tool-div"; + + toolItem.innerHTML = ` +

${tool.name}

+

${tool.subheader}

+

${tool.description}

+ ${tool.name} Image + Try the "${tool.name}" tool! + `; + + toolList.appendChild(toolItem); + }); +}; + +async function filterTools(filterType) { + const tools = await fetchTools(); + let filteredTools; + if (filterType) { + filteredTools = tools; + } + renderTools(filteredTools); +} + +filterTools('all'); diff --git a/tools.json b/tools.json new file mode 100644 index 0000000..b4668f7 --- /dev/null +++ b/tools.json @@ -0,0 +1,14 @@ +[ + { + "name": "Mouse Test", + "subheader": "Test your mouse's keys", + "description": "This tool allows you to test your mouse's keys: Left Click; Middle Click; Right Click.", + "url": "/click" + }, + { + "name": "Keyboard Test", + "subheader": "Test your keyboard's keys", + "description": "This tool allows you to test your keyboard's keys. To start, press any key to show its presses.", + "url": "/keyboard" + } +] \ No newline at end of file