Release 4.59.0
31 Oct 2026 · pinned package [email protected]
- The OpenVibe mark is the Pair (the owner, from OpenVibe Mark Systems: "Pair, halo … I like this icon the most. This should be our new logo"): a ring O in blue and a round V in violet, with a gap of the ground around the V where it crosses the ring. The gap is a mask, so the mark sits on any ground. The V is as tall as the O and the mark is centred in its box, so it sits level beside a name in the navbar and centred in a tile.
openvibe-shared/mark(new): the mark as static SVG for servers, icons, share cards and anyone else:svg({ form, tone, wide, size, title }),art()to place it inside another SVG,geo(),shapes(),COLORS.ov-mark.jsdraws the same numbers (test/mark.test.js). Two forms, the pair and the heavy (22 px wide and under; the olddata-form="solid"draws the heavy).data-widegives a box that hugs the mark;data-tone="ink"or"white"gives one colour.- Every state remade for it, none of them a spin: the intro pops the O and grows the V out of its point; hover leans the V back; busy bobs the V while the O breathes; ok turns the V into a tick, green; error into "!", red, with a shake; no into "×", grey; notify pops a dot by the V; live makes the O the record light with ripples; sleep closes the O like an eye. The V's shapes morph, and the gap in the ring follows them.
- The page-load progress is the ring: following a link, the navbar's ring empties and draws itself round again at this site's learned pace (the same pace as 4.58.0), the V nodding; on arrival the ring closes and the V hops.
data-progress(island.js) draws the ring to its level.OVMark.intro(el)replays the intro on one mark (a brand page, a splash). - Variants: Live, VIP, Tips, Deals and Coupons carry a light in the O (Live's red record light). The season: the O is a pumpkin with its stem and leaf in October, with caps of snow in December.
- The navbar shows the mark in the wide box (
data-size="34" data-wide), the brand button hugging it; the footer at 38 (28 small).
- The brand face for the names: Nunito (SIL OFL 1.1,
OFL-Nunito.txt), cut to Latin and weights 700–900:ov-brand.woff2, 13.5 KB. A newfiles.FONTSlist serves it at/shared/ov-brand.woff2(serve.js:font/woff2, CORS as for every shared file); it is not a browser script, so the size report and the bundle test do not count it.navbar.jsdeclares it from beside itself (font-display: swap, its characters only) and sets the site name in it; the footer's brand and the site switcher's names use it; every one falls back to the system face. A site with its own/sharedroute servesfiles.FONTSbesidefiles.BROWSER(test/brand-face.test.js). - App icons, favicons and share cards are the Pair:
app-icon.jsdraws it (the heavy on the favicon's tile; the maskable icon keeps it inside the 40 % safe circle), andicons/*.pngandsocial/*.jpgare rebuilt; the cards set the names in the brand face. The loading screen (loading.js) shows the Pair at work, and its V becomes "!" when loading fails.
PagesThe bar’s brandThe footerThe navbarIcon ink
Rules96 The Pair is the only mark, and it does the waiting.31 One navbar per page, owned by the shared Frame.20 Status is a word, never colour alone.