Kenny Wu473 downloadsObsidian theme inspired by tw93/kami. Warm parchment + ink-blue accent, serif-led hierarchy.
For a more continuous Folio Shell across New Tab, Reading, Editing, sidebars, Outline, Ribbon, and Reading Stage, optionally install Kami Reader Companion. Kami Reader works independently, and Companion also supports Obsidian's Default Theme.
Last updated: 2026-08-11
Inspired by tw93/kami. Not affiliated with or endorsed by tw93. All visual design tokens trace to the original kami project (MIT); this repo is an unofficial Obsidian adaptation.
An unofficial Obsidian Workspace adaptation inspired by tw93/kami. It translates kami's print-grade typographic system — warm parchment surface, ink-blue accent, serif-led hierarchy, warm-gray neutrals — onto the Obsidian editor without changing Obsidian's navigation model.
Status: Published on the Obsidian Theme Gallery. Public repo: https://github.com/KKenny0/obsidian-kami · Latest release:
0.2.1
Reviewed against Kami v1.11.0 on
2026-08-02. The complete Workspace shell is an unofficial Obsidian adaptation.
Dark mode intentionally retains --bold-weight: 600 for screen readability; it
is an exception to Kami's print-emphasis rule, not a claim of exact conformance.
| Token | Light | Dark | Role |
|---|---|---|---|
| Parchment / Deep Dark | #f5f4ed |
#141413 |
Primary note background |
| Ivory / Dark Ivory | #faf9f5 |
#1a1917 |
Sidebars, surfaces |
| Warm Sand | #e8e6dc |
#353330 |
Borders, dividers |
| Dark Surface / Warm Ivory | #30302e |
#e8e3d2 |
Body text |
| Ink Blue / Ink Light | #1B365D |
#2D5A8A |
Accent: headings, links, selection, CTA |
| Olive | #504e49 |
#b4b09e |
Quote / caption text |
| Warm Highlight | #f3e3a8 |
#5a4a1f |
==mark== highlight |
| Tag Tint | #E4ECF5 |
#E4ECF5 |
Tag background (solid, never rgba) |
All neutrals carry a yellow-brown warm undertone (no cold blue-grays) in both light and dark variants. Ink blue is used sparingly — the print-design ≤5% rule is relaxed for the editor context but the intent holds: accent only, never chrome.
| Reading View (Light) | Editing View (Light) |
|---|---|
![]() |
![]() |
| Reading View (Dark) | Callout Severity Ladder |
|---|---|
![]() |
![]() |
| Featured Card Embed | Command Palette | Settings Panel |
|---|---|---|
![]() |
![]() |
![]() |
| Task Completion in Nested Lists |
|---|
![]() |
Screenshots are captured in screenshots/. See
screenshots/SCREENSHOTS.md when refreshing
the set for a new release. Release screenshots must use the synthetic fixture
vault described there; never capture a personal or production vault.
This theme ships a Style Settings schema for the variables users are most likely to tune. No CSS editing is required.
After installing the Style Settings community plugin, go to Settings → Style Settings → Kami Reader to adjust:
The schema intentionally exposes only 6 high-leverage variables. Everything else stays fixed in theme.css to honor kami's restraint principle: too many switches would dilute the design system.
/* @settings ... */ YAML at the top of theme.css. Style Settings does not scan .obsidian/snippets/ for standalone JSON files, so snippet installs need the schema inside the CSS.data-theme.json. Obsidian reads it when the theme is installed under .obsidian/themes/kami-reader/.Keep both schema copies in sync when changing user-facing settings.
--font-text-theme: "Charter", "Georgia",
"LXGW WenKai Screen", "LXGW WenKai",
"Source Han Serif SC", "Noto Serif CJK SC",
"Songti SC", "STSong", "SimSun", serif;
/System/Library/Fonts/Charter.ttc),
no install needed. Falls back to Georgia on other platforms. This is the font
kami itself uses for English.Only LXGW WenKai Screen needs manual install. Without it, CJK falls back to
Songti SC (macOS) / SimSun (Windows) — readable but loses the kaiti warmth.
LXGWWenKaiScreen-Regular.ttf + Bold.ttf)Gallery installs are unaffected by the macOS Sequoia sandbox issue described below. Obsidian writes the theme files itself, so App Store users can install Kami Reader cleanly from Browse Themes.
⚠️ Why this section exists. Mac App Store Obsidian runs in a sandbox. macOS Sequoia 15+ tags every file created by
cpfrom Terminal withcom.apple.provenance. The sandbox then refuses to load those files as theme resources — Obsidian silently skips the theme folder. This matters for developers iterating on theme.css who copy files into their own vault's.obsidian/themes/directory. End users installing via Gallery (the path above) are not affected.
The workaround for local iteration: ship kami as a CSS snippet instead of a
theme, and inject it via Obsidian's own Vault API from the DevTools console.
Files written by app.vault carry Obsidian provenance and load normally.
body.<name>-theme class will out-spec kami's
body.theme-light selector)../sync.sh
inject-kami-snippet.js, Cmd+A select all, Cmd+C copy.Cmd+Option+I → Console tab → Cmd+V paste → Enter.
You should see ✓ kami.css created (... chars).# Edit theme.css, then:
./sync.sh
# Re-copy inject-kami-snippet.js contents → paste into Obsidian Console.
# Then toggle the kami snippet off → on to force reload.
Hot-reload of modified snippets is not automatic — Obsidian reads snippet
files at startup. After re-injecting via app.vault.modify, toggle the snippet
off and on in Settings → Appearance → CSS Snippets to pull the new content.
Current coverage includes a complete Workspace shell:
#141413 + Ink Light #2D5A8A, preserving
the same yellow-brown undertone and single-accent restraint as light mode.Not covered (deferred):
Kami Reader is published on the Obsidian Theme Gallery: https://community.obsidian.md/themes/kami-reader.
Obsidian pulls theme files from the GitHub release tag matching
manifest.json.version exactly, with no v prefix.
The theme was published through community.obsidian.md on 2026-06-20. That site
mirrors accepted themes to obsidianmd/obsidian-releases through Obsidian's
hourly mirror workflow.
The Theme Gallery downloader was also checked against the macOS Sequoia sandbox
issue: a fresh Gallery install wrote theme.css without com.apple.provenance,
so App Store users can install through Gallery cleanly. The snippet workaround
only matters for manual developer iteration.
community.obsidian.md runs automated lint on submission. Each warning required its own fix and a new release tag:
| Release | Lint warning | Fix |
|---|---|---|
0.1.0 |
No release matches manifest version | Created GitHub release tagged 0.1.0 (no v prefix) |
0.1.1 |
Repository has no recognized license | Restored pure MIT LICENSE (GitHub licensee strictly matches MIT template; attribution appended after standard text broke the match) |
0.1.1 |
css-scrollbar partially supported by Obsidian 1.4.5 |
Dropped CSS Scrollbars spec properties (scrollbar-width, scrollbar-color); kept webkit ::-webkit-scrollbar vendor extension |
0.1.2 |
Avoid !important at theme.css:788, 1105, 1106 |
CodeMirror selection uses 0,3,0 specificity compound selector; reduced-motion uses explicit selector list instead of * !important |
body.minimal-theme class selectors (specificity 0,1,1)
that beat kami's old :root (0,0,1). Default has no such class.body.theme-light / body.theme-dark, not :root.
Obsidian's built-in app.css defines base vars under .theme-light /
.theme-dark (specificity 0,1,0). :root (0,0,1) loses the cascade;
body.theme-light (0,1,1) wins.#E4ECF5, never rgba. kami explicitly bans
rgba tag backgrounds (WeasyPrint double-rect bug in PDF export).--bold-weight: 600 for
screen readability as an Obsidian-specific exception.500 in Light and more salient 600 in Dark. If your platform or font needs
a different calibration, use Bold emphasis strength at 500, 600, or 700.kami-obsidian/
├── manifest.json # Theme metadata (name, version, minAppVersion)
├── theme.css # Source of truth for all kami styles + inline @settings YAML
├── data-theme.json # Style Settings schema for theme-folder mode
├── sync.sh # Regenerates inject-kami-snippet.js from theme.css
├── inject-kami-snippet.js # Generated by sync.sh — paste into Obsidian Console
├── screenshots/ # 9-shot set (see SCREENSHOTS.md)
├── LICENSE # MIT (pure text so GitHub licensee detects SPDX:MIT)
├── README.md # English docs (this file)
└── README.zh-CN.md # 简体中文文档
inject-kami-snippet.js is a build artifact, not source. Regenerate via
./sync.sh after any theme.css change.
| Tag | Notes |
|---|---|
| 0.1.0 | Phase 1: visual system + dark variant + atomic components + Style Settings |
| 0.1.1 | Compat: drop CSS Scrollbars spec for Obsidian 1.4.5; restore pure MIT LICENSE |
| 0.1.2 | Lint compliance: remove !important from CodeMirror selection + reduced-motion |
| 0.1.3 | Polish: align nested list typography, prevent external-link icon overlap, and keep completed parent tasks from striking through child content |
| 0.1.4 | Lint compliance: remove broad completed-task selectors while keeping child task content readable |
| 0.1.5 | Performance: remove global text rendering override to improve long-note scrolling |
| 0.1.6 | Document reading polish: calibrate long-form typography, inline code, code blocks, tables, headings, and bold emphasis |
| 0.1.7 | Readability calibration: restore 700px reading width, 500 emphasis, and a calmer long-form rhythm |
| 0.1.8 | Style Settings: add a bold emphasis strength control for font/platform readability calibration |
| 0.1.9 | Reading View: restore native paragraph rhythm, calibrate dark bold emphasis, and warn when the full Kami snippet overlaps an active theme |
| 0.2.0 | Workspace shell: extend Kami's visual language across navigation, sidebars, panes, headers, status surfaces, and core overlays |
| 0.2.1 | Style Settings: fix the embedded YAML metadata so the Kami Reader section loads reliably on Windows |
Release tags match manifest.json version exactly (no v prefix) — Obsidian
pulls theme files from the GitHub release tagged with the manifest version.
MIT — see LICENSE.
Visual design system source: tw93/kami (MIT). This theme is a derivative adaptation; all design token values trace to the original kami project.
Fonts referenced but not bundled: