Kanso

by friesentius
Screenshot of the Kanso Obsidian theme
5
4
3
2
1

Description

This theme supports Dark Mode
This theme supports Light Mode

README file from

Github

Kanso for Obsidian

A calm, minimal Obsidian theme ported from kanso.nvim, with five variants: Zen, Ink, Mist, Void, and Pearl.

Kanso Zen in Obsidian, showing a note with a callout, code block, and task list alongside the graph view

Features

  • Five variants: Zen, Ink, Mist, and Pearl match kanso.nvim's palettes; Void is a true-black variant built on the same hues, for OLED screens
  • Code blocks colored like kanso.nvim
  • Things-inspired task checkboxes, with eight styled markers and a choice of square, rounded, or circle
  • Styling for the Tasks plugin's due, scheduled, and start dates
  • Active line highlight while editing, like kanso.nvim's cursorline
  • Focus mode, which hides the title bar, status bar, and ribbon for distraction-free writing
  • Optional custom accent color, overriding a variant's accent without swapping variants
  • Optional font-family choices for body text, headings, and code, each with web-safe fallbacks
  • Styling for Dataview, Kanban, Excalidraw, and Calendar
  • Image zoom: click and hold a rendered image in reading view to enlarge it
  • Larger checkbox and tag tap targets on mobile
  • Optional settings through Style Settings
  • Minimal mode: a reduced, monochromatic color palette for distraction-free writing, with muted headings, subdued tags, neutral italics, and quiet code syntax from kanso.nvim
  • Saturated foreground: increases the saturation of syntax highlighting and headings (+20% in dark mode, +40% in Pearl), matching kanso.nvim's saturated mode
  • Search & Diff highlights: serene altBlue search matches and full diffGreen/diffRed/diffYellow palette for diff code blocks, File Recovery, and Obsidian Git
  • Folder icons in the file explorer, open or closed to match the folder's state

Installation

From Obsidian (recommended): open Settings → Appearance → Themes → Manage, search for Kanso, then select Install and use.

Manually: download manifest.json and theme.css from the latest release, and put both in <your-vault>/.obsidian/themes/Kanso/. Then select Kanso under Settings → Appearance → Themes.

Settings

Kanso works without any plugins. With the Style Settings plugin installed, the Kanso section adds:

