diff --git a/cdn.html b/cdn.html index cac2835..65d50a6 100644 --- a/cdn.html +++ b/cdn.html @@ -34,20 +34,7 @@ - - +
@@ -319,6 +306,7 @@ Content-Length: [file-size]
+ diff --git a/css/cdn.css b/css/cdn.css index 6680442..6b8db74 100644 --- a/css/cdn.css +++ b/css/cdn.css @@ -102,6 +102,65 @@ code { } .nav-menu a:hover { color: var(--text); opacity: 1; } +.nav-dropdown { + position: relative; +} +.nav-dropdown details { + position: relative; +} +.nav-dropdown summary { + list-style: none; + cursor: pointer; + font-size: 0.875rem; + color: var(--text-muted); + letter-spacing: 0.01em; + display: inline-flex; + align-items: center; + gap: 0.25rem; +} +.nav-dropdown summary::-webkit-details-marker { display: none; } +.nav-dropdown summary:hover, +.nav-dropdown details[open] summary { + color: var(--text); +} +.nav-dropdown .dropdown-menu { + position: absolute; + left: 0; + top: calc(100% + 0.5rem); + min-width: 220px; + margin: 0; + padding: 0.5rem 0; + background: var(--bg); + border: 1px solid var(--border); + border-radius: 0.75rem; + box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08); + list-style: none; + z-index: 200; + display: none; +} +.nav-dropdown details[open] .dropdown-menu { display: block; } +.nav-dropdown .dropdown-menu li { white-space: nowrap; } +.nav-dropdown .dropdown-menu a, +.nav-dropdown .dropdown-disabled { + display: block; + padding: 0.5rem 1rem; + color: var(--text-muted); + font-size: 0.875rem; +} +.nav-dropdown .dropdown-menu a:hover { + background: rgba(255,255,255,0.04); + color: var(--text); +} +.nav-dropdown .dropdown-disabled { cursor: default; color: var(--text-dim); } +.nav-dropdown summary:focus { outline: none; } +@media (max-width: 600px) { + .nav-dropdown .dropdown-menu { + position: static; + box-shadow: none; + border: none; + } +} + /* ── Main ── */ .main-content { diff --git a/css/favfinder.css b/css/favfinder.css index 5737451..ae3fc4e 100644 --- a/css/favfinder.css +++ b/css/favfinder.css @@ -100,6 +100,65 @@ code { } .nav-menu a:hover { color: var(--text); opacity: 1; } +.nav-dropdown { + position: relative; +} +.nav-dropdown details { + position: relative; +} +.nav-dropdown summary { + list-style: none; + cursor: pointer; + font-size: 0.875rem; + color: var(--text-muted); + letter-spacing: 0.01em; + display: inline-flex; + align-items: center; + gap: 0.25rem; +} +.nav-dropdown summary::-webkit-details-marker { display: none; } +.nav-dropdown summary:hover, +.nav-dropdown details[open] summary { + color: var(--text); +} +.nav-dropdown .dropdown-menu { + position: absolute; + left: 0; + top: calc(100% + 0.5rem); + min-width: 220px; + margin: 0; + padding: 0.5rem 0; + background: var(--bg); + border: 1px solid var(--border); + border-radius: 0.75rem; + box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08); + list-style: none; + z-index: 200; + display: none; +} +.nav-dropdown details[open] .dropdown-menu { display: block; } +.nav-dropdown .dropdown-menu li { white-space: nowrap; } +.nav-dropdown .dropdown-menu a, +.nav-dropdown .dropdown-disabled { + display: block; + padding: 0.5rem 1rem; + color: var(--text-muted); + font-size: 0.875rem; +} +.nav-dropdown .dropdown-menu a:hover { + background: rgba(255,255,255,0.04); + color: var(--text); +} +.nav-dropdown .dropdown-disabled { cursor: default; color: var(--text-dim); } +.nav-dropdown summary:focus { outline: none; } +@media (max-width: 600px) { + .nav-dropdown .dropdown-menu { + position: static; + box-shadow: none; + border: none; + } +} + /* ── Main ── */ .main-content { diff --git a/css/imrs.css b/css/imrs.css index bde5553..340d53e 100644 --- a/css/imrs.css +++ b/css/imrs.css @@ -100,6 +100,65 @@ code { } .nav-menu a:hover { color: var(--text); opacity: 1; } +.nav-dropdown { + position: relative; +} +.nav-dropdown details { + position: relative; +} +.nav-dropdown summary { + list-style: none; + cursor: pointer; + font-size: 0.875rem; + color: var(--text-muted); + letter-spacing: 0.01em; + display: inline-flex; + align-items: center; + gap: 0.25rem; +} +.nav-dropdown summary::-webkit-details-marker { display: none; } +.nav-dropdown summary:hover, +.nav-dropdown details[open] summary { + color: var(--text); +} +.nav-dropdown .dropdown-menu { + position: absolute; + left: 0; + top: calc(100% + 0.5rem); + min-width: 220px; + margin: 0; + padding: 0.5rem 0; + background: var(--bg); + border: 1px solid var(--border); + border-radius: 0.75rem; + box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08); + list-style: none; + z-index: 200; + display: none; +} +.nav-dropdown details[open] .dropdown-menu { display: block; } +.nav-dropdown .dropdown-menu li { white-space: nowrap; } +.nav-dropdown .dropdown-menu a, +.nav-dropdown .dropdown-disabled { + display: block; + padding: 0.5rem 1rem; + color: var(--text-muted); + font-size: 0.875rem; +} +.nav-dropdown .dropdown-menu a:hover { + background: rgba(255,255,255,0.04); + color: var(--text); +} +.nav-dropdown .dropdown-disabled { cursor: default; color: var(--text-dim); } +.nav-dropdown summary:focus { outline: none; } +@media (max-width: 600px) { + .nav-dropdown .dropdown-menu { + position: static; + box-shadow: none; + border: none; + } +} + /* ── Main ── */ .main-content { diff --git a/css/index.css b/css/index.css index b21e881..5b806d9 100644 --- a/css/index.css +++ b/css/index.css @@ -96,6 +96,65 @@ code { } .nav-menu a:hover { color: var(--text); opacity: 1; } +.nav-dropdown { + position: relative; +} +.nav-dropdown details { + position: relative; +} +.nav-dropdown summary { + list-style: none; + cursor: pointer; + font-size: 0.875rem; + color: var(--text-muted); + letter-spacing: 0.01em; + display: inline-flex; + align-items: center; + gap: 0.25rem; +} +.nav-dropdown summary::-webkit-details-marker { display: none; } +.nav-dropdown summary:hover, +.nav-dropdown details[open] summary { + color: var(--text); +} +.nav-dropdown .dropdown-menu { + position: absolute; + left: 0; + top: calc(100% + 0.5rem); + min-width: 220px; + margin: 0; + padding: 0.5rem 0; + background: var(--bg); + border: 1px solid var(--border); + border-radius: 0.75rem; + box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08); + list-style: none; + z-index: 200; + display: none; +} +.nav-dropdown details[open] .dropdown-menu { display: block; } +.nav-dropdown .dropdown-menu li { white-space: nowrap; } +.nav-dropdown .dropdown-menu a, +.nav-dropdown .dropdown-disabled { + display: block; + padding: 0.5rem 1rem; + color: var(--text-muted); + font-size: 0.875rem; +} +.nav-dropdown .dropdown-menu a:hover { + background: rgba(255,255,255,0.04); + color: var(--text); +} +.nav-dropdown .dropdown-disabled { cursor: default; color: var(--text-dim); } +.nav-dropdown summary:focus { outline: none; } +@media (max-width: 600px) { + .nav-dropdown .dropdown-menu { + position: static; + box-shadow: none; + border: none; + } +} + /* ── Main ── */ .main-content { diff --git a/imrs.html b/imrs.html index 55749f5..8b2e830 100644 --- a/imrs.html +++ b/imrs.html @@ -32,20 +32,7 @@ - - +
@@ -149,6 +136,7 @@ IMRS, or Image Media Reduction System, is a simple tool that runs a Cloudflare W
+ diff --git a/index.html b/index.html index 142cdc4..e71724b 100644 --- a/index.html +++ b/index.html @@ -46,20 +46,7 @@ - - +
@@ -205,6 +192,7 @@ + diff --git a/js/header.js b/js/header.js new file mode 100644 index 0000000..4b8a766 --- /dev/null +++ b/js/header.js @@ -0,0 +1,31 @@ +const headerHtml = ` + +`; + +document.body.insertAdjacentHTML('afterbegin', headerHtml); diff --git a/testing/favfinder.html b/testing/favfinder.html index 52132fe..151d762 100644 --- a/testing/favfinder.html +++ b/testing/favfinder.html @@ -31,20 +31,7 @@ - - +
@@ -200,6 +187,7 @@
+