openvibers/openvibe.shared Commits

4.106.2: the site's name reads whole on a signed-in phone (#272)

OP OpenVibers committed 10 days ago · 92961cc637 · 7 files, +25 −7

openvibe.live on a phone showed 'Li…' beside the balances, the messages, the bell and the picture (the owner's
screenshot, 11-02). Up to 480px the two balances stack in one pill, each with its icon (both still show, as asked
on 10-28): about 53px instead of 90-103px, and the name has that room. At 320px the menu's orb no longer runs into
the balances. The phone-fit test signs in with the messages button and 161k / 400.

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex b123908..a87f206 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -4,6 +4,14 @@ All notable changes to `openvibe-shared`. Versions follow [semver](https://semve
breaking change to any exported module, browser global or served file name is a new major.
A release is the git tag `vX.Y.Z`; consumers pin the tag's tarball (see README).
++## 4.106.2 — 2026-11-02
++
++- **The site's name reads whole on a signed-in phone.** On openvibe.live a phone showed "Li…" beside the balances, the
++ messages, the bell and the picture (the owner's screenshot). Up to 480px the two balances now stack in one pill, each
++ with its icon, so both still show: the pill is about 53px instead of 90-103px and the name has that room. At 320px the
++ OpenVibe menu's orb no longer runs into the balances. `test/navbar-phone-fit-chrome.test.js` now signs in with the
++ messages button and the owner's figures (161k, 400).
++
## 4.106.1 — 2026-11-02
- **The OpenVibe mark opens the site switcher again, on every site.** `site-switcher.js` (4.48.0) was never in
ddiff --git a/README.md b/README.md
iindex 2b7070e..b71cbf6 100644
---- a/README.md
++++ b/README.md
@@@ -2,7 +2,7 @@
> Versioned UI, the OpenVibe Frame (the navbar, footer and "shipped" views every site sits in), SEO, legal and release-client packages every OpenVibe site renders.
--**Status:** alpha, v4.106.1 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
++**Status:** alpha, v4.106.2 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
consumer installs a tagged release and none keeps a vendored copy
([docs/migration-plan.md](docs/migration-plan.md) is done); each repository's `package.json` names
the tag it pins.
ddiff --git a/STATUS.json b/STATUS.json
iindex 2cdb3a4..e525e36 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -4,7 +4,7 @@
"code": true,
"wave": "W2",
"package": "openvibe-shared",
-- "version": "4.106.1",
++ "version": "4.106.2",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"deployed": false,
"deployment": "none of its own: a package released as git tags; OpenVibe.Network serves /shared/* from its pinned tag, and a site can serve its own pinned copy (openvibe-shared/serve)",
ddiff --git a/navbar.js b/navbar.js
iindex b0db039..1577794 100644
---- a/navbar.js
++++ b/navbar.js
@@@ -176,6 +176,16 @@
.openvibe-navbar .openvibe-navbar-brand .name { font-size: 16.5px; letter-spacing: -.25px; } .openvibe-navbar .openvibe-navbar-brand .flame { min-width: 28px; height: 28px; padding: 0 2px; } .openvibe-navbar .openvibe-navbar-brand .flame .ov-mark { width: 28px !important; } }
/* Under 350px the mark alone names the site, so both balances keep their icons (a number alone says nothing). */
@media (max-width: 350px) { .openvibe-navbar .openvibe-navbar-brand .name { display: none; } }
++ /* The site's name reads whole on a signed-in phone (the owner, 2026-11-02: "the label or the branding of the
++ website you're on seems to get cut off", openvibe.live showing "Li…" beside 161k | 400, the messages, the bell
++ and the picture). Up to 480px the two balances stack in one pill, each with its icon (both still show, as asked
++ on 10-28): the pill is about 53px instead of 90-103px, and the name has that room. */
++ @media (max-width: 480px) {
++ .openvibe-navbar .ovnav-chip.ovnav-chip--all { flex-direction: column; align-items: stretch; justify-content: center; gap: 1px; height: 34px; padding: 2px; border-radius: 10px; font-size: 11.5px; line-height: 1; letter-spacing: -.1px; }
++ .openvibe-navbar .ovnav-chip--all .ovnav-chip-mini { height: 14px; padding: 0 4px; gap: 3px; justify-content: flex-start; font-variant-numeric: tabular-nums; }
++ .openvibe-navbar .ovnav-chip--all .ovnav-chip-mini + .ovnav-chip-mini { border-left: 0; }
++ .openvibe-navbar .ovnav-chip--all .ovnav-chip-mini .ovnav-ic { width: 11px; height: 11px; flex: none; }
++ }
.openvibe-navbar-brand .flame { font-size: 18px; text-decoration: none; color: var(--accent, #3b82f6); display: inline-grid; place-items: center; width: 28px; height: 28px; flex: none; }
.openvibe-navbar-brand .name { display: inline-flex; align-items: baseline; font-size: 15px; font-weight: 700; letter-spacing: -.3px; white-space: nowrap; line-height: 1; }
/* Segments: subdomain · OpenVibe · TLD. The part that names *this* site is the loud one. */
ddiff --git a/package-lock.json b/package-lock.json
iindex b737326..e80b95f 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -1,12 +1,12 @@
{
"name": "openvibe-shared",
-- "version": "4.106.1",
++ "version": "4.106.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openvibe-shared",
-- "version": "4.106.1",
++ "version": "4.106.2",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0",
ddiff --git a/package.json b/package.json
iindex 38867ba..5b87871 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-shared",
-- "version": "4.106.1",
++ "version": "4.106.2",
"description": "Shared navbar, footer, themes, icons, legal pages, SEO, auth and analytics for every OpenVibe site",
"main": "index.js",
"bin": {
ddiff --git a/test/navbar-phone-fit-chrome.test.js b/test/navbar-phone-fit-chrome.test.js
iindex 4357bbb..1528991 100644
---- a/test/navbar-phone-fit-chrome.test.js
++++ b/test/navbar-phone-fit-chrome.test.js
@@@ -21,12 +21,12 @@ const ROOT = path.join(__dirname, '..');
const PAGE = (signedIn) => `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Games · OpenVibe.Games</title><link rel="icon" href="data:,"></head>
<body><div id="navbar-mount"></div><main><h1>Games</h1></main>
<script>
-- localStorage.setItem('ov-wallet:42', JSON.stringify({ coins: 4100, vibes: 1250 }));
++ localStorage.setItem('ov-wallet:42', JSON.stringify({ coins: 161000, vibes: 400 }));
window.fetch = async () => new Response('{}', { status: 404 });
</script>
<script src="/navbar.js"></script>
<script>
-- OpenVibeNavbar.init({ service: 'games', brandName: 'OpenVibe.Games', wallet: true, ${signedIn ? "token: 'x', user: { id: 42, username: 'moosely', display_name: 'moosely', avatar_url: null }," : 'user: null,'}
++ OpenVibeNavbar.init({ service: 'games', brandName: 'OpenVibe.Games', wallet: true, messages: { href: 'https://openvibe.chat/messages' }, ${signedIn ? "token: 'x', user: { id: 42, username: 'moosely', display_name: 'moosely', avatar_url: null }," : 'user: null,'}
links: [{ label: 'Games', href: '/', icon: 'fa-gamepad' }, { label: 'Leaderboard', href: '/top', icon: 'fa-star' }] });
</script></body></html>`;
const server = http.createServer((req, res) => {