Furry-centric investigative journalism, powered by Ghost & the Dope theme
Greymuzzle is a furry fandom-native newsroom focused on:
- Accountability in furry spaces
- Safety, anti-abuse, and anti-fascist reporting
- Labor, money, and power in the fandom
- Culture, history, and βgreymuzzleβ memory
- Artist profiles
Greymuzzle is:
- Anti-fascist
- Pro-survivor
- Pro-worker
- Explicitly queer-friendly and furry-centric
We expect all contributors to:
- Respect sources, including their boundaries and trauma
- Avoid harassment, dogpiling, or targeted hate
- Keep doxxable data and sensitive evidence out of Git and in secure channels
- A more formal Code of Conduct (e.g. Contributor Covenant) can be found in CODE_OF_CONDUCT.md.
A beautiful, accessible, and feature-rich Ghost theme designed specifically for investigative journalism in the furry community. Built on the foundation of the Dope theme with extensive enhancements for professional news reporting.
Live Site: https://greymuzzle.net
- Dark mode by default with light mode support and auto-switching based on system preferences
- WCAG AAA compliant color contrast ratios (7:1+ for normal text)
- Comprehensive accessibility features:
- Skip to content links
- Full keyboard navigation support
- Screen reader optimized
- Focus indicators
- ARIA labels throughout
- High contrast mode support
- Reduced motion preferences respected
- Article type badges: Investigation, Breaking, Profile, Analysis, Update
- Multi-author collaboration bylines with fursona support for team investigations
- Enhanced bylines with author photos, bios, social links, and location
- Podcast episode embeds with platform support (Spotify, Apple, YouTube, custom audio)
- Reading progress bar for longform articles
- Table of contents (auto-generated from headings)
- Publication and update timestamps with clear visual distinction
- Source citations and footnotes support
- Correction and update notices with timestamps
- Content warnings for sensitive material with collapsible sections
- Whistleblower tip submission prominently featured in header and footer
- Secure submission messaging with encryption indicators
- Key findings boxes for investigation summaries
- Methodology sections for transparency
- Timeline components for chronological stories
- Interactive data visualizations: Comparison tables, bar charts, stat cards, progress indicators
- Investigation series tracker with progress tracking and article navigation
- Related investigations sidebar for contextual cross-referencing
- Data source attribution cards with verification badges
- Side-by-side comparisons and percentage breakdowns
- Breaking news alerts with dismissible banners and localStorage persistence
- Document comparison tool for side-by-side policy/document analysis with change highlighting
- Pull quotes with attribution
- Callout boxes (info, warning, important, tip)
- Sidenotes and margin notes
- Interview-style blockquotes
- Image credits and captions
- Spoiler/sensitive content toggles
- Drop caps for feature stories
- Section dividers with icons
- Featured story hero with large images and excerpts
- Top stories section with numbered sidebar
- Category-based organization with color coding
- Latest news list with thumbnails
- Newsletter signup call-to-action
- Load more functionality
- Lazy loading for images and content
- Font optimization with font-display: swap
- Content visibility hints for browser optimization
- Minimal repaints and efficient animations
- Mobile-first responsive design
- Print-optimized styles for article archiving
Configure in Ghost Admin β Settings β Design:
Typography:
- Title font: Modern sans-serif, Elegant serif, or Newspaper classic
- Body font: Modern sans-serif or Elegant serif
Display Options:
- Show/hide author information
- Show/hide reading time
- Show/hide related posts
- Show/hide publication dates
- Show/hide update dates
- Enable/disable table of contents
- Enable/disable reading progress bar
Journalism Features:
- Whistleblower tip link (customize URL)
- Color scheme: Dark mode, Light mode, or Auto
- Download the latest release:
greymuzzle.zip - Log into Ghost Admin β Settings β Design
- Click "Upload theme" and select the zip file
- Click "Activate"
# Clone the repository
git clone https://github.com/yourusername/greymuzzle.git
cd greymuzzle
# Install dependencies
npm install
# Build the theme
npm run zip
# Upload dist/greymuzzle.zip to Ghost# Install dependencies
npm install
# Run build & watch for changes
npm run dev
# Build for production
npm run zip
# Run Ghost theme validator
npm testgreymuzzle/
βββ assets/
β βββ css/
β βββ general/ # Base styles, variables, accessibility
β β βββ vars.css # Design system (colors, typography, spacing)
β β βββ accessibility.css
β β βββ fonts.css
β β βββ performance.css
β βββ journalism/ # Journalism-specific components
β β βββ components.css # Bylines, citations, callouts
β β βββ longform.css # TOC, timelines, key findings
β βββ site/ # Site structure
β β βββ navigation.css # Header, footer, menus
β β βββ header.css
β β βββ ...
β βββ blog/ # Content layouts
β βββ homepage.css # News layout, story grids
β βββ post.css
β βββ ...
βββ partials/ # Reusable template components
βββ default.hbs # Main layout
βββ index.hbs # Homepage
βββ post.hbs # Article template
βββ page.hbs # Static pages
βββ package.json
Create tags in Ghost Admin for automatic styling:
investigationβ Gold badgebreakingβ Red badge with pulse animationprofileβ Mint green badgeanalysisβ Purple badgeupdateβ Teal badge
- Create a new post
- Add tag
investigationas primary tag - The article will automatically include:
- Investigation badge
- Whistleblower CTA at bottom
- Key findings box (add in content)
- Source citations section
Use Ghost's content editor with HTML cards:
Pull Quote:
<div class="pullquote">
Your compelling quote here
<span class="pullquote-attribution">Source Name</span>
</div>Callout Box:
<div class="callout callout-important">
<div class="callout-title">Important</div>
<p>Your important message here</p>
</div>Key Findings:
<div class="key-findings">
<h3 class="key-findings-title">Key Findings</h3>
<ul>
<li>Finding one</li>
<li>Finding two</li>
<li>Finding three</li>
</ul>
</div>Timeline:
<div class="timeline">
<div class="timeline-item">
<div class="timeline-date">Jan 2024</div>
<div class="timeline-marker"></div>
<div class="timeline-content">
<div class="timeline-title">Event Title</div>
<p>Event description</p>
</div>
</div>
</div>- Create a static page at
/submit-tip - Add secure submission form or instructions
- Configure link in theme settings:
/submit-tip
The homepage includes a newsletter signup section. Connect your Ghost newsletter in Settings β Memberships.
The theme automatically displays all authors for multi-author articles with enhanced cards showing:
- Author photos and bios
- Social media links (website, Twitter)
- Location information
- Fursona species (if configured in author custom fields)
To add fursona information to an author, add custom fields:
fursona_species: Species name (e.g., "wolf", "fox", "dragon")fursona_name: Character name
Embed podcast episodes using the partial:
Supported platforms:
- spotify: Spotify embeds
- apple: Apple Podcasts
- youtube: YouTube videos
- custom: Custom HTML5 audio player with direct MP3 link
The component includes:
- Responsive podcast players
- Platform links (Spotify, Apple, Google, RSS)
- Optional transcript with toggle
- Mobile-optimized design
The theme includes comprehensive data visualization components for presenting investigative data:
Stat Card - Highlight key metrics:
Comparison Table - Side-by-side data comparison:
Bar Chart - CSS-based horizontal bar charts:
Progress Indicator - Track investigation completion:
Data Source Card - Attribution with verification status:
Metrics Grid - Display multiple key metrics:
Side-by-Side Comparison:
Percentage Breakdown - Visual percentage distribution:
Track multi-part investigative series with progress indicators and navigation:
Features:
- Progress bar showing series completion
- Numbered list of all parts (published and upcoming)
- Key timeline events
- Previous/Next navigation
- Subscribe to updates option
Link to related investigative coverage:
Variants:
- Default: Full cards with images and excerpts
- Compact:
class="compact-variant"- Smaller cards in rows - Sidebar:
class="sidebar-variant"- Sticky sidebar positioning
Display urgent breaking news banners at the top of the page:
Priority levels:
- urgent: Red, highly visible (breaking news, safety alerts)
- important: Orange, prominent (major updates)
- info: Blue, informational (general announcements)
Features:
- Dismissible with localStorage persistence (24-hour memory)
- Auto-dismiss after 30 seconds for info banners
- Smooth slide-down animation
- Accessible with ARIA live regions
- Adjusts page layout automatically
Compare document versions side-by-side with change highlighting:
Change highlighting:
<mark class="added">new text</mark>- Green highlight for additions<mark class="removed">old text</mark>- Red strikethrough for deletions<mark class="modified">changed text</mark>- Yellow highlight for modifications
Features:
- Responsive side-by-side layout (stacks on mobile)
- Synchronized scrolling between documents
- Change summary with visual indicators
- Source attribution with verification badges
- Download links for original documents
- Print-optimized styles
- Investigation:
#d4af37(Gold) - In-depth reporting - Breaking:
#ff6b6b(Red) - Urgent news - Update:
#4ecdc4(Teal) - Story updates - Correction:
#ffa94d(Orange) - Corrections - Profile:
#95e1d3(Mint) - People features - Analysis:
#aa96da(Purple) - Opinion/analysis - Whistleblower:
#f38181(Coral) - Tips/sources
Customize in /assets/css/general/vars.css:
--brand-primary: #7c9ebd; /* Links, accents */
--brand-secondary: #9b8fb5; /* Secondary elements */
--brand-tertiary: #8ba89f; /* Tertiary elements */- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Mobile browsers (iOS Safari 14+, Chrome Mobile)
- Lighthouse Score: 95+ on mobile and desktop
- First Contentful Paint: < 1.5s
- Largest Contentful Paint: < 2.5s
- Cumulative Layout Shift: < 0.1
- Time to Interactive: < 3.5s
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test with
npm test - Submit a pull request
- Multi-author collaboration bylines β
- Podcast episode embeds β
- Interactive data visualization templates β
- Investigation series tracker β
- Public database browser integration
- Advanced search with filters
- Comment moderation tools
- Species-themed category icons
- Base theme: Dope by Ghost
- Built for: Greymuzzle Investigative Journalism
- Fonts: Inter, Lora, Playfair Display
Copyright (c) 2025 Greymuzzle - Released under the MIT license.
Based on Dope theme - Copyright (c) 2013-2025 Ghost Foundation
- Documentation: https://greymuzzle.net/theme-docs
- Issues: https://github.com/yourusername/greymuzzle/issues
- Community: https://greymuzzle.net/community
Made with πΎ for the furry journalism community