Eight new theme groups, 25 families in light and dark, each built around an idea that goes beyond colour: one bookmark per line with room between them, a page that follows the health of your services, a row drawn as a label strip, a page drawn as a map. In the theme studio each group has its own chip in the Character row and on the card badge, and each family has a backdrop of its own.
Theme groups
- new — Stationery. One bookmark per line, with room between the lines as the only separator. Ledger (cream, serif, a dotted leader from the name to the shortcut letters, numbered lines), Swiss Poster (grotesque type with one cobalt accent, a huge numeral and a heavy rule above every category and widget, the numerals running on from one category to the next, a keyboard row inverted to a solid block), Typewriter (an index card with a punched edge, a red ribbon heading and typed leaders, the same card for widgets) and Zen (a hanging scroll between two rollers, the title as a red stamp, widgets on the same paper). The Rows settings still apply (
theme_group_stationery.go,theme-group-stationery.css,theme-group-stationery.js). - new — Living. The theme answers to your data. Tidewatch draws a waterline whose level follows the health of your services: low teal water when everything is up, amber for a dead link, a high coral surge when something is down. Daydrift moves its palette through the day by the local clock, with a sun or moon crossing an arc. Skywatch shows the weather from the weather widget's own cache (the clock when there is none) as a glyph, with rain, fog, snow, sun and stars drawn in CSS and the categories as window panes. It makes no request of its own, stops when you leave the theme, and stands still under reduced motion and with Effects off (
theme_group_living.go,theme-group-living.css,theme-group-living.js). - new — Instrument. The history is in the row. Cockpit (a wireframe HUD with corner brackets and no fill), Oscilloscope (a CRT screen per category with bezel, screws, graticule and phosphor glow) and Dive Computer (a metal pill with a depth ruler and a ring gauge for up and total). A row that has a heartbeat history or a measured ping gets a trace and a bar; a row without either gets nothing, never invented data. A category head shows up/total and a segmented meter (
theme_group_instrument.go,theme-group-instrument.css,theme-group-instrument.js). - new — Tactile. The row is a physical thing. Label Maker (laminated tape strips in white, yellow, blue, red and green with black print and cut ends, a cassette head with a spool), Keycap (keys that sink when pressed) and Rack Unit (plates with two screws each and a status lamp). Widget lines and the Notes text take the same objects as the category rows, and a widget has the same pane as a category. With reduced motion or Effects off a press changes colour and nothing moves. Status keeps a shape of its own, not only a colour (
theme_group_tactile.go,theme-group-tactile.css). - new — Spatial. Depth, drawn so that it shows without moving the mouse. Diorama (cut-paper sheets with torn and stepped edges, a pin and a hard shadow), Lightbox (black slide mounts with sprocket holes and backlit film, a lamp under the cursor) and Orbit (square star-field panels with planets on ring lines). The pointer only writes two CSS variables, once per frame; nothing that holds content is ever transformed, so drag and drop, menus and popovers keep working. It stays still on touch screens, with reduced motion and with Effects off (
theme_group_spatial.go,theme-group-spatial.css,theme-group-spatial.js). - new — Cartographic. The page is a map. Atlas (pins with a dashed leader to a grid coordinate such as
B3, a frame with latitude and longitude ticks, contour lines), Nautical (a sea chart with double-line cut-outs, soundings, a degrees and minutes ruler and a compass rose) and Subway Map (a line colour per category, a station dot per bookmark, an interchange on the last row, delayed and out of service tags from the status the row already has). The coordinates are decoration; shortcuts and search are unchanged (theme_group_cartographic.go,theme-group-cartographic.css). - new — Riso. A two-ink print. Riso Pink-Blue (blue ink with a hard pink block shadow, solid heads, halftone corners), Riso Green-Orange (a stamp look with a double outline and heads tilted a degree) and Mimeograph (one faded purple ink, speckled and bleeding). Light halves overprint with multiply; menus and the side panel stay plain (
theme_group_riso.go,theme-group-riso.css). - new — Legible. Accessibility as a style. High Contrast Calm is airport signage: square panels with a banded title, ruled strips with a pictogram, black bands on light grey by day and yellow on black by night. Low Vision Amber is amber on black and dark amber on warm white. Colour-blind Safe uses a blue and orange pair and different shapes for different states. Rows are at least 44 px, the keyboard row has a 4 px ring, status is a shape and a word, nothing animates, and text keeps at least 7:1 against its background, measured on the real page over the backdrop (
theme_group_legible.go,theme-group-legible.css). - new — The 25 new families wear the new badge. The list in
theme_new.gois replaced, as the file says the next collection does, so the earlier 62 families stop being new and the New segment and searchingnewshow only this release's families (theme_new.go,tests/config-theme-browser-new.spec.js).
Backdrops
- new — Eighteen backdrops, drawn for one family each:
gallerywallandtypesheetandzenwash(Stationery: a gallery with arched doorways, now a Swiss modular grid; a pile of typing paper; a raked gravel garden),sundialandcloudstrata(Living: hour lines and sun paths, stacked cloud banks),hudhorizonanddecocurve(Instrument: an artificial horizon with a pitch ladder, a dive profile with bubbles),labeltape,keycapfieldandrackcables(Tactile),papercutsandfilmstrip(Spatial),metrolines(Cartographic: a transit network),stampfieldandinkspeckle(Riso) andsoftsquares,amberhorizonandshapetiles(Legible: quiet enough to keep the contrast). That makes 285 backdrops. The other seven families keep an existing one (swells,cellgrid,stars,topo,oceanblue,halftone,ruled) (theme_backdrop_g_*.go,theme_backdrop_catalog.go).
Layout
- fix — Five and six columns now work on a wide window. The page was a container with a ceiling of 1600px, and the side margin comes out of it, so five columns barely fit and six never did, on any screen: the setting offered 6 and drew 4, or 5 on a window of about 1900px. The ceiling now follows the setting: it stays 1600px for up to four columns and grows to what the asked-for columns need at their minimum width, set on the root so the header and every view line up with the grid. A narrower window still keeps only the columns that fit (
dashboard-render-core.js,dashboard.css,tests/dashboard-columns-fit.spec.js). - new — Page margins in seven steps, Balanced in the middle. The band beside the columns had three steps, and even Snug left up to 48px on each side and kept the page at 1600px, so a big monitor never filled. It now has seven, three narrower than Balanced and three wider: Full width (almost no edge and no ceiling on the page, a column may grow to 720px), Tight (540px, a high ceiling of 2200px on the page), Snug, Balanced (still the default, as it was), Roomy, Airy and Spacious (the widest, columns down to 270px). At a 1700px window the band is about 3, 20, 40, 100, 130, 150 and 270px, and the columns that fit follow it. The choices are in Appearance → Layout and in the theme studio's Layout tab,
:marginstakes them, and the six languages have their words. An unknown value still falls back to Balanced (models.go,dashboard.css,dashboard-config.js,search-commands.js,setting-art.css,tests/dashboard-columns-fit.spec.js). - new — Columns per row is a dropdown from 1 to 8. It was a number box that took 1 to 12 and drew 6 at most. Eight is the most now, in Appearance → Layout and in the theme studio's Layout tab, the drawing beside it shows all eight, the palette's
:columnsoffers 7 and 8, and the cheat sheet and the info text say 1–8 in six languages. A stored 9 to 12 reads as 8 (dashboard-config.js,dashboard-render-core.js,dashboard.css,search-commands-columns.js,setting-art.js,config-preview.js). - new — Space between categories, Space between columns and Page margins are dropdowns. They were rows of cards; each option is now a line in a dropdown with its sentence in it (Snug — Rows sit close together.), and the drawing of the choice in force stays beside the field. The same in Appearance → Layout and the theme studio (
dashboard-config.js,tests/dashboard-category-spacing.spec.js,tests/dashboard-column-spacing.spec.js,tests/config-setting-art.spec.js).
Introducing the themes
-
new — A popover shows the eight new theme groups to installs that were already in use. Once, in the middle of the dashboard, after the What's new window and the setup cards: one tab per group, a screenshot and a line for every theme (Skywatch, Tidewatch and Daydrift say what they follow: the weather, the health of your services, the time of day), a Dark and Light switch, and a button on every card that puts that theme on the page. A click on a screenshot opens it large with the same button, and Open the theme studio opens the studio on the New themes (the theme browser can now be opened on a segment). It counts as answered the moment it is shown, a fresh install does not see it, and corner cards wait while it is still to come. The 100 screenshots are in
static/img/new-themes/(new-themes-notice.js,dashboard-quickstart.css,theme-browser.js,dashboard-config-studio.js,notice-card.js,tests/new-themes-notice.spec.js). -
new — A tip in the bell opens the new themes popover again. Show the new themes waits in the Tips group of every upgraded install until it is read, for whoever closed the popover too soon (
new-themes-notice.js,tests/new-themes-notice.spec.js). -
new — Three tips in the bell about the themes that react to something, one a day. Skywatch (the weather) on the first day, Tidewatch (the health of your bookmarks) on the second, Daydrift (the time of day) on the third, in the Tips group until they are read. Each says what the theme follows and has Use this theme (in the half you wear now) and Open in the theme studio (searching that family). The days count from the first time an upgraded install runs this release (
discoverabilityState.themeTipsFrom), a fresh install is not told, and a theme you already wear has no tip (theme-tips-notice.js,discoverability-state.js,models.go,theme-browser.js,tests/theme-tips-notice.spec.js).
Bookmarks view
- new — The Latest news column is gone from the Bookmarks view. The newest headline of a watched site stays where it is read best: on the row in the dashboard, in the preview card and in the news window (
Shift + W). The column, its heading, its place in Sort and Columns shown and its two locale words are removed; a saved choice that names it is ignored (dashboard-config-bookmarks-workbench.js,dashboard-config.js,models.go,config-bookmarks-workbench.css,tests/bookmarks-view-feed-news.spec.js).
Under the hood
- new — One file per theme group.
theme_groups.gomerges the palettes of every group into the built-in themes and never replaces an id that is already there; a group's id prefix files it under its chip (theme_archetype.go). Each group brings its own stylesheet, its own script when it needs one, and its own spec (tests/theme-group-*.spec.js). - fix — Daydrift keeps the phone's browser bar with the page. The bar colour (
theme-color) was only set when the theme changed, so it stayed on the colour of that moment while the page moved through the day; every tick now sets it as well (theme-group-living.js). - fix — Tidewatch counts each outage once. The count took the down badge and the offline rows together, so one outage counted at least twice; it is now the offline rows, with the badge only deciding the state (
theme-group-living.js). - fix — Asking for the column count no longer forces a layout pass. The lookup the keyboard and the block mover call all the time wrote the page ceiling every time, even unchanged, which made the next measure lay the page out again; it now writes only when the value changes (
dashboard-render-core.js).
Docs
- docs — Translations, Help and tips. 41 keys in all six languages: the eight group labels, the 25 family descriptions (the theme browser now reads
config.themeDesc.<family>and falls back to the English line), five words the new themes draw in CSS (online, checking, offline, out of service, delayed, set as custom properties bytheme-group-words.js, withnextdash:translations-appliednow fired on every language change), and a tip about the theme groups (tipTuneThemeGroups). Help says 220 families, 440 themes and 285 backdrops and names the groups; the backdrop and theme browser tips carry the new numbers. - docs — Manual and README. 440 themes, 220 families and 285 backdrops everywhere; a Theme groups bullet in §17.1 with the eight groups, a paragraph in §17.2 that groups are not materials, the 18 new backdrops in §17A.4, and the new badge line. The README names Tarnished Brass as the starting theme, as the manual does, and its two theme montages are retaken with all 220 families. The Layout picture in the manual, the cheat sheet's
:columnsrow (1–8) and two entries in Config → Overview (the theme groups, page margins and columns) are brought up to date. - docs — What's new, News & features and the cheat sheet. The What's new window leads with two highlights, the eight theme groups (a collage of one dashboard from each group) and the page margins (a recording that steps from Full width to Spacious on six columns), with the New badge, the 18 backdrops, the dropdowns and the column fix under them. Config → Overview and About → News & features get two entries dated v1.28.2, one for the theme groups and one for the page margins and eight columns, in six languages. The cheat sheet's
:columnsrow says 1–8. The release token and the data token of the window moved, andtests/whats-new-hidden-release.spec.jsnames v1.28.2 as the release that leads (static/data/whats-new/v1.28.2.json,overview-features.json,whats-new-stub.js). - docs — nextdash.cc. The front page, the features index, the compare page and the gallery slider say 440 themes, 220 families, 285 backdrops and 58 widget kinds; the gallery has the 50 new themes with new pictures and eight new group chips;
feature-pages/v1.28.2-pages.phpupdates the themes page text. A new feature page, Page margins and columns, has three pictures and a loop of the margins stepping from Full width to Spacious, and the release list knows v1.28.1 and v1.28.2 (feature-pages/v1.28.2-page-margins.php). - docs — Help, manual and site, second pass. Help's Choosing a theme said a fresh install starts on Aurora Glass and that the 62 newest families wear the new badge; it now says Tarnished Brass and 25, mentions the popover and the bell tips, and the Layout list in Help → Appearance gives columns per row as 1–8 and the seven page margins, in six languages. The manual's theme groups list has a bullet on the popover and the three tips. The site counts 58 widget kinds, as Help and the README do; the count includes the custom widget. On the compare page the Glances and assistant blocks show the Glances page and the assistant at work instead of a dashboard frame, and its widget count (it said 51) is brought up to date (
locales/*.json,MANUAL.md).