Setting Options Default
Variant Zen, Ink, Mist, Void, Pearl Without the plugin: Zen in dark mode, Pearl in light mode
Checkbox shape Square, Rounded, Circle Rounded
Readable line width Width in pixels 760px
Radius Size in pixels 8px
Editor font size Size in pixels 16px
Disable active line highlight On, Off Off
Focus mode On, Off Off
Minimal mode On, Off Off
Saturated foreground On, Off Off
Custom accent color Off, or a color picker Off
Body font Default, Sans-serif, Serif Default (Obsidian's text font setting)
Heading font Default, Sans-serif, Serif Default (same as body)
Monospace font Default, System monospace, Classic monospace Default (Obsidian's monospace font setting)
Disable image zoom On, Off Off (zoom is on)
Disable folder icons On, Off Off (icons are on)

Choosing a variant sets the color scheme: Pearl is always light, and Zen, Ink, Mist, and Void are always dark. Void sets the editor background to true black and raises the other surfaces just enough to stay distinguishable, for OLED screens, while keeping the same hue relationships as the other dark variants. The body, heading, and monospace font settings default to whatever you've chosen in Settings → Appearance → Font; picking anything other than Default here switches to that font instead.

Readable line width sets how wide a line gets, not whether the width is capped at all. Whether it's capped is Obsidian's own Settings → Editor → Readable line length toggle (also available as the Toggle readable line length command, so you can bind it to a hotkey). Turn that off and notes use the full pane width regardless of this setting; turn it on and notes are capped at the width you choose here, in both Reading view and Live Preview.

Turning on Custom accent color replaces the active variant's accent (links, the active nav item, focus rings, and interactive highlights) with your chosen color, without changing anything else about the variant. Leave it off to keep each variant's own accent.

Checkbox shapes: Square, Rounded, Circle

Task checkboxes

Marker Meaning Style
[ ] To do Outlined
[x] Done Green, muted text
[-] Cancelled Grey with an X, struck-through text
[>] Forwarded Blue, paper airplane
[<] Scheduled Violet, stopwatch
[!] Important Red, exclamation mark
[?] Question Yellow, question mark
[/] In progress Half-filled aqua

Tasks plugin

If the Tasks plugin is installed, Kanso colors its dates. Due dates are red when overdue and orange when due today. Scheduled and start dates are orange once they have passed. Created, done, and cancelled dates are muted. You don't need any extra markup.

Active line highlight

Kanso highlights the line your cursor is on while editing, matching the cursorline kanso.nvim shows by default. It only appears in edit mode, while the editor pane is focused, and uses a translucent fill so it stays subtle under text selections. With the Style Settings plugin installed, turn on Disable active line highlight to remove it.

Focus mode

With the Style Settings plugin installed, turning on Focus mode hides the title bar, status bar, and ribbon for distraction-free writing. Hover near the left edge to bring the ribbon back, the bottom-right to bring the status bar back, or the window controls in the top-right to bring the title bar back; move the pointer away and each hides again. On touch devices, where there's no hover to rely on, nothing is hidden in the first place: the title bar and status bar stay visible (mobile Obsidian has no ribbon to hide). Turn the setting off to restore the normal layout.

Minimal mode

Ported from kanso.nvim's minimal = true option, Minimal mode subdues color variety across your notes for a cleaner, quieter writing and reading environment. When enabled via Style Settings:

  • Headings (Muted): Replaces the multi-colored H1–H6 spectrum with a refined monochromatic hierarchy based on typographic weight and scale.
  • Note title: Matches the prominent neutral foreground rather than carrying a bright yellow accent.
  • Italics: Rendered cleanly through typographic slant alone, without adding yellow tint.
  • Tags: Styled as subtle, quiet chips with neutral backdrops instead of bright colored labels.
  • Links & Blockquotes: Softened and harmonized to prevent visual fragmentation across paragraphs.
  • Code & Syntax: Code blocks and inline code adopt kanso.nvim's exact minimal syntax scheme:
Element Color
Variables, Constants Foreground (white / neutral)
Parameters Gray
Functions, Methods Blue
Types Aqua
Keywords, Statements Gray
Operators (=, +, *, etc.) Yellow
Brackets, Punctuation Gray
Properties, Members Violet
Strings Green
Numbers Pink

Saturated foreground

Ported from kanso.nvim's foreground = "saturated" option, this setting enhances the saturation and vibrancy of syntax highlighting colors, headings, and tags (+20% in dark mode and +40% in Pearl/light mode). It is off by default and only affects foreground accents when enabled, leaving UI backgrounds and structural layout completely calm.

Plugin styling

Kanso recolors four popular community plugins with its own palette. No extra markup or settings are needed, and nothing changes if a plugin isn't installed.

  • Dataview: query tables, lists, and inline fields read like the rest of Kanso.
  • Kanban: lanes, cards, and tags already pick up Kanso through Obsidian's shared colors; Kanso also matches the lane corners to its radius setting and colors the WIP-exceeded badge.
  • Excalidraw: the toolbar, side panels, and popups around the canvas follow Kanso's palette. This is most effective with Excalidraw's own "Match Obsidian theme" setting enabled. The canvas itself can't be recolored by a theme: it's painted pixel-by-pixel by Excalidraw's own code, which, with "Match Obsidian theme" on, paints it with Excalidraw's fixed default dark or light canvas color rather than the drawing's own saved background or any CSS variable, so it stays a neutral grey or white instead of Kanso's background.
  • Calendar: day, week-number, and today colors already follow Kanso; Kanso also gives days with a note a subtle backdrop. Per-source dot colors are chosen in the plugin's own settings and are left as-is.

Image zoom

Click and hold a rendered image in reading view to enlarge it; release to shrink it back. It's on by default and works without any plugins. It only applies to images rendered in reading view, so it never interferes with Live Preview's image resize handles, and it skips images that are themselves links, so their normal click behavior is untouched. With the Style Settings plugin installed, turn on Disable image zoom to remove it.

Mobile

Kanso enlarges task checkboxes and inline tags on mobile, where Obsidian's own sizing (tied to the editor font) and Kanso's own tightened desktop tag padding otherwise leave both too small to tap reliably. This applies automatically on phones and tablets; desktop is unaffected. Obsidian's own mobile toolbar and safe-area handling are already generous and are left untouched.

Compatibility

Requires Obsidian 1.5.8 or later, on desktop and mobile.

Credits

  • Colors from kanso.nvim by webhooked.
  • The idea of styling alternate checkbox markers, and of a paper airplane for forwarded, comes from obsidian-things (MIT), which credits kepano's Minimal theme. Kanso's own selectors and colors are an independent implementation.
  • Checkbox marker and folder icons from Lucide (ISC licence; check and x are Feather-derived icons bundled in Lucide under the MIT licence), except the question-mark glyph, which is Kanso's own original hand-drawn icon from 1.0.1. See THIRD_PARTY_LICENSES.md for the full notices.
  • The idea of a focus mode that hides the title bar, status bar, and ribbon comes from kepano's Minimal theme (MIT). Kanso's CSS is an independent implementation.
  • The idea of click-and-hold image zoom comes from kepano's Minimal theme (MIT). Kanso's CSS is an independent implementation.

Feedback

Found a bug or have an idea? Open an issue.

License

MIT