Release 4.11.0
25 Oct 2026 · pinned package [email protected]
- Seasonal themes. The owner, 2026-10-24: a Halloween theme and style on every site, as the default during October, part of a seasonal system that turns on by date, with an opt-out for anyone who wants their normal default.
- Two seasonal themes (
builtin-themes.js): - Pumpkin Night (
halloween): pumpkin orange on a violet night, October 1–31; - Frost (
frost): frosted teal on a midnight sky, December 1–31. - How they turn on. A theme with
season: { id, name, from, to }(MM-DD, both days included, the visitor's own calendar) is also listed inSEASONS, andseasonOn(date)finds the season for a date. A season may run over New Year. - What the loader paints (
theme-loader.js, Seasons): - Anyone on the default theme sees the season's theme in its place while it runs. A theme someone picked, or a customised default, stays theirs.
<html>carriesdata-ov-season="<id>"anddata-themenames the theme on screen. The saved choice (getCurrent()) stays the person's.windowgetsov:seasonwith{ id, name, theme }ornull.- API:
OpenVibeThemeLoader.seasons.{ SEASONS, now(), showing() }. - The opt-out is a display preference,
seasonal: on|off(on by default). It repaints at once and in other tabs, and is saved to the account with text size and motion (PUT /api/themes/me/display). Network stores it once it accepts the key; until then it stays in the browser. Picking the default theme during a season turns seasonal themes off: "my normal theme". - The navbar shows the season's emblem beside the brand while a season runs: a pumpkin, or a snowflake in December. It is pressed while the season's theme shows and faded when seasonal themes are off, and a click flips it. The account menu's Display section and the launcher's display row get a "Seasonal themes" switch.
- Two seasonal themes (
PagesThe bar’s brandThe menuThe navbarMotion
Rules94 A site's name opens its pages, and a way to every site.39 The account lives in the menu's You tab, not in a dropdown.31 One navbar per page, owned by the shared Frame.