Getting Started

Neon is a dark-only Ghost theme with a bold purple/pink gradient aesthetic, designed for creators who want a striking, modern look. It features scroll-reveal animations, a gradient hero section, topic-based homepage sections, and full membership support.

Latest version: 1.0.5

Requirements: Ghost 5.0 or later (Ghost 6.x recommended).

Installation

  1. Download the neon.zip file from your purchase confirmation email.
  2. In Ghost Admin, go to Settings → Design → Change theme.
  3. Click Upload theme and select the zip file.
  4. Once uploaded, click Activate.
Tip: Do not extract the zip file before uploading. Ghost expects the .zip file directly.

First Steps After Installation

After activating Neon, complete these essential setup tasks:

  1. Set your site title and description — Settings → General.
  2. Upload a logo — Settings → Design → Brand. Recommended: SVG or PNG, max height 40px. Light/white logos work best on the dark background.
  3. Configure navigation — Settings → Navigation.
  4. Create tags — Tags are used to generate topic sections on the homepage (e.g., Design, Technology, Culture).
  5. Set up membership — Settings → Membership to enable subscribe forms.
  6. Configure the hero section — Settings → Design → Custom → Homepage → show_hero_section.

General Settings

These settings affect the overall look and behavior of your site. Neon is a dark-only theme — there is no light mode or color scheme toggle.

Typography

Neon uses three font families:

  • Headings: Anton (sans-serif) — bold, condensed display font for maximum impact.
  • Body: Instrument Serif (serif) — elegant reading font with distinctive character.
  • UI elements: DM Sans (sans-serif) — clean, modern interface font for navigation, buttons, and metadata.

You can override the heading and body fonts via Ghost's custom font picker in Settings → Design → Brand → Typography. Neon respects Ghost's --gh-font-heading and --gh-font-body CSS variables.

Site Title

Set your site title in Settings → General → Title & description. The title appears in the header when no publication logo is uploaded, and is also used in the subscribe CTA, footer, and browser tab.

Homepage

The Neon homepage is built with distinct sections that use scroll-reveal animations to create a dynamic, engaging experience.

Hero Section

The hero section features a large gradient-animated title, a subtitle, and a pill-shaped email subscribe form.

Toggle Hero Visibility

Show or hide the hero via Settings → Design → Custom → Homepage → show_hero_section (default: enabled).

Customizing Hero Content

All hero text is configurable from Settings → Design → Custom → Homepage:

SettingDescriptionFallback
hero_labelSmall uppercase label above the titleHidden if empty
hero_titleMain heading with gradient textSite title
hero_descriptionSubtitle text below the headingSite description
Tip: Leave the fields empty to use your site title and description from Settings → General. The subscribe form automatically hides for signed-in members.

Topic Sections

The homepage groups posts by tag into topic sections. Each section displays:

  • #hashtag label with the tag name.
  • Topic navigation pills for quick filtering.
  • Posts from that tag with title, excerpt, and metadata.
  • A #featured sidebar highlighting key posts.

Sections appear dynamically for each of your primary tags. To control which tags appear, create tags in Ghost Admin → Tags and assign posts to them.

Tip: Tags with more posts appear first. Add a description to each tag for richer topic section headings.

Social Proof Section

Neon includes a social proof section with:

  • "As featured in" logos — Press/publication logos displayed in a horizontal row.
  • Stats text — A single line of trust-building text (e.g., "Trusted by thousands of readers").
  • Testimonial cards — Up to 3 testimonials with quotes and author names.

Configuring "As Featured In" Logos

Go to Settings → Design → Theme → Homepage:

  • featured_in_label — The heading text above logos (default: "As featured in"). Leave empty to hide the label.
  • featured_in_logo_1 through featured_in_logo_5 — Upload up to 5 brand/press logos (SVG or PNG recommended).
Tip: The "Featured in" row only appears when at least one logo is uploaded. All logos are automatically styled to match the dark theme.

Configuring Stats Text

  • stats_text — The trust line displayed above testimonials (e.g., "Trusted by thousands of readers · Published weekly · Free & paid tiers").
Tip: The social proof section only appears when stats_text is set. Leave it empty to hide the entire section.

Configuring Testimonials

