Release 4.70.0
1 Nov 2026 · pinned package [email protected]
- Line or solid, on purpose (plan L49; the owner, 2026-11-01: "both sets for any size… swap between them… whichever fits the area").
.ovg-solidand.ovg-lineforce one at any size. An active control (the current tab, a pressed or selected button,aria-current,aria-pressed,aria-selected,.is-here) wears the solid drawing, as an app's tab bar fills the tab you are on. Kept low in specificity (:where) so a site can override it. - The app bar feels like an app's (plan L52; "improve the mobile button so it feels seamless and smooth"):
- it is drawn once and kept between pages;
- one pill slides to the tab you are on;
- a tap lights its tab at once, before the page arrives;
- a press gives, and the new tab's icon pops.
- Placeholders shaped like the content ("placeholder elements while it loads, a fake thumbnail, so it is not jarring"):
kit.skeleton({ kind, count })with seven shapes: card (16:9), row, tile, chip, line, chat and stat;- kit.css shimmer, never a spinner, still under reduced motion and Calm;
- announced as busy.
- Moving between pages ("the logo changing while it loads… smarter loading"):
OpenVibeNavbar.busy(on): the mark works while something loads;- a plain same-site link starts the mark at once, and the next page's mark takes over (a download gives up after 10 s);
- speculation rules prefetch same-site pages on hover or press (
moderate), never /auth, /api, sign-out or a download (speculate: falseturns it off); - cross-document view transitions keep the navbar and app bar still while a server-rendered page cross-fades (off under reduced motion).
PagesThe bar’s brandThe navbarSoft pagesIcons
Rules27 The only thing that goes round is the mark’s own O.92 The menu's places: Here, Feed, Chat, Vibe, You; Vibe holds Chat and Agents.38 The balances are one pill that shows one balance at a time.