feat: unified owner nav bar across admin/builder/dash
This commit is contained in:
parent
19e3cb131f
commit
e8e526f48e
@ -4,6 +4,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>RecordGod — admin</title>
|
||||
<script defer src="/nav.js"></script>
|
||||
<style>
|
||||
:root{--pink:#ff5db1;--ink:#0b0b0d;--panel:#141418;--line:#26262c;--mut:#9a9aa6;--ok:#46d18a;--warn:#e6a046}
|
||||
*{box-sizing:border-box}
|
||||
@ -17,7 +18,7 @@
|
||||
button{padding:9px 13px;border:0;border-radius:8px;background:var(--pink);color:#1a0a14;font:500 14px system-ui;cursor:pointer}
|
||||
button.ghost{background:#1d1d22;color:#ccc;border:1px solid var(--line)}
|
||||
/* layout */
|
||||
#app{display:none;grid-template-columns:212px 1fr;height:100vh}
|
||||
#app{display:none;grid-template-columns:212px 1fr;height:calc(100vh - 44px)}
|
||||
nav{background:#0e0e11;border-right:1px solid var(--line);padding:14px 10px;overflow:auto}
|
||||
nav .brand{font-weight:600;font-size:18px;padding:6px 10px 14px}
|
||||
nav .brand b{color:var(--pink)}
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>RecordGod — storefront builder</title>
|
||||
<script defer src="/nav.js"></script>
|
||||
<style>
|
||||
:root{--pink:#ff5db1;--ink:#0b0b0d;--panel:#141418;--line:#26262c;--mut:#9a9aa6;--ok:#46d18a}
|
||||
*{box-sizing:border-box}
|
||||
@ -14,7 +15,7 @@
|
||||
input,select{padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#0e0e11;color:#eee;font:13px system-ui;width:100%}
|
||||
#gate{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--ink);z-index:20}
|
||||
#gate .b{width:320px;text-align:center}#gate h1{color:var(--pink)}
|
||||
#app{display:none;grid-template-rows:auto 1fr;height:100vh}
|
||||
#app{display:none;grid-template-rows:auto 1fr;height:calc(100vh - 44px)}
|
||||
header{display:flex;align-items:center;gap:14px;padding:11px 18px;border-bottom:1px solid var(--line);background:#0e0e11}
|
||||
header .t{font-weight:600}header .t b{color:var(--pink)}
|
||||
header .sp{flex:1}#status{color:var(--mut);font-size:12px}
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>RecordGod — control room</title>
|
||||
<script defer src="/nav.js"></script>
|
||||
<style>
|
||||
:root{--pink:#ff5db1;--ink:#0c0c0e;--mut:#9a9aa6;--card:#141418;--line:#26262c}
|
||||
*{box-sizing:border-box}
|
||||
|
||||
32
site/nav.js
Normal file
32
site/nav.js
Normal file
@ -0,0 +1,32 @@
|
||||
// Unified RecordGod owner nav — included on the back-office pages (admin / builder / dash).
|
||||
// One source of truth: edit the links here, every page updates. Kept OFF the customer shop/store.
|
||||
(function () {
|
||||
const LINKS = [
|
||||
{ href: '/admin', label: 'Admin' },
|
||||
{ href: '/builder', label: 'Builder' },
|
||||
{ href: '/shop', label: 'Shop' },
|
||||
{ href: '/store/', label: '3D store' },
|
||||
];
|
||||
const here = (location.pathname.replace(/\/+$/, '') || '/');
|
||||
const css = document.createElement('style');
|
||||
css.textContent =
|
||||
'#rg-nav{position:fixed;top:0;left:0;right:0;height:44px;display:flex;align-items:center;gap:4px;' +
|
||||
'padding:0 16px;background:#0a0a0c;border-bottom:1px solid #26262c;z-index:99999;font:14px system-ui}' +
|
||||
'#rg-nav .b{font-weight:700;color:#eee;text-decoration:none;margin-right:14px}' +
|
||||
'#rg-nav .b i{color:#ff5db1;font-style:normal}' +
|
||||
'#rg-nav a.l{color:#cfcfd6;text-decoration:none;padding:6px 11px;border-radius:7px}' +
|
||||
'#rg-nav a.l:hover{background:#17171c}' +
|
||||
'#rg-nav a.l.on{background:#221a20;color:#ff5db1}' +
|
||||
'#rg-nav .sp{flex:1}' +
|
||||
'body{padding-top:44px}';
|
||||
document.head.appendChild(css);
|
||||
const bar = document.createElement('nav');
|
||||
bar.id = 'rg-nav';
|
||||
bar.innerHTML = '<a class="b" href="/">Record<i>God</i></a>' +
|
||||
LINKS.map(p => {
|
||||
const on = here === p.href.replace(/\/+$/, '');
|
||||
return `<a class="l${on ? ' on' : ''}" href="${p.href}">${p.label}</a>`;
|
||||
}).join('') +
|
||||
'<span class="sp"></span>';
|
||||
document.body.insertBefore(bar, document.body.firstChild);
|
||||
})();
|
||||
Loading…
Reference in New Issue
Block a user