Documentation

Parma Violet Setup Guide

1. What you need

  • A Ghost 6.0+ publication (Ghost(Pro) or self-hosted)
  • Admin access to Ghost Admin
  • The installable file parma-violet.zipIf you received parma-violet-package.zip, extract it first and upload only parma-violet.zip
    • If you received parma-violet-package.zip, extract it first and upload only parma-violet.zip
  • Optional: demo files from the customer package (demo-data/)

Parma Violet does not require a custom routes.yaml for normal publishing.


2. Install the theme

  1. Sign in to Ghost Admin.
  2. Open Settings → Design & branding.
  3. Choose Change theme → Upload theme.
  4. Select parma-violet.zip.
  5. Activate Parma Violet.
  6. Stay in Design settings — the next sections configure branding and theme options.

After activation you should see:

  • Homepage hero
  • Featured posts (when posts are marked Featured)
  • Latest posts grid with Load More
  • Header with search / sign in / subscribe (when Members is enabled)
  • Footer with theme toggle and “Published with Ghost”

3. Publication branding (Ghost Admin)

These values come from Ghost itself (not theme custom settings). Set them under Settings → Design → Brand (and related General / Site settings).

SettingWhere it appears in Parma VioletTips
Site titleLogo text (if no logo), hero title fallback, browser title patternsKeep it short for the header
Site descriptionHero subtitle fallback, footer blurb, SEO description if used as publication descriptionWrite a real sentence; avoid Ghost’s default placeholder
Publication logoHeader logo (light mode)Transparent PNG/SVG works best
Publication iconBrowser favicon / app iconSquare image
Cover imageUsed as hero image fallback when Hero style needs an image and no custom hero image is setWide landscape recommended
Accent colourButtons, links, highlights in light modePick a colour with good contrast on white
Social accountsAuthor cards and share destinations use Ghost social fields where applicableConfigure under author profiles and site social settings

Logo behaviour

  • Light / system-light: uses the publication logo when set; otherwise shows the site title as text.
  • Dark mode: uses Dark mode logo (theme setting) when set; otherwise falls back to the publication logo / title.

Configure under Ghost Admin (Settings → General and Design / metadata fields for your Ghost version). Do not hardcode these in the theme.

Suggested meta title

[object HTMLPreElement]

(Replace “Parma Violet” with your publication name when going live.)

Suggested meta description

[object HTMLPreElement]

Avoid leaving Ghost’s default description:

[object HTMLPreElement]

That placeholder should not appear on a production or marketplace demo site.

Verify after saving:

  • Homepage <title>
  • Meta description
  • Open Graph / Twitter cards (Ghost outputs these via {{ghost_head}})

5. Enable native Ghost features

Parma Violet is built around Ghost’s native features. Enable what you need:

FeatureGhost AdminTheme behaviour
MembersSettings → MembershipSign in / Subscribe / Account in the header
PortalMembership → PortalSignup, sign-in, account modals
NewslettersSettings → NewslettersPowers the footer/homepage email form
SearchNative Ghost searchHeader search button (data-ghost-search)
CommentsPost settings / MembershipComment UI on posts when enabled
Paid tiersMembership → TiersCards show “Members only” / “Paid members only” labels

No third-party membership plugin is required.


6. Theme settings (Design → Theme)

Open Settings → Design → Site design → Theme (wording may vary slightly by Ghost version).

Every custom setting shipped with Parma Violet is listed below. Labels in Admin are derived from the setting keys (for example hero_style → Hero style).

Homepage

SettingTypeDefaultWhat it does
Hero styleSelect: Default, Image, Background ImageDefaultLayout of the homepage hero
Hero textText(empty)Overrides site title in the hero when set
Hero subtextText(empty)Overrides site description in the hero when set
Hero imageImage(empty)Used when style is Image or Background Image. If empty, Ghost cover image may be used as fallback
Hero button textTextSubscribeLabel on the hero CTA button
Hero button linkText/#/portal/signup/URL for the hero CTA (Portal signup by default)
Show tag listBooleanOffShows popular public tags under the hero
Show about sectionBooleanOffShows the Featured Author block near the bottom of the homepage
About section author slugText(empty)Exact author slug to feature (e.g. ava-meridian). Visible only when Show about section is on. If the slug does not match an author, the section is hidden

Homepage sections (in order):

  1. Hero
  2. Popular tags (optional)
  3. Featured posts (posts marked Featured)
  4. Latest posts (paginated / Load More; 12 posts per page by default)
  5. Featured Author (optional)
  6. Newsletter CTA (via site layout)
  7. Footer

Post

