Add the 'eyes' banner design; seed banners only on select sub pages

Banner designs can now ship arbitrary markup as banner.html (canvas +
style + script), taking precedence over banner.svg; the artwork is
inlined in a div[data-design] wrapper either way, which the editor's
live preview preserves (and never re-runs its scripts).

The bundled 'eyes' design (themes/eyes/banner.html + banner.css sizing
the stage) replaces the eyes canvas script that was embedded in the
notes-on-urls page's own banner — the page now just picks the design.
Seeds set banners only on select sub pages (the-long-read gradient,
canvas-nights stars): the front page no longer gets a banner image and
shows the theme's default design. Seed entries carry a banner_design
field.
This commit is contained in:
2026-08-18 06:36:05 +00:00
parent c5a91edac7
commit 0ec9be330e
9 changed files with 494 additions and 161 deletions
+4 -3
View File
@@ -57,10 +57,11 @@ not for the public pages. See `docs/design-principles.md` for the design.
AFTER the banner design's artwork, so author code (e.g. a `<style>`
override) always wins over the design's own styles.
`Node.banner_design` picks a banner design: a theme folder name whose
`banner.css`/`banner.svg` supply the design's styles and inline SVG
artwork (marked `svg[data-design]`); "" = explicitly no design, None =
`banner.css` styles it and whose `banner.html` (arbitrary markup:
canvas + style + script) or `banner.svg` supplies the inline artwork
(wrapped in `div[data-design]`); "" = explicitly no design, None =
inherit (nearest ancestor, front page last, then the active theme's
own design if it ships banner.css/banner.svg). The design's banner.css
own design if it ships banner.css/banner.svg/banner.html). The design's banner.css
is linked in `<head>` (id `pagerite-banner`) between the theme and the
custom CSS.
`Data.version` is bumped on every write