Releases: holsee/cherry
Releases · holsee/cherry
Release list
cherry v0.6.1
Fixed
- topo and erosion no longer shift the page when a slow connection delivers their prose faces after the block window: their metric-matched fallbacks were tuned against the wrong skeleton (Arial standing in for a serif), and are now measured against the loaded faces (Times New Roman for Alegreya at 99.11%, Georgia for Fraunces at 105.31%), taking the late-swap layout shift from 0.13 to under 0.002. (#145)
- topo's still contour texture (the no-JS ground) no longer flashes for a second before the live relief: the head scriptlet marks the root before first paint, so JS-capable browsers go straight from plain ground to the canvas fade-in. (#145)
cherry v0.6.0
Added
deploy_pathssite config: declare root-relative prefixes a deployment serves beside the build (deploy_paths: ["t/"]for the theme exhibition at /t/), andcherry checktreats internal links under them as satisfied - so the gallery's demo links are plain root-relative URLs that work locally and deployed, with no exhibition-specific link rewriting. (#142)- Every official theme gains a "Using THEME" page on cherrybomb.dev (
/themes/NAME/): install, the styling ladder applied to that theme, the full token API with light/dark values and roles, the shipped-vs-inherited template split, and how to point a coding agent at the Cherry way. Generated from each theme's own manifest byscripts/gen_theme_docs.exs, so the pages cannot drift; the landing page shows six theme cards right after Plant, and the checklist links the gallery. The gallery itself becomes a hub-style card grid - each screenshot in a small browser-window frame with Live demo and Customise links - and the theme exhibition moves under cherrybomb.dev/t/ (built into the same Pages deployment; no themes. subdomain needed). (#142) - Ten more official themes take the catalog to thirty, in three bands. The limit:
atlas(the blog index as a map you pan and zoom, posts in tag regions, a minimap, a keyboard path and a list view),bellows(Anybody's width axis bound to scroll with CSS scroll-driven animations, no script),mercury(a WebGL liquid-chrome pool that dents under the pointer, the title cast in the same metal),flipdot(a departure board: titles flip in per character, Doto's dot-matrix face). The technique:transit(cross-document View Transitions carry a title from the index into its post, a scroll-timeline progress rule, a sticky title rail, zero JS),loom(a verlet cloth behind the mast, warp-thread rules, a weaver's draft index),topo(a live marching-squares contour field that goes flat under the reading column). The style:desktop(System 7 / Win98 chrome played straight: window, bevels, list view, dialog 404),swiss(the International Typographic Style on a visible twelve-column grid),sketchbook(hand-drawn rules that draw themselves on a view timeline, paper grain, tape). Every one keeps the rules: the same token API, no colour literals, contract 1.1, honest degradation, self-hosted OFL faces with the flash-free loading pass, a DESIGN.md and a conformance test. (#142) - Fifteen new official themes take the catalog to twenty, under one mantra: variation is key. Different layouts (centred masts, a left rail, a newspaper masthead, bento tiles, hero bands, a ruled table, magazine columns), different motion (canvas2d star, grain, leaf and wave fields; WebGL warp streaks and an aurora; kinetic type on text rings; cinematic scroll scenes; a looping video hero), and different styles (editorial, brutalist, risograph, CRT, product-page bento). Ten are strongly inspired by the ThreeUI catalog -
constellation,warp,erosion,vortex,halftone,isometric,sylva,tideform,cathode,kage- each with its own self-hosted latin-subset face (Unbounded, Geist, Syne, Fraunces, Bricolage Grotesque, Archivo, Sora, Newsreader, Schibsted Grotesk, Azeret Mono, Instrument Serif, Hanken Grotesk; all OFL, 9 to 46 KB per face); four follow alternate modern styles -broadsheet,brutalist,cinema(the video-background theme, a 200 KB silent loop shipped as a theme asset),bento; andshowoffstacks every technique at once on purpose. Every one keeps the rules: the same token API asdefault, no colour literals outside token lines, contract 1.1 partial shipping (from zero templates to three), and honest degradation for no-JS, reduced motion, and print. The token gate now iterates every built-in theme, and the gallery and exhibition carry all twenty. (#138) - Code block headers: a fence that names a language gets a slim bar above the block - the language in small text beside its editor-style file icon (devicon glyphs shipped in both official themes as
currentColorCSS masks; unknown languages get a generic file glyph).title="path"in the fence info adds the file path, Docusaurus-style; both parts optional, bare fences unchanged. The copy button rides the bar when one exists, so it never covers code. (#111) - cherrybomb.dev gains
/themes/: a gallery of every official theme with light/dark screenshot pairs (captured by the QA harness, following the viewer's scheme) linking into the live exhibition at themes.cherrybomb.dev, where every theme wears the same demo site with identical routes. (#137) - New official theme
prism(0.6.0 catalog, cutting-edge lane proof): a gradient-mesh atmosphere painted live by a ~5 KB hand-written WebGL fragment shader - no three.js, zero requests - under glass surfaces (backdrop blur with honest solid fallback). The mesh's uniforms come from the theme tokens via a documented token-to-uniform bridge, socherry config tokens.--color-accentrestyles the shader like a link; JS-off gets a CSS poster gradient from the same tokens, reduced motion freezes the first frame, print hides it entirely. Ships one template (its layout, mounting the canvas + island) and inherits the rest; Instrument Sans latin subset self-hosted (56 KB, OFL). Theme-local islands are now a documented convention (assets/js/themes/NAME/ built per theme). (#135) - New official theme
teletype(0.6.0 catalog, clinical lane): the all-mono devlog theme - Noto Sans Mono carries prose, structure, and code; paper printout by day, amber-phosphor terminal by night; markdown heading markers, dashed perforation rules, a status-line footer. CSS-only via contract 1.1, same token API asdefault. (#134) - New official theme
porcelain, the first CSS-only theme (0.6.0 catalog, clinical lane): glazed-ceramic ground as a full light-dark world, self-hosted Literata latin subset (upright + italic, 72 KB, OFL), sage accent, hairline understatement. Ships a manifest, a stylesheet, and two font files - templates inherit from the default theme via contract 1.1. Same token API asdefault, so overrides port across. (#133) - A
?theme=light|darkquery param forces that rendition for the view without touching the stored preference - shareable forced-theme links, and what the new screenshot harness (scripts/theme_shots.mjs: standard page set, two true-CSS-pixel viewports via CDP emulation, both renditions, print PDF of/cv/) drives for theme QA. (#132) - Template inheritance (theme contract 1.1): a theme may declare
inherit_templates: trueand skip shipping template files - unshipped templates render with the default theme's copies,theme.listmarks theminherited (framework), andgen.theme --frommaterialises them into forks. CSS-only themes are now a manifest, a stylesheet, and fonts. (#131)
Changed
- Fonts load without a flash: every
.woff2a theme ships underassets/fonts/is preloaded from the framework-owned head (so CSS-only themes get it without a layout), the official themes switch tofont-display: block, and each family gains a metric-matched local fallback face (size-adjustplus ascent, descent and line-gap overrides computed from the font) so a swap after a slow fetch moves nothing. On a throttled 1.5 Mbps link every face lands before first paint and layout shift stays under 0.01. (#140)
Fixed
- Theme personality CSS is back inside the
themecascade layer in all thirty themes (the sections appended after the layer had escaped it, in the official pair too), restoring the ladder's guarantee that a site's unlayeredcustom.cssand token overrides win by declaration order, never by specificity. A search-chrome reset in every non-official theme keeps the field and results on the prose face regardless of the nav's display styling. (#142) - Root-absolute links and sources written in markdown (
[blog](/blog/),<img src="/images/x.png">) now move underbase_pathlike every other internal URL; they used to 404 on a project-pages site.cherry checknow reports a root-absolute link that escapes the base path asbroken-linkinstead of skipping it as external. External (https://,//host/) URLs are untouched as before. (#140) - Phone search: the field no longer zooms the page on focus on iOS in any theme (the 16px coarse-pointer rule lost the cascade); constellation's results panel no longer paints under the page, and its field is a pill on its own row. Halftone squares its code block header, copy button, and the rest of its chrome, and the block wears one frame instead of two. (#140)
cherry v0.5.0
What's Changed
- One profile, two modes: careers-style /cv/ with /cv/timeline/ by @holsee in #96
- Stop abandoned live-reload streams exhausting the browser pool by @holsee in #97
- Back-merge 0.4.1 into develop by @holsee in #99
- Blog: six sockets, a live-reload leak in two acts by @holsee in #100
- Back-merge: six-sockets post into develop by @holsee in #101
- Landing page: lead with the mission, not the vocabulary by @holsee in #102
- Back-merge: landing mission copy into develop by @holsee in #103
- Built-in help for the CLI base and every verb by @holsee in #105
- Noto Sans Mono for code and icon-only copy buttons by @holsee in #106
- Landing: name the file gen.post creates, and the by-hand path by @holsee in #104
- Back-merge main into develop by @holsee in #107
- Release 0.5.0 by @holsee in #108
- Fix stale landing assertion blocking the 0.5.0 release gate by @holsee in #110
Full Changelog: v0.4.1...v0.5.0
cherry v0.4.1
What's Changed
Full Changelog: v0.4.0...v0.4.1
cherry v0.4.0
What's Changed
- post: Cherry and NimblePublisher by @holsee in #90
- feat: first-class Cloudflare deploys via gen.action --host cloudflare by @holsee in #91
- fix: cherry serve honours base_path by @holsee in #92
- release: 0.4.0 by @holsee in #93
- Ship 0.4.0 by @holsee in #94
Full Changelog: v0.3.0...v0.4.0
cherry v0.3.0
What's Changed
- chore: retire DO_NEXT.md and LATER.md into the issue tracker by @holsee in #82
- feat(serve): PORT env fallback and --name via cherrypicker by @holsee in #85
- fix(theme): overlays for sites using cherry as a hex dependency by @holsee in #86
- post: cherrypicker, names for your ports by @holsee in #87
- release: 0.3.0 by @holsee in #88
- Release 0.3.0 by @holsee in #89
Full Changelog: v0.2.0...v0.3.0
cherry v0.2.0
What's Changed
- feat: the styling ladder — tokens config, custom.css, @layer theme by @holsee in #51
- feat: light-dark() tokens — one pair, no synchronized dark blocks by @holsee in #52
- feat: content components — figure, video facade, callout containers by @holsee in #53
- feat: HEEx templates — the extension decides, components included by @holsee in #54
- fix: WCAG 2.5.8 tap targets + iOS input-zoom guard in both themes by @holsee in #55
- fix: theme.which arrows one file, theme.diff reports shadowed overlays by @holsee in #56
- feat: cherry new — the binary lane can scaffold by @holsee in #57
- feat(site): the cherrybomb.dev rework — landing story, full docs, project guides, dev blog by @holsee in #58
- fix(site): preview feedback — install cards, UK English, personal why-post by @holsee in #59
- feat(site): byline overlays, one landing column, pretty JSON by @holsee in #60
- feat(site+scaffold): the Elixir search engine everywhere by default by @holsee in #61
- feat(serve): dual-stack listener and a --verbose request log by @holsee in #62
- feat(site): landing copy pass and the token-write example by @holsee in #63
- release: 0.2.0 by @holsee in #64
- release: 0.2.0 to main by @holsee in #65
- docs: RELEASING.md — the release checklist, hex publish included by @holsee in #67
- fix(docs): absolute demo links for hexdocs, ExDoc warnings are stop signs by @holsee in #68
- release: 0.2.0 hexdocs link fix to main by @holsee in #69
Full Changelog: v0.1.0...v0.2.0
cherry v0.1.0
What's Changed
- fix: a site-local theme is not an overlay of itself by @holsee in #45
- feat: built-in search that needs no Node by @holsee in #46
- fix: the six findings from driving a real site CLI-only by @holsee in #47
- docs: a CLI-only guide, and the site it builds by @holsee in #48
- chore: bump to 0.1.0 by @holsee in #49
- release: v0.1.0 by @holsee in #50
Full Changelog: v0.1.0-rc.3...v0.1.0
cherry v0.1.0-rc.3
cherry v0.1.0-rc.2
What's Changed
- cherry upgrade: self-update for the standalone binary by @holsee in #26
- Agent skill: teach the cherry CLI, drift-gated against the registry by @holsee in #27
- Site enablers: favicon by convention, nav config, heading anchors, alerts by @holsee in #28
- feat(site): cherrybomb.dev brand pass — theme, guides, worked examples by @holsee in #29
- Site polish: search overlay fix, dash-free prose, brand assets license by @holsee in #30
- Brand title fix, copy buttons, Guides-first nav, Ctrl+K, top-ten landing by @holsee in #31
- Release: cherrybomb.dev site refresh to production by @holsee in #32
- gen.action: pin the build action to the running cherry's release tag by @holsee in #33
- fix(hex): package hygiene and hexdocs polish before first real publish by @holsee in #34
- fix(hex): bundle docs lockup; cherry.new scaffolds depend on hex by @holsee in #35
- fix(installer): ex_doc so cherry_new can publish with docs by @holsee in #36
- docs: Elixir-mode guide, cherry_new story, task table, badges by @holsee in #37
- Release: Elixir-mode guide + docs polish to production by @holsee in #38
- fix: address the four findings from the Windows agent validation by @holsee in #39
- chore: bump to 0.1.0-rc.2 by @holsee in #40
- release: v0.1.0-rc.2 by @holsee in #41
Full Changelog: v0.1.0-rc.1...v0.1.0-rc.2