SettingTypeDefaultWhat it does
Default post styleSelect: Default, Image left, Image right, Background imageDefaultDefault header layout for posts that do not use a custom template
SettingTypeDefaultWhat it does
CTA textTextSubscribe to our NewsletterHeading above the email signup form
CTA subtextTextGet updates every week. No spam ever.Supporting text under the CTA heading
Authors page slugText(empty)Slug of your Authors directory page (no leading slash), e.g. authors. Enables breadcrumbs: Home › Authors › Name
Tags page slugText(empty)Slug of your Tags directory page, e.g. tags. Enables breadcrumbs and the All Tags link in the tag list
Copyright textText(empty)Optional note shown beside the required “Published with Ghost” credit
Dark mode accent colorColour#a5a0ffAccent for dark / system-dark mode
Dark mode logoImage(empty)Logo used in dark mode; falls back to publication logo

7. Navigation and dropdowns

Configure under Settings → Navigation.

Primary navigation

Shown in the header. Typical links:

LabelURLNotes
Home/
Authors/authors/After you create the Authors page
Tags/tags/After you create the Tags page
About/about/Ordinary page

Secondary navigation

Shown in the footer (and related secondary nav areas). Good for Sign up, privacy, contact, etc.

Parma Violet builds accessible dropdowns from Ghost’s flat navigation list using a label convention:

  1. Parent label ends with [-] — example: Custom Pages [-]
  2. Parent URL must be # only (hash only). Do not use Portal paths like /#/portal/signup/ as a dropdown parent.
  3. Child labels start with [--] — example: [--] Authors, [--] Tags
  4. Place children immediately after the parent in the navigation list.

What the theme does:

  • Hash-only parents become a real <button> (not href="#")
  • Sets aria-expanded, aria-haspopup="true", and aria-controls
  • Supports Enter / Space to toggle, Escape to close, Tab navigation, click-outside and focus-out to close
  • Parents that are real links (not hash-only) stay as links and can still open a submenu

Example primary nav order:

[object HTMLPreElement]

The [-] / [--] markers are removed from the visible labels automatically.


8. Pages and custom templates

Create pages under Pages → New page, then choose Template in the page/post settings sidebar.

Template name in AdminFileWhen to useTypical slug
Authorscustom-authors.hbsDirectory of all authorsauthors
Tagscustom-tags.hbsDirectory of public tagstags
Table of Contentcustom-table-of-content.hbsLong-form posts with a sticky TOCassign on the post
Post Header Image Leftcustom-post-header-image-left.hbsPost with image on the leftassign on the post
Post Header Image Rightcustom-post-header-image-right.hbsPost with image on the rightassign on the post
Post Header Background Imagecustom-post-header-background-image.hbsPost with background-image headerassign on the post
  1. Create a page titled Authors, slug authors, template Authors.
  2. Create a page titled Tags, slug tags, template Tags.
  3. In theme settings, set:Authors page slug = authorsTags page slug = tags
  4. Add both pages to primary navigation.

Alternate homepage templates (optional)

home-2 and home-3 exist for demo-style alternate homepages. They are only routed when you upload the optional routes.yaml from the customer package (see Demo content). Normal sites can ignore them.


  1. Edit a post → enable Featured.
  2. Featured posts appear in the homepage Featured Posts section.
  3. If more than two featured posts exist, a slider with previous/next controls appears.

Default vs per-post layout

  • Default post style (theme setting) applies to standard post template posts.
  • Override any post by assigning a custom header template (Image Left / Right / Background) or Table of Content.

Post cards and archives

  • Homepage, tag, and author archives use card layouts with feature image, title, excerpt, tags, and author meta.
  • Posts without a feature image still render cleanly (no broken image URLs).
  • Visibility labels appear for members-only / paid content when applicable.

On post templates, related posts prefer the same primary tag; if none are available, recent posts are shown instead.

Pagination

Latest posts use Ghost pagination with a Load More button. Theme default: 12 posts per page (posts_per_page in the theme package).


10. Membership, Portal, newsletter, and CTA

  1. Enable Members and configure Portal.
  2. Keep hero button link as /#/portal/signup/ or point it to your preferred signup URL.
  3. Edit CTA text and CTA subtext in theme settings for the site newsletter block.
  4. Form labels such as “Email address”, “Sign Up”, success/error messages are controlled by locales/en.json (see below).
  5. Header buttons:Logged out: Sign in + SubscribeLogged in: Account

Comments and search use Ghost’s native UI when those features are turned on.


11. Authors, tags, and breadcrumbs

Authors

  • Fill each author’s name, bio, profile image, cover image, website, and social profiles in Ghost Admin.
  • Author archive: /author/{slug}/
  • Featured Author homepage block uses the author slug exactly (copy from the author URL).

