diff --git a/public/css/styles.css b/public/css/styles.css index a11f1c9..8fa1d87 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -151,6 +151,25 @@ input,select,textarea{width:100%;background:transparent;color:var(--text);border .k{padding:2px 6px;border-radius:6px;border:1px solid var(--k-border);background:var(--k-bg)} .foot{color:var(--muted);font-size:13px;margin-top:20px} +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; +} + +.source-link { + color: var(--accent); + text-decoration: none; + font-weight: 500; + transition: color 0.2s ease; + margin-left: auto; +} + +.source-link:hover { + color: var(--accent2); + text-decoration: underline; +} + /* ---- Status indicators ---- */ .status { padding: 8px 12px; diff --git a/public/index.html b/public/index.html index e16d5a1..32b5c42 100644 --- a/public/index.html +++ b/public/index.html @@ -23,7 +23,12 @@
- + diff --git a/public/js/app.js b/public/js/app.js index 1d4f369..03ab77a 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -109,6 +109,10 @@ async function ensureMounted(id){ card.innerHTML = ''; card.append(el('h2',{}, calc.name || meta.name)); if(calc.about) card.append(el('div',{class:'muted'}, calc.about)); + + // Update page title with calculator name + document.title = `${calc.name || meta.name} - calculator.127local.net`; + calc.render(card); enhanceSelects(card); }catch(e){ @@ -142,6 +146,10 @@ async function show(id, params){ const card = await ensureMounted(id); viewEl.append(card); attachUrlSync(card, id); + } else { + // Update title for already cached calculators + const meta = metaById(id); + document.title = `${meta.name} - calculator.127local.net`; } paramsToForm(viewCache.get(id), params); }