commit 38b5cc6a276ebced54b5b0d6ec0852d74f91c7f8
parent deb68635a5fa708c15dc8aacaab9e9daf3e14a45
Author: underd0g1 <hide4@comcast.net>
Date:   Tue, 15 Sep 2020 00:49:56 -0400
added base
Diffstat:
4 files changed, 230 insertions(+), 0 deletions(-)
diff --git a/css/style.css b/css/style.css
@@ -0,0 +1,125 @@
+@font-face {
+    font-family: "Roboto Mono";
+    src: url("../fonts/roboto-mono-medium.ttf");
+}
+
+:root {
+    --font: "Roboto Mono";
+    --background: #0f0e17;
+    --foreground: #fffffe;
+    --pink: #e53170;
+    --red: #f25f4c;
+    --orange: #ff8906;
+    --branch: 1px solid #a7a9be;
+}
+
+html {
+    font-size: 18px;
+    overflow: hidden;
+}
+
+body {
+    background: var(--background);
+    width: 100vw;
+    height: 100vh;
+    margin: 0;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+
+.prompt {
+    font-family: var(--font);
+    color: var(--foreground);
+}
+
+.prompt~.prompt {
+    padding: 1.5rem 0 0.3125rem;
+}
+
+span {
+    color: var(--pink);
+}
+
+h1 {
+    display: inline;
+    font-family: var(--font);
+    font-size: 1rem;
+    font-weight: normal;
+    color: var(--red);
+    cursor: pointer;
+}
+
+.tree>ul {
+    margin: 0;
+    padding-left: 1rem;
+}
+
+ul {
+    list-style: none;
+    padding-left: 2.5rem;
+}
+
+li {
+    position: relative;
+}
+
+li.hideChildren>ul {
+    display: none;
+}
+
+li::before,
+li::after {
+    content: "";
+    position: absolute;
+    left: -0.75rem;
+}
+
+li::before {
+    border-top: var(--branch);
+    top: 0.75rem;
+    width: 0.5rem;
+}
+
+li::after {
+    border-left: var(--branch);
+    height: 100%;
+    top: 0.25rem;
+}
+
+li:last-child::after {
+    height: 0.5rem;
+}
+
+a {
+    font-family: var(--font);
+    font-size: 1rem;
+    color: var(--foreground);
+    text-decoration: none;
+    outline: none;
+}
+
+a:hover,
+a:focus {
+    color: var(--background);
+    background: var(--orange);
+}
+
+form h1 {
+    padding-left: 0.125rem;
+}
+
+/* you can fill the texarea above/below? the Viewport */
+#search {
+    font-family: var(--font);
+    font-size: 1rem;
+    color: var(--foreground);
+    background-color: var(--background);
+    border: none;
+    outline: none;
+    position: absolute;
+    width: 50vw;
+    height: 50vh;
+    word-break: break-all;
+    resize: none;
+}+
\ No newline at end of file
diff --git a/fonts/roboto-mono-medium.ttf b/fonts/roboto-mono-medium.ttf
Binary files differ.
diff --git a/index.html b/index.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="UTF-8">
+    <link rel="stylesheet" type="text/css" href="css/style.css">
+    <title>Home</title>
+</head>
+
+<body>
+    <main>
+        <div class="prompt">[<span data-Name>user</span>@<span>l0bster</span> ~]$ ls ++</div>
+        <div class="tree">
+            <h1>.</h1>
+            <ul id="list">
+                <li>
+                    <h1>[error]</h1>
+                </li>
+            </ul>
+        </div>
+        <div class="prompt">[<span data-Name>user</span>@<span>l0bster</span> ~]$ ddg</div>
+
+        <form action="https://duckduckgo.com/" method="GET" autocomplete="off">
+            <h1>search: </h1>
+            <textarea type="text" name="q" id="search" wrap="hard" autofocus></textarea>
+        </form>
+    </main>
+</body>
+
+</html>
+
+<script src="script/script.js"></script>
diff --git a/script/script.js b/script/script.js
@@ -0,0 +1,72 @@
+const Config = {
+    name: "user",
+    scale: 1,
+    Links: [
+        [
+            "site",
+            [
+                ["link", "https://www.example.com"],
+                ["link", "https://www.example.com"]
+            ]
+        ],
+        [
+            "site",
+            [
+                ["link", "https://www.example.com"],
+                ["link", "https://www.example.com"]
+            ]
+        ],
+        [
+            "site",
+            [
+                ["link", "https://www.example.com"],
+                ["link", "https://www.example.com"],
+                ["link", "https://www.example.com"]
+            ]
+        ],
+        [
+            "site",
+            [
+                ["link", "https://www.example.com"],
+                ["link", "https://www.example.com"],
+                ["link", "https://www.example.com"],
+                ["link", "https://www.example.com"]
+            ]
+        ]
+    ]
+}
+
+const Main = (() => {
+    const list = document.getElementById("list");
+    const names = document.querySelectorAll("[data-Name]");
+    const search = document.getElementById("search");
+    const form = document.forms[0];
+
+    const init = () => {
+        list.innerHTML = Config.Links.map(([gName, Links]) => `
+            <li>
+                <h1 onclick="this.parentNode.classList.toggle('hideChildren')">${gName}</h1>
+                <ul>
+                    ${Links.map(([lName, url]) => `
+                        <li>
+                            <a href="${url}">${lName}</a>
+                        </li>`
+                    ).join("")}
+                </ul>
+            </li>` 
+        ).join("")
+        
+        names.forEach(el => {
+            el.innerText = Config.name;
+        });
+
+        document.addEventListener("keydown", e => e.key.length === 1 && search.focus());
+        search.addEventListener("keydown", () => (window.event ? event.keyCode : e.which) == 13 && form.submit());
+    };
+
+    return {
+        init,
+    };
+})();
+
+Main.init()