Tags

  • Public tags appear on cards and in the optional homepage tag list.
  • Tag archive: /tag/{slug}/
  • All Tags links to /{tags_page_slug}/ when Tags page slug is set.

Breadcrumbs appear on posts, tags, and authors.

  • Tag pages: Home › Tags › {Tag} when Tags page slug is set
  • Author pages: Home › Authors › {Author} when Authors page slug is set
  • Posts: Home › {Primary tag} › {Title} when a primary tag exists

12. Dark mode and accent colours

  • Visitors can choose Light, Dark, or System in the footer theme toggle.
  • Accent colour (Brand settings) drives light-mode accents.
  • Dark mode accent color (theme setting) drives dark-mode accents (default #a5a0ff).
  • Upload a Dark mode logo if your primary logo is dark-on-transparent.

Test both modes after configuring buttons, links, and membership cards.


13. Editing static UI text (locales/en.json)

Many labels are not theme settings. They come from Ghost’s theme translation file:

[object HTMLPreElement]

When to use locales vs theme settings

Change this…Use
Hero title/subtitle overrides, CTA heading/subtext, copyright note, author slug, hero button labelTheme settings in Ghost Admin
“Latest Posts”, “Featured Posts”, “Load More”, “Sign in”, “Featured Author”, form messages, share labels, 404 text, etc.locales/en.json

How to edit (publisher-friendly)

  1. Download / unzip parma-violet.zip (keep a backup).
  2. Open locales/en.json in a text editor.
  3. Change only the values on the right-hand side. Keep the left-hand keys exactly the same.
  4. Save as UTF-8 JSON (valid JSON, no trailing commas).
  5. Re-zip the theme so package.json is still at the root of the ZIP (do not wrap files in an extra folder).
  6. Re-upload the ZIP in Ghost Admin and activate it.

Correct ZIP root:

[object HTMLPreElement]

Translation keys shipped with Parma Violet

Edit the quoted values as needed:

KeyDefault English valueTypical location
homepagehomepageLogo accessibility label
Main navigationMain navigationHeader nav aria-label
Toggle navigationToggle navigationMobile menu button
Secondary navigationSecondary navigationFooter nav
Main site navigationMain site navigationPrimary nav
Sign inSign inHeader
SubscribeSubscribeHeader
AccountAccountHeader (logged in)
User actionsUser actionsHeader actions group
SearchSearchSearch button
Theme:Theme:Footer theme toggle
Light / Dark / SystemLight / Dark / SystemTheme toggle options
Load MoreLoad MorePost pagination button
No more postsNo more postsPagination empty state
Latest PostsLatest PostsHomepage / 404 suggestions
Featured PostsFeatured PostsHomepage
Previous featured postsPrevious featured postsFeatured slider
Next featured postsNext featured postsFeatured slider
No postsNo postsEmpty plural helper
No authors found.No authors found.Authors template
No tags found.No tags found.Tags template
1 post / % post / % posts1 post / % post / % postsCounts
Table of ContentsTable of ContentsTOC template
About The AuthorAbout The Author(legacy string; homepage block uses Featured Author)
Featured AuthorFeatured AuthorHomepage featured author heading
Visit {name}'s websiteVisit {name}'s websiteAuthor website link
Other authorsOther authorsMulti-author tooltip
Author PostsAuthor PostsAuthor archive labelling
tagged postsTagged postsTag archive labelling
1 min read / % mins read1 min read / % mins readReading time
HomeHomeBreadcrumbs
Copy linkCopy linkPost share
Share on X / Facebook / LinkedInShare on …Post share
Copy link to clipboardCopy link to clipboardShare control
Link copied! / Copy failedLink copied! / Copy failedShare feedback
Related PostsRelated PostsPost footer
Email addressEmail addressNewsletter field
Sign UpSign UpNewsletter button
Please enter a valid email address.Please enter a valid email address.Newsletter error
Thanks for subscribing!Thanks for subscribing!Newsletter success
Popular TagsPopular TagsHomepage tag list heading
All TagsAll TagsTag list link
View all posts →View all posts →Author card
Social labels (Instagram, YouTube, TikTok, Mastodon, Threads, Bluesky, LinkedIn, Facebook, X, Website)sameAuthor social aria-labels
Members only / Paid members only / Tier-restricted post / Available to:sameVisibility badges
Authors / TagsAuthors / TagsBreadcrumbs
Skip to contentSkip to contentAccessibility skip link
Go to the front page →Go to the front page →404 / error pages
Theme errorsTheme errorsError template
The page you were looking for doesn't exist or has been moved.404 message
Published with {ghostLink} & {parmaVioletLink}Published with …Footer attribution (keep {ghostLink} and {parmaVioletLink} placeholders)

Adding another language

  1. Copy locales/en.json to locales/xx.json (Ghost language code, e.g. de, fr).
  2. Translate the values.
  3. Set the publication language in Ghost Admin to match.
  4. Re-package and upload the theme.

Important

  • Do not rename keys.
  • Do not remove the “Published with Ghost” attribution requirement; you may adjust nearby copyright via Copyright text theme setting.
  • After editing locales, always re-upload a valid theme ZIP.

14. Optional demo content and routes

If your download includes demo-data/:

FilePurpose
parma-violet-demo.jsonGhost content export (posts, pages, tags, authors, Style Guide)
routes.yamlOptional routes for /home-2/ and /home-3/
README.mdImport warnings and steps

Warning

Importing demo data can add or modify content. Create a backup first. Prefer a fresh or staging site. Do not import into production unless you intend to keep or carefully clean up the content.

Import steps

  1. Install and activate parma-violet.zip.
  2. Ghost Admin → Settings → Advanced → Import/Export.
  3. Import parma-violet-demo.json.
  4. Review posts, pages, authors, tags, and navigation.
  5. Upload routes.yaml only if you want the alternate demo homepages.
  6. Restart Ghost if your host requires it after route changes.
  7. Configure branding, theme settings, Portal, and navigation as in this guide.
  8. Replace demo content before a real launch.

After importing demo data

Suggested theme options for a demo-like homepage:

  • Show tag list: on
  • Show about section: on
  • About section author slug: a real imported author slug
  • Authors page slug: authors
  • Tags page slug: tags

15. Style Guide page

The demo export includes a Style Guide page (/style-guide/) that shows native Ghost editor cards (headings, lists, images, gallery, bookmark, button, callout, toggle, product, file, audio, video, embeds, headers, signup, tables, code, and more).

  • The Style Guide intentionally includes a native editor H1 as a content demonstration.
  • Ordinary posts and pages should still use a single sensible page-level H1 (usually the post/page title).
  • Use the Style Guide to verify card_assets, content width, and light/dark contrast after install.

16. Updating the theme

  1. Download the latest parma-violet.zip from Visioun.
  2. Ghost Admin → Design → Change theme → Upload.
  3. Activate the new version.
  4. Re-check theme settings (Ghost usually preserves custom settings, but verify after major updates).
  5. If you customized locales/en.json, re-apply your edits to the new package before uploading.

17. Launch checklist

Use this before going live:

  • Theme uploaded and activated
  • Site title, description, logo, icon, accent colour set
  • Meta title/description are unique (no “Thoughts, stories and ideas.”)
  • Members + Portal configured (if using subscriptions)
  • Newsletters connected to the signup form
  • Primary + secondary navigation complete
  • Dropdowns tested with keyboard (Enter, Space, Escape, Tab)
  • Authors + Tags pages created and theme slugs set
  • Homepage hero, featured posts, and Featured Author reviewed
  • CTA text/subtext match your brand
  • Dark mode accent + optional dark logo checked
  • Sample post with comments/search verified if those features are on
  • 404 page returns a proper not-found experience
  • Mobile layout checked around 320–390px width
  • Locale strings customized if you need non-default English labels
  • Demo content removed or replaced for production

18. Troubleshooting

ProblemWhat to try
Hero shows site title/description instead of custom copySet Hero text / Hero subtext, or change Brand title/description
Hero image missingSet Hero style to Image or Background Image, upload Hero image, or set a publication cover image
Featured Author section missingTurn Show about section on and set a valid About section author slug
All Tags link 404sCreate Tags page and set Tags page slug
Breadcrumbs skip Authors/TagsSet Authors page slug / Tags page slug to match page slugs
Dropdown parent navigates away or looks brokenParent URL must be exactly #; label must end with [-]
Subscribe / Sign in missingEnable Members and Portal
Newsletter form does nothingEnable Members + at least one newsletter; check Portal/site URL
TOC empty on TOC templatePost needs h2/h3 headings in content; template loads local Tocbot from theme assets
Edited English strings not showingConfirm you edited locales/en.json, re-zipped with correct root, and re-uploaded
GScan / upload errorsEnsure package.json is at the ZIP root; do not upload parma-violet-package.zip
Dark mode contrast odd on buttonsSet Dark mode accent color separately from the light Brand accent

Support

When contacting support, include: theme name Parma Violet, theme version (from package.json), Ghost version, publication URL, and a short description of the issue. Do not send passwords or API keys.


License

Parma Violet is a commercial Visioun theme. Purchasing or downloading the theme does not transfer copyright or permit redistribution except where explicitly allowed by the supplied licence.