Noir documentation

Noir homepage

A cinematic, dark-first Ghost theme for photo-journals, film writing and long-form visual stories.

Thank you for choosing Noir. This guide covers everything from uploading the theme to setting up paid memberships. If something is not covered here, write to support@codememory.com — we answer within one working day.

Highlights

  • Full-screen homepage hero with a slow cinematic push-in
  • Frosted header that floats over photographs
  • Alternating feature frames with large italic numbers
  • The Reel: a sideways-scrolling strip of featured stories
  • Optional film-grain texture over the whole site
  • Two post layouts: full-screen photo header and Split (photo fixed on the left)
  • Full-width 'Next story' band with its photograph
  • Collections page with large photo tiles
  • Membership page with tiers and a monthly/yearly switch
  • Styled paywall for members-only and paid stories
  • Sign in, sign up and account pages
  • Dark first, with light and system modes and a reader toggle
  • Reading progress bar and image lightbox
  • Side menu with collections and theme switch
  • Self-hosted fonts (Instrument Serif, Inter Tight)
  • Fully translatable, 16 theme settings, no jQuery

What is in the download

themeforest-noir-ghost-theme/
├── documentation/                          ← you are here
└── noir_1.0.0_for_ghost_6.0.0_or_later/
    ├── noir.zip                          ← upload this file to Ghost
    └── noir/                             ← the same theme, unzipped, with source files

You only need noir.zip to use the theme. The unzipped folder is there for developers who want to change the code (see Development).

Installation

  1. Sign in to your Ghost admin (yoursite.com/ghost).
  2. Go to Settings → Design & branding → Customize → Change theme.
  3. Click Upload theme and choose noir.zip from the noir_1.0.0_for_ghost_6.0.0_or_later folder. Do not upload the whole download.
  4. Click Activate.
Ghost(Pro) customers: custom themes need the Creator plan or higher. Self-hosted Ghost: any version from 6.0.0 works.

Updating

When a new version is released, download it from your ThemeForest Downloads page and upload the new noir.zip the same way. Ghost asks whether to overwrite the existing theme — choose Overwrite. Your content, navigation and theme settings are kept.

If you edited the theme files yourself, keep a copy of your changes first: an update replaces every file.

Quick setup (10 minutes)

To make your site look like the demo, do these steps in order. Each one is explained in detail further down.

  1. Brand: Settings → Design & branding → set the Accent colour, upload a logo and a site icon.
  2. Navigation: Settings → Navigation → add your main links (see Navigation).
  3. Pages: create the pages in Pages and templates and pick the matching template.
  4. Membership: Settings → Membership → turn on signups; add paid tiers and connect Stripe (see Membership).
  5. Theme settings: Design & branding → Theme tab (see Theme settings).
  6. Tag images: give each main tag a feature image — it fills the tag page header and the Collections tile.
  7. Featured posts: mark 4–8 posts as Featured for the Reel.

Logo, colours and fonts

Accent colour

Settings → Design & branding → Accent colour. Noir uses it for buttons, links, highlights and the reading-progress bar. Noir's default is a warm projector-light amber (#D9A35B), used sparingly for kickers, numbers and buttons.

Logo

Upload a logo in Design & branding → Brand. Without a logo, Noir shows the site title in the theme's display font. A transparent PNG or SVG around 400 × 100 px works best. If your logo is dark, upload a light version in the Theme tab under Logo for dark mode.

Fonts

Noir ships its own fonts (Instrument Serif, Inter Tight), hosted inside the theme — no requests to Google. To use different fonts, pick a Heading font and Body font in Design & branding → Brand. The theme follows your choice everywhere. Choose Theme default to go back.

Light and dark mode