Go to Settings → Design → Theme → Homepage:

  • testimonial_1_quote / testimonial_1_author — First testimonial.
  • testimonial_2_quote / testimonial_2_author — Second testimonial.
  • testimonial_3_quote / testimonial_3_author — Third testimonial.
Tip: Testimonials only appear when at least the first quote is filled in. You can use 1, 2, or all 3 slots.

Subscribe CTA

A subscribe call-to-action appears at the bottom of the homepage (visible to non-members only). It includes:

  • Site title as heading ("Subscribe to [Site Name]").
  • Description text.
  • Pill-shaped email input + subscribe button matching the hero form style.

This section is automatically hidden for signed-in members.

Post Page

Individual post pages are designed for immersive reading against the dark background with clear, high-contrast typography.

Layout

Each post page includes:

  • Primary tag label with published date and reading time.
  • Post title and excerpt.
  • Author name with avatar.
  • Feature image (container-width with rounded corners).
  • Post content (680px max-width for comfortable reading).
  • Tag pills at the bottom.
  • Author card with bio.
  • Previous/Next post navigation.

Reading Time

Reading time is displayed next to the date on post pages. To toggle it:

Settings → Design → Custom → Post → Show reading time

Set to false to hide reading time from all posts.

Membership & Subscriptions

Neon is built with Ghost's membership system in mind.

Setting Up Membership

  1. Go to Settings → Membership.
  2. Choose your access model: free, paid, or both.
  3. For paid tiers, connect Stripe in Settings → Membership → Stripe.

Once membership is enabled, Neon automatically shows:

  • Subscribe button in the header.
  • Sign in link in the header.
  • Subscribe forms in the hero and CTA sections.
  • Account link for signed-in members (replaces Subscribe/Sign in).

Paywall & Content Gating

Neon includes a custom paywall system with distinctive styling for the dark theme:

1. Post page paywall

When a reader doesn't have access to a gated post, Neon shows:

  • A custom lock icon styled with the purple accent gradient.
  • A paywall card with title, description, and a subscribe form with the pill-shaped email input.

The paywall adapts based on the reader's membership status:

  • Non-members see a "Subscribe now" button that opens the Ghost signup portal.
  • Free members see an "Upgrade your plan" button that links to account plan settings.

2. Visibility badge on post listings

Gated posts display a "Paid" text badge next to the reading time on the homepage and archive pages. This helps readers identify members-only or paid content at a glance.

3. How to gate a post

  1. Open any post in the Ghost editor.
  2. Click the settings gear (top right).
  3. Under "Post access", select:
    • Public — No paywall, visible to everyone. No badge.
    • Members only — Free and paid subscribers can read. "Paid" badge shown.
    • Paid members only — Only paid subscribers can read. "Paid" badge shown.

No theme code changes are needed per post — the same template handles all visibility levels automatically.

Tag & Author Pages

Tag Archive Pages

Each tag has an archive page at /tag/[slug]/. It displays:

  • Tag name with #hashtag styling and description.
  • All posts tagged with that tag, paginated.

Customize tag metadata in Ghost Admin → Tags → [Tag name]. Add a description to give context on the archive page.

Author Pages

Each author has a page at /author/[slug]/ showing their avatar, bio, and all their posts.

Update author information in Settings → Staff → [Author name].

Design System

Neon uses CSS custom properties (variables) for all colors, fonts, spacing, and border radii. Since Neon is a dark-only theme, there is a single set of color tokens. You can override any of these via Code Injection to customize the theme without editing source files.

Color Tokens

All colors are defined as CSS variables on :root. Neon uses a dark palette with purple/pink accents.

VariableValueUse
--color-bg #0a0a14Page background
--color-bg-secondary #111122Section backgrounds, cards
--color-text #F0F0F5Primary text
--color-text-secondary rgba(240,240,245,0.7)Body text, descriptions
--color-text-tertiary rgba(240,240,245,0.4)Metadata, captions
--color-accent #944DD6Buttons, CTAs, gradient accents
--color-accent-hover #7B3AB8Button hover states
--color-link #C77DFAInline links, read-more links
--color-link-hover #D9A5FFLink hover states
--color-border rgba(30,30,48,0.3)Dividers, card borders
--color-surface-card #1a1a2eCard backgrounds

Typography

