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
- Download the
neon.zipfile from your purchase confirmation email. - In Ghost Admin, go to Settings → Design → Change theme.
- Click Upload theme and select the zip file.
- Once uploaded, click Activate.
.zip file directly.First Steps After Installation
After activating Neon, complete these essential setup tasks:
- Set your site title and description — Settings → General.
- Upload a logo — Settings → Design → Brand. Recommended: SVG or PNG, max height 40px. Light/white logos work best on the dark background.
- Configure navigation — Settings → Navigation.
- Create tags — Tags are used to generate topic sections on the homepage (e.g., Design, Technology, Culture).
- Set up membership — Settings → Membership to enable subscribe forms.
- 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.
Logo & Icon
Neon supports two image types in Settings → Design & branding → Customize:
Publication Logo
When set, the logo replaces the site title text entirely in the header. Use this for a full wordmark or custom logo.
- Recommended format: SVG or PNG with transparency.
- Recommended max height: 40px for best header fit.
- Use a light or white logo for contrast against the dark background.
Publication Icon
When set (and no logo is uploaded), the icon displays next to the site title text. Use this for a small square mark or favicon-style icon (e.g., a monogram, symbol, or orb).
- Recommended: 60×60px square, SVG or PNG.
- Also used as the browser favicon.
Behavior Summary
| Logo | Icon | Header Shows |
|---|---|---|
| Set | Any | Logo image only |
| Not set | Set | Icon + site title text |
| Not set | Not set | Site title text only |
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:
| Setting | Description | Fallback |
|---|---|---|
hero_label | Small uppercase label above the title | Hidden if empty |
hero_title | Main heading with gradient text | Site title |
hero_description | Subtitle text below the heading | Site description |
Featured Card & Recent Posts
Below the hero, the homepage displays a featured section with two parts:
- Featured card — A large card showing the latest featured post with a "NEON" watermark text overlay, feature image, title, excerpt, and reading time.
- Recent posts sidebar — A numbered list of recent posts (1, 2, 3...) displayed alongside the featured card.
To set a post as featured:
- Open the post in Ghost Editor.
- Click the settings icon (gear) in the top right.
- Toggle Feature this post on.
The most recently published featured post appears in the featured card. Make sure it has a feature image set for the best visual result.
Topic Sections
The homepage groups posts by tag into topic sections. Each section displays:
#hashtaglabel with the tag name.- Topic navigation pills for quick filtering.
- Posts from that tag with title, excerpt, and metadata.
- A
#featuredsidebar 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.
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
- Go to Settings → Membership.
- Choose your access model: free, paid, or both.
- 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
- Open any post in the Ghost editor.
- Click the settings gear (top right).
- 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
#hashtagstyling 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.
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.
| Variable | Value | Use |
|---|---|---|
--color-bg | #0a0a14 | Page background |
--color-bg-secondary | #111122 | Section backgrounds, cards |
--color-text | #F0F0F5 | Primary 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 | #944DD6 | Buttons, CTAs, gradient accents |
--color-accent-hover | #7B3AB8 | Button hover states |
--color-link | #C77DFA | Inline links, read-more links |
--color-link-hover | #D9A5FF | Link hover states |
--color-border | rgba(30,30,48,0.3) | Dividers, card borders |
--color-surface-card | #1a1a2e | Card backgrounds |
Typography
| Variable | Default | Use |
|---|---|---|
--font-heading | 'Anton', sans-serif | All headings (h1–h6), hero title |
--font-body | 'Instrument Serif', Georgia, serif | Body text, excerpts |
--font-ui | 'DM Sans', system-ui, sans-serif | Navigation, buttons, metadata, labels |
--font-heading and --font-body via Ghost's --gh-font-heading and --gh-font-body variables.Spacing & Layout
| Variable | Value | Use |
|---|---|---|
--container-max | 1200px | Maximum width of content container |
--content-max | 680px | Maximum width of article text |
--radius-sm | 4px | Small border radius (tags, badges) |
--radius-md | 8px | Medium border radius (cards, inputs) |
--radius-lg | 12px | Large border radius (feature images) |
--radius-xl | 16px | Extra 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:
- Download the theme zip from Ghost Admin.
- Extract and edit
package.json. - Change
"posts_per_page": 10to your desired number. - Re-zip and upload the theme.
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
- Download and extract the theme zip.
- Open
locales/en.jsonto see all translatable strings. - Create a new file for your language, e.g.
locales/fr.jsonfor French,locales/de.jsonfor German. - Copy the contents of
en.jsonand translate the values (right side) while keeping the keys (left side) unchanged. - Set your site language in Settings → General → Publication language (e.g.,
frfor French). - 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"
}
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:
- Email: p@ccly.dev
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.
Comments
Neon supports Ghost's native commenting system. Enable it in Settings → Membership → Commenting.
Options: