openvibers/openvibe.quest Commits
Sign in with a button on signed-out pages (#160)
Changes
@@@ -365,7 +365,7 @@ ${quests.coinsNote(coinsUi)}body: html`<h1>Your quest log</h1><p>Quest keeps one log per person, across every site. Sign in with OpenVibe to see yours: what you have done, whateach quest still needs, and the badges you have earned.</p>--<p><a href="/auth/login?next=%2Fme">Sign in with OpenVibe</a></p>++<p><a class="sc-btn sc-primary" href="/auth/login?next=%2Fme">Sign in with OpenVibe</a></p><p class="muted">Your progress is read from this site's database only, and only for you. Nobody else's log is shown here, and yours is not shown on anyone else's.</p><p><a href="/how-it-works">How progress works</a> · <a href="/quests">The quests</a></p>`,});@@@ -94,7 +94,8 @@ function renderPage(o) {head: `<meta name="referrer" content="${o.noReferrer ? 'no-referrer' : 'strict-origin-when-cross-origin'}">${appIcon.headTags({ site: 'quest' })}<link rel="stylesheet" href="${asset('css/app.css')}">--${(o.styles || []).map((name) => `<link rel="stylesheet" href="${esc(ovServe.url(name))}">`).join('\n')}++<!-- The shared showcase stylesheet on every page, not only the home: inner pages use its buttons (sc-btn), and without it a sign-in button drew as a bare link (phone sweep, 2026-11-01). It is scoped to its own sc- classes. -->++${[...new Set(['showcase.css', ...(o.styles || [])])].map((name) => `<link rel="stylesheet" href="${esc(ovServe.url(name))}">`).join('\n')}${render(scripts)}<meta name="ov-boost" content="quest@${esc(RELEASE)}"><script src="${ovServe.url('boost.js')}" data-main="#main" defer></script>`,
@@ -365,7 +365,7 @@ ${quests.coinsNote(coinsUi)}
@@ -365,7 +365,7 @@ ${quests.coinsNote(coinsUi)}
body: html`<h1>Your quest log</h1>
body: html`<h1>Your quest log</h1>
<p>Quest keeps one log per person, across every site. Sign in with OpenVibe to see yours: what you have done, what
<p>Quest keeps one log per person, across every site. Sign in with OpenVibe to see yours: what you have done, what
each quest still needs, and the badges you have earned.</p>
each quest still needs, and the badges you have earned.</p>
-<p><a href="/auth/login?next=%2Fme">Sign in with OpenVibe</a></p>
+<p><a class="sc-btn sc-primary" href="/auth/login?next=%2Fme">Sign in with OpenVibe</a></p>
<p class="muted">Your progress is read from this site's database only, and only for you. Nobody else's log is shown here, and yours is not shown on anyone else's.</p>
<p class="muted">Your progress is read from this site's database only, and only for you. Nobody else's log is shown here, and yours is not shown on anyone else's.</p>
<p><a href="/how-it-works">How progress works</a> · <a href="/quests">The quests</a></p>`,
<p><a href="/how-it-works">How progress works</a> · <a href="/quests">The quests</a></p>`,
});
});
@@ -94,7 +94,8 @@ function renderPage(o) {
@@ -94,7 +94,8 @@ function renderPage(o) {
head: `<meta name="referrer" content="${o.noReferrer ? 'no-referrer' : 'strict-origin-when-cross-origin'}">
head: `<meta name="referrer" content="${o.noReferrer ? 'no-referrer' : 'strict-origin-when-cross-origin'}">
${appIcon.headTags({ site: 'quest' })}
${appIcon.headTags({ site: 'quest' })}
<link rel="stylesheet" href="${asset('css/app.css')}">
<link rel="stylesheet" href="${asset('css/app.css')}">
-${(o.styles || []).map((name) => `<link rel="stylesheet" href="${esc(ovServe.url(name))}">`).join('\n')}
+<!-- The shared showcase stylesheet on every page, not only the home: inner pages use its buttons (sc-btn), and without it a sign-in button drew as a bare link (phone sweep, 2026-11-01). It is scoped to its own sc- classes. -->
+${[...new Set(['showcase.css', ...(o.styles || [])])].map((name) => `<link rel="stylesheet" href="${esc(ovServe.url(name))}">`).join('\n')}
${render(scripts)}
${render(scripts)}
<meta name="ov-boost" content="quest@${esc(RELEASE)}">
<meta name="ov-boost" content="quest@${esc(RELEASE)}">
<script src="${ovServe.url('boost.js')}" data-main="#main" defer></script>`,
<script src="${ovServe.url('boost.js')}" data-main="#main" defer></script>`,