Installing Community Themes
From the UI
- Open Settings → Appearance → Themes
- Click Browse Community Themes
- Browse available themes in the gallery
- Click Install on any theme you like
- The theme will be downloaded and appear in your theme list
Theme Installation Flow
When you install a community theme: Source: From theme-system.md documentationPublishing Your Theme
Step 1: Create Your Theme
Follow the quickstart guide to create your theme locally. Your theme should have:Step 2: Create GitHub Repository
Create a new repository on GitHub:Step 3: Create manifest.json
Ensure yourmanifest.json is complete and accurate:
Step 4: Submit to Community Registry
The community theme registry is a curated list maintained by the Inkdown team.
- Fork the inkdown-themes repository
- Add your theme to
themes.json:
- Create a pull request with:
- Theme entry in
themes.json - Screenshot showing your theme
- Brief description of your theme’s design philosophy
- Theme entry in
Step 5: Maintain Your Theme
As you update your theme:- Update the
versioninmanifest.json - Document changes in your README.md
- Create a new release on GitHub
- Users will see an update notification in Inkdown
Theme Requirements
To be accepted into the community registry, themes must:Technical Requirements
- ✅ Valid
manifest.jsonwith all required fields - ✅ At least one CSS file (
dark.cssorlight.css) - ✅ CSS uses only documented theme variables
- ✅ No JavaScript or executable code
- ✅ Proper semantic versioning
Quality Requirements
- ✅ Readable text with sufficient contrast (WCAG AA minimum)
- ✅ All UI elements styled appropriately
- ✅ Tested with various markdown content
- ✅ No broken colors or invisible elements
- ✅ Includes preview screenshots
Repository Requirements
- ✅ Public GitHub repository
- ✅ README.md with theme description and screenshots
- ✅ License file (MIT, Apache, or similar permissive license)
- ✅ No malicious or tracking code
Theme Discovery
Caching Strategy
The CommunityThemeManager uses in-memory caching to improve performance:- TTL: 1 hour
- Invalidation: Manual refresh or automatic on TTL expiry
- Storage: In-memory only (not persisted between sessions)
Features
| Feature | Description |
|---|---|
| Browse Themes | Fetches theme listings from the community registry |
| Caching | In-memory cache with 1-hour TTL |
| Install/Uninstall | Downloads and saves theme files locally |
| Version Tracking | Tracks installed versions for update detection |
Managing Installed Themes
View Installed Themes
All installed themes appear in Settings → Appearance → Themes:- Built-in themes (Default Dark, Default Light)
- Custom themes (locally created)
- Community themes (installed from GitHub)
Update Themes
When a theme author releases an update:- Inkdown checks for updates when browsing community themes
- An “Update” button appears for outdated themes
- Click to download and install the latest version
- Your current theme settings are preserved
Uninstall Themes
To remove a community theme:- Open Settings → Appearance → Themes
- Find the theme you want to remove
- Click the trash icon or Uninstall button
- Theme files are removed from disk
- If the theme was active, Inkdown switches to the default theme
Theme Repository Structure
Recommended repository structure for sharing your theme:README Template
Use this template for your theme’s README:Best Practices for Theme Authors
1. Provide Good Screenshots
Show your theme with real content:- Different heading levels
- Bold, italic, links
- Code blocks with syntax highlighting
- Lists and blockquotes
- Tables and callouts
2. Document Color Choices
Explain your color palette:3. Support Both Modes
If possible, provide both light and dark modes. This makes your theme more versatile and accessible.4. Version Your Releases
Use semantic versioning:1.0.0- Initial release1.1.0- Add light mode support1.1.1- Fix heading colors2.0.0- Major redesign
5. Respond to Issues
Monitor your theme repository for:- Bug reports (colors not working)
- Feature requests (add light mode)
- Accessibility concerns (contrast issues)
6. Test Thoroughly
Before publishing:- Test with all markdown elements
- Check contrast ratios
- Try different font sizes
- Test on different displays
- Get feedback from others
Theme Metadata Types
CommunityThemeListing
From the community registry index:FAQ
How long does theme review take?
How long does theme review take?
Theme submissions are typically reviewed within 1-2 weeks. Complex themes or those requiring changes may take longer.
Can I update my theme after publishing?
Can I update my theme after publishing?
Yes! Just update your GitHub repository and bump the version in manifest.json. Users will be notified of the update.
What if my theme is rejected?
What if my theme is rejected?
You’ll receive feedback on what needs to be fixed. Most rejections are for contrast issues or incomplete themes.
Can I monetize my theme?
Can I monetize my theme?
Community registry themes must be free and open source. You can accept donations or create paid themes distributed separately.
How do I remove my theme from the registry?
How do I remove my theme from the registry?
Submit a pull request removing your theme from themes.json. Your repository can remain public.
Next Steps
Quick Start
Create your first theme
Best Practices
Tips for creating great themes
CSS Variables
Complete variable reference
