Orbit v0.5.1
npm: @restless-dreams/[email protected] · Website: orbit.hyuchia.com · Docs: orbit.hyuchia.com/docs
npm install @restless-dreams/[email protected]v0.5.1 is a release of fixes. Orbit reads every color CSS has now, for a node’s label, its exports and older browsers, and the print layout takes a theme’s colors only as colors. A touch held on the + adds an idea however long it lasts, a seek made before a video or a sound knows its length lands where it says, and headings, list items and color mixes that could take seconds to read now read in linear time. Nothing changes in the format or the API: upgrading is a version bump. Here’s what changed.
💜 Support Orbit
Orbit is free and open source, with no ads and nothing locked away. If it’s useful to you, you can help it grow: your support pays for the time that goes into new features and fixes.
- ❤️ GitHub Sponsors
- 💸 Wise
- 🧡 Patreon
- ☕ Ko-fi
📰 Release Change Log
🐛 Bug Fixes
- Every CSS color: the format takes any CSS color, but Orbit read only names, hex,
rgb(),oklab(),oklch()andcolor(srgb …). A node inhsl(),hwb(),lab(),lch()orcolor(display-p3 …)got dark text on a dark planet, SVG exports kept its shades ascolor-mix(), which design tools can’t draw, and browsers too old for it drew it black. Orbit now reads every color function of CSS Color 4, with every spacecolor()names, each within 0.001 of what Chromium makes of it. A browser that can’t draw a node’s or the palette’s color as written gets it in hex, solab()is drawn blue in Chromium 99. A translucent color’s label is chosen for what shows through it: navy at 20% on paper is a pale disc, which now gets dark text. Opaque colors, and so every built-in theme’s, choose as before. See Colors and Browsers. - Colors only as colors: the print layout wrote its theme’s colors into its style’s text, so a token set from code, such as
red; display: none, added declarations of its own: it could hide the layout, or load an address as the page printed. It now sets each one as a color Orbit reads, in hex, and any other value keeps the print theme’s own color. An idea’s dot and a status’s color are painted asbackground-colornow, so aurl()written as a node’s color loads nothing, and a page’s own colors, such asvar(--brand), still work. - Holding the +: browsers send no click after a touch they take as a long press, so a touch on the + that lasted that long added nothing, and on a slow phone that stalls as it’s touched, even a short tap could last that long. Now a touch or pen held on the + and let go where it began adds the idea, however long it lasted. A press that moves, catches a spin or makes a double tap still adds nothing, and mice are as before.
- Seeking before the length is known: a video file or a sound opened with
startAtwent there once it knew its length, even if it had been sent elsewhere since:seekMedia(5)on a video opened at 30 seconds, made before its length was known, ended at 30. A seek now takes the place of the start time, in the media viewer and the sound player alike. YouTube’s and Vimeo’s players work as before. - Reading in linear time: a heading or list item followed only by a long run of spaces, or with one inside its text, took time that grew with the square of the run: 40,000 spaces took two seconds, or six, and held up the page reading the map. A color nested in
color-mix()es thousands deep did the same (12,000 deep took ten seconds to export), and a theme token that names itself, such ascolor-1: color-mix(in oklab, var(--_orbit-color-1), white), overflowed the stack. Both read in linear time now: mixes are read 8 deep, where Orbit and every preset need one, and one nested deeper is kept as written, as one with a page’s ownvar()already is.
📦 Misc
- Docs: the format and the guide say which colors Orbit reads and what older browsers get, and the check in Chromium 99, the oldest WebView Orbit for Android draws maps in, now draws
lab(),color(display-p3 …)andhwb()planets and checks their colors and labels.
How To Upgrade
If you’re on v0.5.0
npm install @restless-dreams/[email protected]Nothing is renamed or taken away, and the format keeps its version, so there’s nothing to change. Two things may change what you see:
- Nodes in
hsl(),hwb(),lab(),lch()orcolor(), and translucent ones, may get the other text color, the one that reads on them, and exports write their shades as plain colors. Browsers too old for such a color draw it in the sRGB color it stands for, where they drew it black. - A theme token set from code that isn’t a color no longer reaches the print layout, which keeps its own color there, and a node color written as a
url()paints nothing.
If you’re on v0.4.x or earlier
Upgrade as Orbit v0.5.0’s notes say first.
Orbit for Android v0.5.1 uses this release, and it’s on Google Play and GitHub now.