A theme for NetNewsWire
Calm

Navigate long articles without distraction with an adaptive, scrubbable NetNewsWire reading map.
What's new in v1.4.1
Calm 1.4.1
Calm 1.4.1 is a fundamentals release. It fixes compact iPhone typography, preserves authored image colors, and makes the reading map more selective, efficient, and accessible without adding reader chrome.
Reading fixes
- Corrected the compact cascade so the one-point type bump and
1.48line height take effect without flattening NetNewsWire text-size preferences. - Removed light-mode
mix-blend-mode: multiplyfrom article images and SVGs.
Reading map
- Hides the map for articles shorter than two viewport heights while continuing to watch for images or other late content that makes the article long enough.
- Hardens the existing structured-map selection around a coherent heading hierarchy, filters duplicate and common utility headings, and caps the result at eight body destinations.
- Throttles scroll work to animation frames and caches heading offsets until a real layout change occurs.
- Refreshes geometry after resize, embedded-media load, or observed content growth.
- Applies
aria-current="location"to the active marker. - Cancels queued work and removes observers and listeners during compact Split View teardown, then reconstructs cleanly when space returns.
Markers remain evenly spaced in 1.4.1. Proportional placement should only ship after observation with real readers shows that it improves orientation.
Validation
The release adds WebKit coverage for compact typography, light-mode images, short and long articles, mixed heading hierarchies, image/video/audio fixtures, media-driven reflow, Split View reconstruction, and active-marker accessibility. A canonical Chromium screenshot covers visual comparisons.
Earlier releases
v1.4.0
Calm 1.4.0
Navigate long articles without distraction.
Calm 1.4 adapts its reading map to the article. Structured pieces use major headings as destinations; simpler pieces use five quiet depth markers. Readers can click, tap, use the keyboard, or scrub the rail to move through an article. Phone, Split View, and short landscape layouts remove the map entirely.
Highlights
- A larger, more clearly separated article title on rail-capable layouts.
- The reading map now sits just outside the centered article column.
- Feed identity remains visible in the opening metadata, with estimated reading time shown only for articles of four minutes or longer.
- Missing metadata fields collapse cleanly without leaving stray separators.
- The persistent statistics footer and visible word count are gone.
- Structured articles can reveal the active section name on wide Mac layouts during hover, keyboard focus, or scrubbing.
- iPad keeps marker-only feedback with 44-point targets.
- Phone, Split View, and short coarse-pointer landscape layouts remain completely rail-free.
- Entering or leaving iPad Split View now tears down or restores the reading map and its interaction listeners without requiring an article reload.
Calm’s article measure, serif body rhythm, light and dark palettes, media treatment, body-heading scale, keyboard focus, reduced-motion behavior, and Tap + Scrub interaction are unchanged.
Installable artifact
- Bundle:
Calm.nnwtheme/ - Package:
Calm.nnwtheme.zip - Internal theme version:
11
Install from the v1.4.0 release or use the NetNewsWire installer URL in the project README.
v1.3.1
Calm 1.3.1 brings the latest local theme state to GitHub everywhere.
Highlights:
- Removes the section rail and reserved gutter from compact mobile layouts.
- Tightens phone spacing and line height while preserving wider-screen behavior.
- Fixes structured heading targets for the desktop section rail.
- Adds system-accent keyboard focus treatment and 44-point touch targets.
- Improves reading-statistics contrast and refreshes the screenshots.
- Ships validation for source/preview parity, responsive rail behavior, interaction polish, and package/source alignment.
The attached Calm.nnwtheme.zip is identical to the validated package committed at the repository root.
v1.2.1
- Restored
Calm.nnwtheme.zipto the repository root so the installable package is visible from GitHub’s file list. - Kept the package content aligned with the
Version8 theme source; no theme template or stylesheet behavior changed.
v1.2.0
- Held pointer capture while scrubbing the section rail so a drag no longer ends early when the pointer drifts off the narrow rail.
- Added quiet styling for
mark,kbd, definition lists,details/summary, andaudioso common feed content no longer falls back to browser defaults. - Enabled
text-wrap: prettyon paragraphs and list items where supported. - Removed an accidentally re-committed
Calm.nnwtheme.zipfrom the repository; zips are published through GitHub Releases. - Bumped the internal theme version to
8.
v1.1.3
Removes the top reading progress bar from reader views and bumps the internal theme version to 6.
v1.1.2
Hybrid section rail behavior: articles with five or more filtered headings use heading markers; articles with four or fewer use five scroll-depth markers. Keeps marker clicks inside the reader view with top breathing room.
v1.1.1
Changes
- Updated the NetNewsWire installer author website to
https://raisul.xyz. - Bumped the internal NetNewsWire theme version to
4.
Validation
plutil -lint Calm.nnwtheme/Info.plist- embedded script syntax checks for
Calm.nnwtheme/template.htmlandpreview/index.html - release zip inspected to confirm
CreatorHomePage = https://raisul.xyzandVersion = 4
v1.1.0
Changes
- Reworked the generated section rail into a lower-contrast marker stack for desktop and mobile.
- Limited section markers to the article title and major body headings so lower-level subheads do not make the rail feel random.
- Kept marker clicks inside the reader view and added scroll breathing room for section jumps.
- Bumped the internal NetNewsWire theme version to
3.
Validation
plutil -lint Calm.nnwtheme/Info.plist- embedded script syntax/contracts for
Calm.nnwtheme/template.htmlandpreview/index.html - release zip inspected to confirm
Info.plistversion3
v1.0.1
Bumps the iOS article font by 1px while preserving NetNewsWire Dynamic Type sizing.
v1.0.0
Initial Calm NetNewsWire theme for macOS and iOS.