openvibers/openvibe.rent Commits
Sign in with a button on signed-out pages (#174)
Changes
@@@ -92,3 +92,7 @@ button.sc-btn.sc-primary { border: 0; }/* The sites the search-everywhere form opens (home); the results page has css/everywhere.css. */.ew-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 12px 0 6px; }.ew-chips li { padding: 5px 11px; border-radius: 999px; border: 1px solid var(--border, #1f2d47); background: var(--bg-card, #131c2e); font-size: .9rem; }++++/* A sign-in prompt: the sentence, then the button under it (2026-11-01). */++.notice.signin-prompt { display: grid; gap: 12px; justify-items: start; }++.notice.signin-prompt p { margin: 0; }@@@ -76,7 +76,7 @@ function createPageRoutes(ctx) {const stateBadge = (st) => badge(STATE_TEXT[st] || st, STATE_KIND[st] || '');const priceOf = (row) => html`<b class="price">${listings.priceText(row)}</b>`;const whereOf = (row) => [row.neighbourhood, row.city, row.country].filter(Boolean).join(', ');-- const signInPrompt = (what, next) => html`<div class="notice">${what} <a href="/auth/login?next=${encodeURIComponent(next)}">Sign in with OpenVibe</a>.</div>`;++ const signInPrompt = (what, next) => html`<div class="notice signin-prompt"><p>${what}</p><p><a class="sc-btn sc-primary" href="/auth/login?next=${encodeURIComponent(next)}">Sign in with OpenVibe</a></p></div>`;/** HUD's Fair Market Rent for a listing's city and size (the card's short line), or null. */const fmrForRow = (row) => {@@@ -133,7 +133,8 @@ function renderPage(o) {${appIcon.headTags({ site: 'rent' })}<link rel="stylesheet" href="${asset('css/app.css')}">${o.feed ? `<link rel="alternate" type="application/atom+xml" title="${esc(o.feed.title)}" href="${esc(o.feed.href)}">` : ''}--${(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')}${(o.localStyles || []).map((rel) => `<link rel="stylesheet" href="${asset(rel)}">`).join('\n')}${render(scripts)}<meta name="ov-boost" content="rent@${esc(RELEASE)}">@@@ -32,7 +32,7 @@ const BUDGETS = {jsBrotliKB: 80.8, // 80.2 openvibe-shared 4.70.0 (2026-11-01: the app bar, busy(), skeletons, view transitions); 79.5 with openvibe-shared 4.59.0: the Pair mark beside the name, set in the brand face (2026-10-31); 78.2 with openvibe-shared 4.52.0: the Dock's loader and its Chats tab (2026-10-30); 77.6 with openvibe-shared 4.48.0 (the site switcher on the mark, the menu's Start tab and quick tools; Kit's touch hit areas and the phone navbar fix, 4.44-4.47.3); 76.1 with openvibe-shared 4.43.0 (room.css carries the kit tokens, 4.39.1; the kit's 4.39.0 rules); 74.2 openvibe-shared 4.25.0: the menu's orb beside the brand, both balances on phones, messages, the account sheet on phones and the bar stepping away on phones; 70.5 Shared 4.17.0: OpenCoins and Vibes chips (wallet: true) in the navbar; 67.9 openvibe-shared 4.15 footer: the compact footer opens into the whole one, and the pulse line; 65.3 Shared 4.12.0: the light/dark switch, the seasonal mark and the theme pairs; 56.5cssFiles: 5, // 5 the short home (2026-10-29): + /shared/kit.css (numbers strip, search pill, folds) and /shared/room.css (cards, rails); 3 (app.css, the cached /shared/showcase.css, css/home.css)cssRawKB: 106, // 104.8 with openvibe-shared 4.82.0: the motion tokens in kit.css and room.css (2026-11-01); 102.7 with openvibe-shared 4.81.0: shape and elevation tokens in kit.css and room.css (2026-11-01); 98.3 openvibe-shared 4.70.0 (2026-11-01: the app bar, busy(), skeletons, view transitions); 94.8 with openvibe-shared 4.62.0: the shared sidebar in kit.css, the glyphs and their fonts (2026-10-31); 89.6 the phone home (2026-10-30: the fold rules for the questions and the other OpenVibe places); 78.3 the short home (2026-10-29): kit.css 25.6 + room.css 15.7 KB (the shared numbers, search, folds, cards and rails; home.css shrank to what the homes still draw): the page shed 10 of its 14.6 phone screens; 37 openvibe-shared 4.26.1 (hero visual); 31.5 with Shared 4.13.0 (2026-10-26: account links); 25.5 with the home's cards, ranks, chips and questions; 19.4 before-- cssBrotliKB: 23.5, // 23.2 with openvibe-shared 4.82.0: the motion tokens in kit.css and room.css (2026-11-01); 22.7 with openvibe-shared 4.81.0: shape and elevation tokens in kit.css and room.css (2026-11-01); 20.8 with openvibe-shared 4.62.0: the shared sidebar in kit.css, the glyphs and their fonts (2026-10-31); 20.0 the phone home (2026-10-30: the fold rules for the questions and the other OpenVibe places); 17.4 the short home (2026-10-29): kit.css and room.css; 8.1 openvibe-shared 4.26.1 (hero visual); 7 with Shared 4.13.0 (2026-10-26: account links); 5.9; 4.6 before++ cssBrotliKB: 24, // 23.6 with 2026-11-01: sign-in prompt layout (2026-11-01); 23.2 with openvibe-shared 4.82.0: the motion tokens in kit.css and room.css (2026-11-01); 22.7 with openvibe-shared 4.81.0: shape and elevation tokens in kit.css and room.css (2026-11-01); 20.8 with openvibe-shared 4.62.0: the shared sidebar in kit.css, the glyphs and their fonts (2026-10-31); 20.0 the phone home (2026-10-30: the fold rules for the questions and the other OpenVibe places); 17.4 the short home (2026-10-29): kit.css and room.css; 8.1 openvibe-shared 4.26.1 (hero visual); 7 with Shared 4.13.0 (2026-10-26: account links); 5.9; 4.6 beforeexternalFiles: 0, // 0};
@@ -92,3 +92,7 @@ button.sc-btn.sc-primary { border: 0; }
@@ -92,3 +92,7 @@ button.sc-btn.sc-primary { border: 0; }
/* The sites the search-everywhere form opens (home); the results page has css/everywhere.css. */
/* The sites the search-everywhere form opens (home); the results page has css/everywhere.css. */
.ew-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 12px 0 6px; }
.ew-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 12px 0 6px; }
.ew-chips li { padding: 5px 11px; border-radius: 999px; border: 1px solid var(--border, #1f2d47); background: var(--bg-card, #131c2e); font-size: .9rem; }
.ew-chips li { padding: 5px 11px; border-radius: 999px; border: 1px solid var(--border, #1f2d47); background: var(--bg-card, #131c2e); font-size: .9rem; }
+
+/* A sign-in prompt: the sentence, then the button under it (2026-11-01). */
+.notice.signin-prompt { display: grid; gap: 12px; justify-items: start; }
+.notice.signin-prompt p { margin: 0; }
@@ -76,7 +76,7 @@ function createPageRoutes(ctx) {
@@ -76,7 +76,7 @@ function createPageRoutes(ctx) {
const stateBadge = (st) => badge(STATE_TEXT[st] || st, STATE_KIND[st] || '');
const stateBadge = (st) => badge(STATE_TEXT[st] || st, STATE_KIND[st] || '');
const priceOf = (row) => html`<b class="price">${listings.priceText(row)}</b>`;
const priceOf = (row) => html`<b class="price">${listings.priceText(row)}</b>`;
const whereOf = (row) => [row.neighbourhood, row.city, row.country].filter(Boolean).join(', ');
const whereOf = (row) => [row.neighbourhood, row.city, row.country].filter(Boolean).join(', ');
- const signInPrompt = (what, next) => html`<div class="notice">${what} <a href="/auth/login?next=${encodeURIComponent(next)}">Sign in with OpenVibe</a>.</div>`;
+ const signInPrompt = (what, next) => html`<div class="notice signin-prompt"><p>${what}</p><p><a class="sc-btn sc-primary" href="/auth/login?next=${encodeURIComponent(next)}">Sign in with OpenVibe</a></p></div>`;
/** HUD's Fair Market Rent for a listing's city and size (the card's short line), or null. */
/** HUD's Fair Market Rent for a listing's city and size (the card's short line), or null. */
const fmrForRow = (row) => {
const fmrForRow = (row) => {
@@ -133,7 +133,8 @@ function renderPage(o) {
@@ -133,7 +133,8 @@ function renderPage(o) {
${appIcon.headTags({ site: 'rent' })}
${appIcon.headTags({ site: 'rent' })}
<link rel="stylesheet" href="${asset('css/app.css')}">
<link rel="stylesheet" href="${asset('css/app.css')}">
${o.feed ? `<link rel="alternate" type="application/atom+xml" title="${esc(o.feed.title)}" href="${esc(o.feed.href)}">` : ''}
${o.feed ? `<link rel="alternate" type="application/atom+xml" title="${esc(o.feed.title)}" href="${esc(o.feed.href)}">` : ''}
-${(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')}
${(o.localStyles || []).map((rel) => `<link rel="stylesheet" href="${asset(rel)}">`).join('\n')}
${(o.localStyles || []).map((rel) => `<link rel="stylesheet" href="${asset(rel)}">`).join('\n')}
${render(scripts)}
${render(scripts)}
<meta name="ov-boost" content="rent@${esc(RELEASE)}">
<meta name="ov-boost" content="rent@${esc(RELEASE)}">
@@ -32,7 +32,7 @@ const BUDGETS = {
@@ -32,7 +32,7 @@ const BUDGETS = {
jsBrotliKB: 80.8, // 80.2 openvibe-shared 4.70.0 (2026-11-01: the app bar, busy(), skeletons, view transitions); 79.5 with openvibe-shared 4.59.0: the Pair mark beside the name, set in the brand face (2026-10-31); 78.2 with openvibe-shared 4.52.0: the Dock's loader and its Chats tab (2026-10-30); 77.6 with openvibe-shared 4.48.0 (the site switcher on the mark, the menu's Start tab and quick tools; Kit's touch hit areas and the phone navbar fix, 4.44-4.47.3); 76.1 with openvibe-shared 4.43.0 (room.css carries the kit tokens, 4.39.1; the kit's 4.39.0 rules); 74.2 openvibe-shared 4.25.0: the menu's orb beside the brand, both balances on phones, messages, the account sheet on phones and the bar stepping away on phones; 70.5 Shared 4.17.0: OpenCoins and Vibes chips (wallet: true) in the navbar; 67.9 openvibe-shared 4.15 footer: the compact footer opens into the whole one, and the pulse line; 65.3 Shared 4.12.0: the light/dark switch, the seasonal mark and the theme pairs; 56.5
jsBrotliKB: 80.8, // 80.2 openvibe-shared 4.70.0 (2026-11-01: the app bar, busy(), skeletons, view transitions); 79.5 with openvibe-shared 4.59.0: the Pair mark beside the name, set in the brand face (2026-10-31); 78.2 with openvibe-shared 4.52.0: the Dock's loader and its Chats tab (2026-10-30); 77.6 with openvibe-shared 4.48.0 (the site switcher on the mark, the menu's Start tab and quick tools; Kit's touch hit areas and the phone navbar fix, 4.44-4.47.3); 76.1 with openvibe-shared 4.43.0 (room.css carries the kit tokens, 4.39.1; the kit's 4.39.0 rules); 74.2 openvibe-shared 4.25.0: the menu's orb beside the brand, both balances on phones, messages, the account sheet on phones and the bar stepping away on phones; 70.5 Shared 4.17.0: OpenCoins and Vibes chips (wallet: true) in the navbar; 67.9 openvibe-shared 4.15 footer: the compact footer opens into the whole one, and the pulse line; 65.3 Shared 4.12.0: the light/dark switch, the seasonal mark and the theme pairs; 56.5
cssFiles: 5, // 5 the short home (2026-10-29): + /shared/kit.css (numbers strip, search pill, folds) and /shared/room.css (cards, rails); 3 (app.css, the cached /shared/showcase.css, css/home.css)
cssFiles: 5, // 5 the short home (2026-10-29): + /shared/kit.css (numbers strip, search pill, folds) and /shared/room.css (cards, rails); 3 (app.css, the cached /shared/showcase.css, css/home.css)
cssRawKB: 106, // 104.8 with openvibe-shared 4.82.0: the motion tokens in kit.css and room.css (2026-11-01); 102.7 with openvibe-shared 4.81.0: shape and elevation tokens in kit.css and room.css (2026-11-01); 98.3 openvibe-shared 4.70.0 (2026-11-01: the app bar, busy(), skeletons, view transitions); 94.8 with openvibe-shared 4.62.0: the shared sidebar in kit.css, the glyphs and their fonts (2026-10-31); 89.6 the phone home (2026-10-30: the fold rules for the questions and the other OpenVibe places); 78.3 the short home (2026-10-29): kit.css 25.6 + room.css 15.7 KB (the shared numbers, search, folds, cards and rails; home.css shrank to what the homes still draw): the page shed 10 of its 14.6 phone screens; 37 openvibe-shared 4.26.1 (hero visual); 31.5 with Shared 4.13.0 (2026-10-26: account links); 25.5 with the home's cards, ranks, chips and questions; 19.4 before
cssRawKB: 106, // 104.8 with openvibe-shared 4.82.0: the motion tokens in kit.css and room.css (2026-11-01); 102.7 with openvibe-shared 4.81.0: shape and elevation tokens in kit.css and room.css (2026-11-01); 98.3 openvibe-shared 4.70.0 (2026-11-01: the app bar, busy(), skeletons, view transitions); 94.8 with openvibe-shared 4.62.0: the shared sidebar in kit.css, the glyphs and their fonts (2026-10-31); 89.6 the phone home (2026-10-30: the fold rules for the questions and the other OpenVibe places); 78.3 the short home (2026-10-29): kit.css 25.6 + room.css 15.7 KB (the shared numbers, search, folds, cards and rails; home.css shrank to what the homes still draw): the page shed 10 of its 14.6 phone screens; 37 openvibe-shared 4.26.1 (hero visual); 31.5 with Shared 4.13.0 (2026-10-26: account links); 25.5 with the home's cards, ranks, chips and questions; 19.4 before
- cssBrotliKB: 23.5, // 23.2 with openvibe-shared 4.82.0: the motion tokens in kit.css and room.css (2026-11-01); 22.7 with openvibe-shared 4.81.0: shape and elevation tokens in kit.css and room.css (2026-11-01); 20.8 with openvibe-shared 4.62.0: the shared sidebar in kit.css, the glyphs and their fonts (2026-10-31); 20.0 the phone home (2026-10-30: the fold rules for the questions and the other OpenVibe places); 17.4 the short home (2026-10-29): kit.css and room.css; 8.1 openvibe-shared 4.26.1 (hero visual); 7 with Shared 4.13.0 (2026-10-26: account links); 5.9; 4.6 before
+ cssBrotliKB: 24, // 23.6 with 2026-11-01: sign-in prompt layout (2026-11-01); 23.2 with openvibe-shared 4.82.0: the motion tokens in kit.css and room.css (2026-11-01); 22.7 with openvibe-shared 4.81.0: shape and elevation tokens in kit.css and room.css (2026-11-01); 20.8 with openvibe-shared 4.62.0: the shared sidebar in kit.css, the glyphs and their fonts (2026-10-31); 20.0 the phone home (2026-10-30: the fold rules for the questions and the other OpenVibe places); 17.4 the short home (2026-10-29): kit.css and room.css; 8.1 openvibe-shared 4.26.1 (hero visual); 7 with Shared 4.13.0 (2026-10-26: account links); 5.9; 4.6 before
externalFiles: 0, // 0
externalFiles: 0, // 0
};
};