Customize Markdown heading appearance in Joplin with per-level styling controls for H1 through H6, while keeping note Markdown clean and unchanged.
| Links: | |
|---|---|
| Maintainers: | mh8 |
| Version: | 1.2.1 |
| Minimum app version: | 3.6 |
| Downloads: This version: | 0 |
| Last updated: | N/A |
Take control of your headings and make your notes easier to read with custom colors, font sizes, font weights, and spacing.
Before and after applying Joplin Heading Control:

Joplin Heading Control enhances Markdown headings in both the editor and viewer while keeping your note content clean and unchanged. Fine-tune heading colors, font size, font weight, and spacing for H1 through H6 to create a clearer visual hierarchy that fits your workflow.
Consistent styling in both editor and viewer:

Joplin Heading Control is a small presentation-only plugin. It adds configurable colors, spacing and font size/weight to Markdown headings in both the Markdown editor and rendered viewer without injecting HTML into notes, rewriting headings, or changing stored Markdown.
| Heading | Default |
|---|---|
| H1 | #7AA2F7 |
| H2 | #9ECE6A |
| H3 | #E0AF68 |
| H4 | #BB9AF7 |
| H5 | #F87DFF |
| H6 | #44D0C4 |
Only valid six-digit hexadecimal color values are accepted, using the format #RRGGBB.
Invalid values are ignored and the affected heading falls back to its default color.
Open Joplin Heading Control from either:
Ctrl+Shift+P (Command Palette) > Configure heading styles
or click the heading-control button in the top-right of the note toolbar.
Each heading level from H1 through H6 can be configured independently with:
Colors, font size, font weight, and spacing apply on both desktop and mobile.
Changes in the rendered viewer apply immediately after confirming the configuration dialog.
Markdown editor typography and spacing are currently read when the editor initializes, so restart Joplin if those changes do not appear immediately in the editor.
On Joplin Mobile, open the plugin panels interface (button in the top toolbar) and select Joplin Heading Control, then choose Configure heading styles.
The configuration dialog supports the same H1 through H6 controls as desktop. The table can be swiped horizontally and zoomed if needed on smaller screens.
The configuration dialog currently opens behind the plugin panel, so close the plugin panel after selecting Configure heading styles to access it.
Mobile uses separately tuned default heading spacing, but all spacing values remain fully configurable.
On Joplin Desktop, open the Command Palette:
Ctrl+Shift+P
Run:
Reset heading settings to defaults
This restores all configured heading colors, spacing and font size/weight values to the plugin defaults.
The reset command updates the stored settings immediately, but the currently displayed note may not visually refresh at once.
Rendered-view settings generally refresh when Joplin reapplies the plugin settings. Markdown editor spacing may require restarting Joplin before the refreshed values are applied.
Smoother live refresh of editor layout settings is planned for a future version.
The plugin is purely presentational.
A note such as:
# Project
## Hardware
### Networking
remains exactly that in the note source.
The plugin does not:
.md files;This keeps notes clean for sync, Git, export, other Markdown editors, and LLM-based workflows.
Joplin Heading Control supports Joplin Desktop with a minimum application version of Joplin 3.6.
Tested on Linux with Joplin 3.6.16.
The same plugin package also works on Joplin Mobile.
Current testing confirms heading styling in both:
Builds produce:
publish/io.gitlab.mh8.JoplinHeadingControl.jpl
On Joplin Desktop:
Tools > Options > Plugins..jpl package.On Joplin Mobile, open the plugin settings and use the option to install a plugin from file.
Repository:
https://gitlab.com/mh8/joplin-heading-control
Clone:
git clone git@gitlab.com:mh8/joplin-heading-control.git
cd joplin-heading-control
npm install
Build the plugin:
npm run dist
The generated plugin archive is written to:
publish/io.gitlab.mh8.JoplinHeadingControl.jpl
The plugin keeps editor and viewer styling separate:
No note content is modified at any point.
Possible future additions remain intentionally limited to heading presentation.
Planned or considered:
The project deliberately avoids becoming a general theme engine and is focused only on heading style.
1.0.0 - Initial release with configurable H1-H6 colors in the Markdown editor and rendered viewer, desktop/mobile support, persistent settings, invalid-color fallback, and clean untouched Markdown.1.1.0 - Adds per-heading desktop spacing controls for space above and below, preserves native mobile spacing, and suppresses extra top spacing for a heading at the start of rendered note content.1.2.0 - Adds per-heading font size and font weight controls, extends configurable spacing to mobile with separately tuned defaults, introduces a compact custom configuration dialog with color pickers, adds desktop toolbar access and a mobile plugin-panel launcher, and improves H1 spacing below the editor underline.1.2.1 - Fixed image links in README for Joplin Plugin marketplace.Joplin Heading Control exists to make Markdown hierarchy easier to scan while preserving Joplin's lightweight, Markdown-first workflow.
The core rule is simple:
Heading presentation may change. Markdown content must not.