VariableDefaultUse
--font-heading'Anton', sans-serifAll headings (h1–h6), hero title
--font-body'Instrument Serif', Georgia, serifBody text, excerpts
--font-ui'DM Sans', system-ui, sans-serifNavigation, buttons, metadata, labels
Ghost font picker: Ghost 6 includes a built-in font picker in Settings → Design → Brand → Typography. Fonts selected there automatically override --font-heading and --font-body via Ghost's --gh-font-heading and --gh-font-body variables.

Spacing & Layout

VariableValueUse
--container-max1200pxMaximum width of content container
--content-max680pxMaximum width of article text
--radius-sm4pxSmall border radius (tags, badges)
--radius-md8pxMedium border radius (cards, inputs)
--radius-lg12pxLarge border radius (feature images)
--radius-xl16pxExtra large border radius (paywall)

Customization Examples

Override any variable via Settings → Code Injection → Site Header:

Change accent color to cyan

<style>
:root {
    --color-accent: #06b6d4;
    --color-accent-hover: #0891b2;
    --color-link: #67e8f9;
    --color-link-hover: #a5f3fc;
}
</style>

Change the background tone

<style>
:root {
    --color-bg: #0d1117;
    --color-bg-secondary: #161b22;
    --color-surface-card: #21262d;
}
</style>

Use custom fonts

<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&display=swap" rel="stylesheet">
<style>
:root {
    --font-heading: 'Space Grotesk', sans-serif;
}
</style>

Widen the content area

<style>
:root {
    --content-max: 760px;
    --container-max: 1400px;
}
</style>

Advanced

Code Injection

Add custom CSS or JavaScript via Settings → Code injection. This is the recommended way to customize your theme without editing source files. See the Design System section above for all available CSS variables you can override.

Example: Disable scroll-reveal animations

<style>
.reveal { opacity: 1 !important; transform: none !important; }
</style>

Example: Hide "Powered by Ghost" in footer

<style>
.gh-foot-meta { display: none; }
</style>

Posts Per Page

By default, Neon shows 10 posts per page. To change this, you need to edit the theme's package.json file:

  1. Download the theme zip from Ghost Admin.
  2. Extract and edit package.json.
  3. Change "posts_per_page": 10 to your desired number.
  4. Re-zip and upload the theme.

Comments

Neon supports Ghost's native commenting system. Enable it in Settings → Membership → Commenting.

Options:

  • Off — No comments.
  • All members — Free and paid members can comment.
  • Paid members only — Only paid subscribers can comment.

Translations / Localization

Neon ships with full translation support. All user-facing UI strings use Ghost's {{t}} helper and are defined in locales/en.json.

How to translate Neon

  1. Download and extract the theme zip.
  2. Open locales/en.json to see all translatable strings.
  3. Create a new file for your language, e.g. locales/fr.json for French, locales/de.json for German.
  4. Copy the contents of en.json and translate the values (right side) while keeping the keys (left side) unchanged.
  5. Set your site language in Settings → General → Publication language (e.g., fr for French).
  6. Re-zip and upload the theme.

Example (French)

{
  "Subscribe": "S'abonner",
  "Sign in": "Se connecter",
  "Read more": "Lire la suite",
  "Previous": "Précédent",
  "Next": "Suivant"
}
Tip: You only need to include the strings you want to override. Any missing keys will fall back to the English value.

Translatable strings

Neon includes translations for: navigation labels (Subscribe, Sign in, Account), post navigation (Previous, Next), paywall text, subscribe forms, error pages, member pages (signup, signin, account), and more. See locales/en.json for the complete list.

Continuous Deployment

You can set up automatic theme deployment using GitHub Actions. When you push theme changes to your repository, the workflow builds, zips, and uploads the theme to your Ghost instance via the Admin API.

Requirements:

  • A Ghost Admin API key (Settings → Integrations → Add custom integration).
  • Store the key as a GitHub secret (e.g., GHOST_ADMIN_API_KEY).

See the Ghost Theme Docs for more details on the Admin API.

404 Error Page

Neon includes a styled 404 error page with the site header, footer, and a "Back to [Site Name]" link, all rendered against the dark theme background. No configuration needed — it works automatically.

Support

If you need help with Neon, reach out to us:

When reporting an issue, please include your Ghost version, theme version, and a description of the problem with screenshots if possible.

Need a customized Ghost UI? Hire an expert to get a site tailored to your brand.