In the Theme tab, Color scheme sets the default: Light, Dark or System (follows the reader's device). Readers can switch with the moon/sun button in the header or the switch in the menu; their choice is remembered on that device.

Theme settings

Settings → Design & branding → Customize. Theme settings are split between the Site wide, Homepage and Post tabs. Every setting:

SettingGroupTypeDefaultWhat it does
Color schemeSite wideselectDark (Dark / Light / System)Default colour scheme. Readers can still switch with the toggle.
Logo for dark modeSite wideimage—A light version of your logo, shown in dark mode.
Show grainSite widebooleanOnA subtle film-grain texture over the whole site.
Hero sourceHomepageselectLatest post (Latest post / Featured post)Which story fills the full-screen homepage hero.
Frames titleHomepagetextFeature stories
Show reelHomepagebooleanOnSideways-scrolling strip of featured posts.
Reel titleHomepagetextThe Reel
Interlude textHomepagetextStories told in light, and the dark between.Large line of text in the band above the subscribe form.
Subscribe titleHomepagetextStay for the next reelHeading of the homepage subscribe block.
Subscribe textHomepagetextOne photo story every Sunday, straight to your inbox. Free.Text of the homepage subscribe block.
Show next storyPostbooleanOnFull-width 'Next story' band with its photo at the end of each post.
Show share buttonsPostbooleanOnShare buttons (X, Facebook, LinkedIn, copy link) under posts.
Show author boxPostbooleanOnAuthor photo and bio under posts.
Show related postsPostbooleanOnThree posts from the same tag under each post.
Show reading progressPostbooleanOnProgress bar at the top of the screen while reading a post.
Footer textSite widetextemptyShort text in the footer. Empty = the site description.

Homepage

  1. Hero — a full-screen story with a slow push-in. Hero source chooses the latest post or your newest featured post.
  2. Feature stories — the next three posts as large alternating frames, numbered 01–03. Rename the section with Frames title.
  3. The Reel — up to eight featured posts in a sideways strip with arrow buttons. Settings: Show reel, Reel title.
  4. Interlude — one large italic line (Interlude text) and a subscribe form for visitors (Subscribe title, Subscribe text).
  5. More stories — the rest of your posts with Load more.
Noir is built for photographs. Every post should have a feature image of at least 2000 px wide.

Posts and photographs

By default a post opens with its feature image filling the screen and the title over the bottom of the photo. The image caption appears in the lower right corner. Posts without a feature image get a simple text header.

Choose the Split template for photo essays: the feature image stays fixed on the left half of the screen while the story scrolls on the right. On phones the photo sits above the text.

Inside a post, use wide and full image widths generously, and galleries for sequences. Captions are set small with an amber dash. Click any photo to open it full screen.

Film grain and dark mode

Show grain (Site wide tab) adds a subtle animated film-grain texture over the whole site. It is very light and never blocks clicks. Turn it off for a cleaner look. It stops moving for readers who have reduce motion turned on.

Noir is designed dark first. Color scheme can be set to Light or System, and readers can switch with the sun/moon button.

Pages and templates

Noir includes page templates for the pages every membership site needs. Create a page in Ghost (Pages → New page), set its URL in the page settings, then choose the Template in the same panel.

TemplateSuggested URLUse
Membership
custom-membership.hbs
/membership/Your tiers with a monthly/yearly switch. The page body (for example a FAQ made of toggle cards) appears below.
Collections
custom-collections.hbs
/collections/Every public tag as a large photo tile with its image, story count and description.
Writers
custom-writers.hbs
/writers/Every author with at least one post, as a portrait grid (black and white until hovered).
Signin
custom-signin.hbs
/signin/Email sign-in form (magic link). The page's feature image fills the right half.
Signup
custom-signup.hbs
/signup/Free signup form with name and email. The page's feature image fills the right half.
Account
custom-account.hbs
/account/Signed-in members see their plan, renewal date, card and links to manage billing and newsletters.

Tip: the membership page shows your tiers automatically. Anything you write in the page body appears underneath — the demo uses toggle cards for a FAQ.

Post templates

Choose a template per post in the post settings panel → Template.

TemplateUse
Split
custom-split.hbs
Feature image fixed on the left half while the story scrolls on the right. Best for photo essays and interviews.

Membership, tiers and payments

Noir is built for Ghost's members features: free and paid signups, tiers, a paywall and the Portal popup.

1. Turn on signups

Settings → Membership → Access → Who should be able to subscribe? → Anyone can sign up.

2. Connect Stripe

Settings → Membership → Tiers → Connect with Stripe. Use test mode first, then switch to live mode when you are ready to take real payments.

3. Create tiers

Settings → Membership → Tiers. Add a name, monthly and yearly prices, a description and benefits. Noir shows every public tier on the membership page with a monthly/yearly switch, and marks the second tier as Most popular.

4. Members-only content

In a post's settings set Post access to Members only, Paid-members only or specific tiers. Readers without access see the start of the post and a paywall box that invites them to join or upgrade. To choose where the preview stops, add a Public preview divider in the editor (type /public).

5. Sign-up forms and buttons

Subscribe forms in the theme create free members and send a confirmation email. Every Subscribe, Sign in and Account button opens Ghost's Portal popup, so members can change plans, update cards and cancel without leaving your site.

Emails (sign-in links, receipts) need working email. On Ghost(Pro) it works out of the box. Self-hosted sites must configure Mailgun or SMTP in config.production.json.

Newsletters, comments and search

Newsletters: Settings → Newsletters. Posts can be sent by email when you publish. The theme's subscribe forms subscribe readers to your default newsletters.

Comments: Settings → Membership → Commenting. When on, comments appear under every post that the reader has access to.

Search: works out of the box. The search icon in the header opens Ghost's search; readers can also press Ctrl/⌘ + K.

Reading features

  • Reading progress bar on posts, in the post's topic colour (can be turned off in the Post tab).
  • Image lightbox: click any image or gallery photo in a post to see it full screen; use the arrow keys to move through a gallery.
  • Every editor card is styled: images (regular, wide, full), galleries, quotes, callouts, toggles, bookmarks, buttons, videos, audio, files, products, headers and signups. Create a page with every card to check your brand — the demo's style guide shows them all.

Posts per page

The home, tag and author pages load 10 posts, then a Load more button fetches the next set without reloading the page. To change the number, edit "posts_per_page" in package.json, zip the theme folder and upload it again.

Translation

Every word in the theme can be translated.

  1. In the unzipped theme folder, copy locales/en.json to a new file named after your language code, for example locales/fr.json.
  2. Translate the values (the text on the right). Keep the keys (the text on the left) and anything in {curly braces} unchanged.
  3. Zip the theme folder and upload it.
  4. Settings → General → Publication language → enter the same code (fr).

Custom CSS

Small style changes do not need a new theme upload. Settings → Code injection → Site header:

<style>
.has-grain::after { opacity: .03; }
.hero-title { font-style: italic; }
</style>

Development

For larger changes, work on the unzipped noir/ folder. You need Node.js 20 or later.

cd noir
npm install        # once
npm run dev        # rebuild CSS/JS on every change
npm run build      # one-off build
npm test           # check the theme with gscan
npm run zip        # dist/noir.zip, ready to upload

CSS lives in src/css (one file per area, joined by main.css); JavaScript in src/js. Built files go to assets/built. Templates are Handlebars files in the theme root and in partials/.

Questions

The homepage looks empty after I activated the theme.

The home sections use your posts, featured posts and tags. Publish a few posts, mark some as Featured and add tags. The Reel appears once some posts are featured.

The membership page shows no prices.

Paid tiers only appear once Stripe is connected and the tiers are public (Settings → Membership → Tiers).

Sign-in emails do not arrive.

Check your email settings (self-hosted: Mailgun or SMTP in the config file). Ask readers to look in their spam folder.

How do I remove "Published with Ghost" from the footer?

Delete the link from partials/footer.hbs in the unzipped theme, zip the folder and upload it again.

Can I use the theme on more than one site?

A Regular licence covers one site (one end product). Buy one licence per site.

Are the demo images included?

No. Demo photos come from Pixabay and are only used on the demo site. The theme itself contains no stock photos.

Support

Support is included with your purchase and covers: answering questions about the theme's features, and fixing bugs. It does not cover custom changes or problems with third-party code.

Email support@codememory.com with your purchase code and your site address. See the changelog for what changed in each version and third-party materials for credits.