Changelog
New releases, improvements, fixes and notable changes to Meridian.
1.0.0 — Initial public release
The first public release of Meridian — a print-editorial Ghost theme for news publications.
Homepage
- Asymmetric responsive 3-column lead grid (secondary aside + hero + most-read rail with sticky newsletter CTA).
- Editor's Picks horizontal scroll strip, populated from Ghost's native Featured flag (up to 8 posts).
- Seven tag-driven section row layouts below the fold:
#home-feature-package,#home-briefing,#home-briefing-carousel,#home-asymmetric-lead-list,#home-opinion-hedcut,#home-tag-columns,#home-standard-3-column-grid. - 18-post archive tail under the section band.
- Optional Editor's note panel sourced from a Ghost page with slug
editors-note.
Post page
- Hero with custom-excerpt deck, visibility chip (Public / Free members / Paid / Subscribers only), and
#breakingbadge. - Action toolbar: Save / Comments / Reader controls / Share, with a sticky compact clone that takes over after the toolbar scrolls off.
- Reading-progress indicator.
- Drop-cap support via the
#dropcapinternal tag. - Tier-aware member CTA (signup → upgrade → hidden) with copy editable in Theme → Site wide.
- Related coverage, recommendations, latest articles, from-this-writer, post navigation, Ghost-native comments.
Membership CTA (footer band)
- Full-bleed band rendered above the footer on every page.
- Editorial copy sourced from a Ghost page with slug
membership-cta(eyebrow ←custom_excerpt, issue line ←meta_description, trial badge ←meta_title, headline + body ← page body). - Accent phrase in headline created by highlighting in Koenig (
⌘+Option+Hon Mac /Ctrl+Alt+Hon Windows/Linux). - Pricing auto-fills from the cheapest active public paid tier; "save N%" line computed client-side, self-removes when there's no real savings.
- Deleting or unpublishing the
membership-ctapage hides the band site-wide — admin opt-out.
Theme settings
- 7 custom settings, all under Settings → Design & branding → Customize → Theme → Site wide: Color scheme, Background palette, Font heading, Font body, Dark mode logo, Member CTA headline, Member CTA body.
Typography
- 11 self-hosted variable typefaces (Source Serif 4, Newsreader, Fraunces, Roboto Slab, Inter, Literata, EB Garamond, IBM Plex Sans, Public Sans, Charter, System Serif) + JetBrains Mono for code.
- Conditional preload — only fonts in active use are preloaded; duplicate heading/body picks skip the duplicate preload.
- Ghost's custom-font picker overrides the theme setting when set; falls back to Meridian's pick when empty.
Paper palettes
- Four presets: Newsprint, Mist, Stone, Press.
- Each preset pairs a light-mode and dark-mode value; body-text contrast clears WCAG AAA on every paper × scheme combination.
Reader controls
- Text size (Small / Default / Large) and appearance (Light / Dark / System) in a masthead popover.
- Persisted to
localStorage(readingFontSize,theme) and synced across tabs. - Appearance picker hides when the admin locks the site to Light or Dark via the Color scheme setting.
Bookmarks
- Local-only saved-articles feature backed by
localStorage— no API key, no signup. - Save button on every post card and post hero; popover in the masthead utility row.
- Dedicated
/bookmarks/page (requires a Ghost page with slugbookmarks). - Cross-tab sync via the
storageevent.
Navigation
- Primary horizontal section bar in the masthead with edge-fade overflow on mobile.
- Secondary hamburger drawer + footer columns hydrate from Ghost's secondary navigation, using
#(heading) and-(sub-item) prefix conventions. - Drawer slides from the right edge in RTL locales (Arabic, Hebrew, Persian, Urdu).
- External URLs auto-gain an
↗icon.
Social links
- Native support for Facebook and X via Ghost's social-accounts settings.
- 20+ additional platforms via a Code Injection snippet (Instagram, YouTube, LinkedIn, Bluesky, Mastodon, Substack, etc.).
- Anchor-block form for per-link placement (
footer,author, or both) and custom SVG fallback.
@media printcover masthead, drop caps, and colophon footer with source URL + retrieval date.- Print button in the post toolbar triggers
window.print()directly.
i18n
- 183-key English locale shipped in
en.json. - Full RTL support for
ar,he,fa,ur. yarn lint:i18nparity check between templates andlocales/en.json.
Tech
- Tailwind CSS v4 with design tokens in CSS variables.
- Vite 8 build.
- Alpine.js 3 + Alpine plugins (collapse, focus, intersect).
- PhotoSwipe 5 (dynamic import — only loaded when Koenig galleries / image cards are present).
- Self-hosted variable fonts via Fontsource packages.
Requirements
Requires Ghost ≥ 6.0.0. Node.js ≥ 22.12.0 and Yarn 1.x are only needed to build from source — site editors uploading meridian.zip directly do not need them installed.