Sumi is a blog theme built around ink, washi paper and generous negative space. It is made for writing that is meant to be read slowly — essays, notes, a journal kept over years — rather than a feed to be scrolled past.
The design is mostly subtraction. One serif for reading, one monospace for labels, a single vermilion accent spent no more than a few times a page, and a great deal of room left alone. Light and dark are declared once from the same set of tokens, so the toggle sets one attribute and the whole page follows. With JavaScript disabled, the reader's system preference still wins.
The one thing added back is the ink. Behind the front page runs a real fluid simulation on the GPU — an actual solve of the Navier–Stokes equations rather than a looping video — and the cursor stirs it. It is capped at 1.5× device pixel ratio, pauses when scrolled out of view, and is skipped entirely for anyone who prefers reduced motion or whose browser lacks WebGL2, where a static gradient takes its place.
Everything else stays quiet. Article pages ship no client-side JavaScript at all. Latin faces are self-hosted and subset and Japanese falls through to the system mincho stack, so the theme makes no external requests and carries no multi-megabyte CJK font. Posts live in typed content collections, so a missing date or a malformed tag fails the build rather than the page.
Also included: canonical URLs, Open Graph and Twitter cards, JSON-LD, a sitemap, RSS, robots.txt and llms.txt; per-post social images generated at build time; dual-theme syntax highlighting that switches with the rest of the page; tag archives, pagination, a table of contents and a styled 404. Semantic landmarks, a skip link, visible focus rings, and contrast checked in both themes.
Built on Astro 7 and MIT licensed.










