diff options
author | delta <darkussdelta@gmail.com> | 2025-09-17 23:29:44 +0200 |
---|---|---|
committer | delta <darkussdelta@gmail.com> | 2025-09-17 23:29:44 +0200 |
commit | 088a18410e43a209a4864bccad5ddb89a7ee1d5d (patch) | |
tree | 7f7db9ad58e0e2c3ec9141b7b54668ee01164a13 /assets | |
parent | 16bdab2a899bf4ed120e10a889c320304b561130 (diff) |
asides, hacker webring stuff and some more
Diffstat (limited to 'assets')
-rw-r--r-- | assets/button.png | bin | 0 -> 646 bytes | |||
-rw-r--r-- | assets/css/main.css | 174 | ||||
-rw-r--r-- | assets/js/main.js | 41 |
3 files changed, 158 insertions, 57 deletions
diff --git a/assets/button.png b/assets/button.png Binary files differnew file mode 100644 index 0000000..dacd53a --- /dev/null +++ b/assets/button.png diff --git a/assets/css/main.css b/assets/css/main.css index 835b6f9..c2b56c0 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -32,10 +32,11 @@ --pink-bright: oklch(90% 0.06662 9.2146); --border-radius: 5px; - --border-width: 2px; + --border-width: 1px; --padding: 5px; --padding-big: 10px; --easing: cubic-bezier(0.2, 0.0, 0, 1.0); + --arrow-size: 1em; } body { @@ -71,7 +72,7 @@ body { left: 50%; top: 50%; z-index: -2; - animation: scroll 12s linear infinite; + animation: scroll 16s linear infinite; } @keyframes scroll { @@ -146,30 +147,42 @@ nav > ul { main { flex-grow: 1; width: 80vw; - line-height: 1.6; + line-height: 1.4; + box-sizing: border-box; } nav > ul { display: flex; } +nav { + z-index: 999; +} + main, nav { padding: var(--padding-big); } nav li:not(:last-of-type)::after, -footer > span:not(:last-of-type)::after { +footer > div > span:not(:last-of-type)::after { content: "|"; margin-left: var(--padding); margin-right: var(--padding); color: var(--border); } +footer > div { + line-height: 1.5; +} + footer { text-align: center; padding: var(--padding); font-size: 0.8em; + display: flex; + flex-direction: column; + gap: var(--padding); } a, @@ -177,7 +190,7 @@ a:link { color: var(--yellow); } -a:visited { +a:not(.volatile):visited { color: var(--pink); } @@ -190,18 +203,35 @@ a:active { color: var(--yellow); } +.anchor { + order: -1; + text-decoration: none; +} + +.anchor::after { + content: "#"; +} + +h1, h2 { + line-height: 1; + display: flex; + align-items: center; + gap: var(--padding-big); +} + +h1::after, h2::after { + content: ""; + height: var(--border-width); + background-color: var(--border); + flex-grow: 1; +} + h1 { font-size: 1.5em; - margin-bottom: calc(var(--padding-big) * 2); } h2 { font-size: 1.25em; - margin-bottom: calc(var(--padding-big) * 1.5); -} - -p:not(:last-of-type) { - margin-bottom: var(--padding-big); } main li { @@ -222,19 +252,131 @@ main ul { flex-direction: column; } -main ol:not(:last-child), -main ul:not(:last-child) { +main ol, +main ul, +p, +pre, +h1, h2 +{ margin-bottom: var(--padding-big); } +main > :last-child { + margin-bottom: 0; +} + strong { font-weight: bold; } code { - background-color: var(--bg-low); - padding: var(--padding); border-radius: var(--border-radius); + padding-inline: calc(var(--padding) / 2); font-family: "Aporetic Mono", monospace; - text-wrap: nowrap; + border: var(--border-width) solid var(--border); + overflow-wrap: anywhere; +} + +pre { + overflow: hidden; +} + +pre > code { + display: block; + padding: calc(var(--padding) * 2); + position: relative; + line-height: 1.3; + overflow-wrap: break-word; + background: transparent; + overflow-x: scroll; +} + +pre > code[data-lang]::after { + content: attr(data-lang); + position: absolute; + top: 0; + right: 0; + padding: var(--padding); + border-radius: 0 var(--border-radius); + border-bottom: var(--border-width) solid var(--border); + border-left: var(--border-width) solid var(--border); + background-color: var(--bg-high); + transition: transform 0.2s var(--easing); +} + +pre > code[data-lang]:hover::after { + transform: translateX(100%); +} + +@media (max-width: 130ch) { + aside { + padding: var(--padding-big); + font-size: 0.9em; + box-sizing: border-box; + border: var(--border-width) solid var(--border); + border-radius: var(--border-radius); + background-color: var(--bg-high); + position: relative; + margin-bottom: var(--padding-big); + margin-top: calc(var(--padding-big) + var(--arrow-size) / 2); + } + + aside::after, + aside::before { + content: ""; + border-right: var(--arrow-size) solid transparent; + border-left: var(--arrow-size) solid transparent; + position: absolute; + width: 0; + height: 0; + left: 50%; + transform: translateX(-50%); + } + + aside::before { + border-bottom: var(--arrow-size) solid var(--border); + top: calc(var(--arrow-size) * -1); + } + + aside::after { + border-bottom: var(--arrow-size) solid var(--bg-high); + top: calc(var(--arrow-size) * -1 + var(--border-width)); + } +} + +@media (min-width: 130ch) { + aside { + position: absolute; + right: var(--padding-big); + max-width: calc(10vw - var(--padding-big)); + padding: var(--padding-big); + font-size: 0.9em; + box-sizing: border-box; + border: var(--border-width) solid var(--border); + border-radius: var(--border-radius); + background-color: var(--bg-high); + transform: translateY(calc(-50% - 1lh)); + } + + aside::after, + aside::before { + content: ""; + border-top: var(--arrow-size) solid transparent; + border-bottom: var(--arrow-size) solid transparent; + position: absolute; + width: 0; + height: 0; + top: 50%; + transform: translateY(-50%); + } + + aside::before { + border-right: var(--arrow-size) solid var(--border); + left: calc(var(--arrow-size) * -1); + } + + aside::after { + border-right: var(--arrow-size) solid var(--bg-high); + left: calc(var(--arrow-size) * -1 + var(--border-width)); + } } diff --git a/assets/js/main.js b/assets/js/main.js deleted file mode 100644 index 5bc2d41..0000000 --- a/assets/js/main.js +++ /dev/null @@ -1,41 +0,0 @@ -// Toggle the navigation menu and theme -document.addEventListener("DOMContentLoaded", function () { - var menuToggle = document.getElementById("menu-toggle"); - var mainNav = document.getElementById("main-nav"); - var themeToggle = document.getElementById("theme-toggle"); - var body = document.body; - - // Menu toggle functionality - menuToggle.addEventListener("click", function () { - mainNav.classList.toggle("open"); - }); - - // Theme toggle functionality - themeToggle.addEventListener("click", function () { - // Toggle between 'light' and 'dark' themes - var currentTheme = body.getAttribute("data-theme") || "light"; - var newTheme = currentTheme === "dark" ? "light" : "dark"; - body.setAttribute("data-theme", newTheme); - localStorage.setItem("theme", newTheme); - }); - - // On page load, set the theme from localStorage or system preference - var storedTheme = localStorage.getItem("theme"); - if (storedTheme) { - body.setAttribute("data-theme", storedTheme); - } else { - // Detect system preference - var prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)").matches; - var defaultTheme = prefersDarkScheme ? "dark" : "light"; - body.setAttribute("data-theme", defaultTheme); - } - - // Listen for changes in the system color scheme - window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", function (e) { - var storedTheme = localStorage.getItem("theme"); - if (!storedTheme) { - var newColorScheme = e.matches ? "dark" : "light"; - body.setAttribute("data-theme", newColorScheme); - } - }); -}); |