Skip to content
| Marketplace
Sign in
Visual Studio Code>Themes>Kanagawa FlatNew to Visual Studio Code? Get it now.
Kanagawa Flat

Kanagawa Flat

dabidsillo

|
10 installs
| (1) | Free
A flat, single-background adaptation of the Kanagawa color scheme (Wave, Dragon and Lotus), faithful to the original color roles from rebelot/kanagawa.nvim.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

🌊 KANAGAWA-FLAT.vscode 🌊

A flat adaptation of the Kanagawa color scheme by rebelot for Visual Studio Code, shipping all three original flavors:

  • Kanagawa Wave Flat — the classic dark blue-violet (sumiInk base).
  • Kanagawa Dragon Flat — a darker, muted, lower-saturation dark theme.
  • Kanagawa Lotus Flat — the light variant, warm paper tones.

What "flat" means here

Every structural region of the editor — the editor surface, side bar, activity bar, panel, status bar, title bar, tabs and terminal — shares one single background color. No region is darker or lighter than another. That is the whole point of this theme, and it is a deliberate departure from how most themes (including upstream Kanagawa) use several background shades to imply depth.

Flatness removes the depth cues users normally rely on to tell regions apart, so to stay usable this theme restores those cues without breaking the single background:

  • Borders mark where one region ends and the next begins.
  • Foreground weight (bright vs. dimmed text) separates active from inactive.
  • Translucent overlays make selection, hover and the current line perceptible without introducing a second opaque surface.

In short: flat surfaces, never flat feedback.

Faithful to the original color roles

The priority of this port is respecting what each Kanagawa color means. A string stays springGreen, a keyword stays oniViolet, a type stays waveAqua, and so on — per variant, transcribed directly from rebelot/kanagawa.nvim. The mapping lives in one auditable place: src/roles.js.

Role Wave Dragon Lotus
string springGreen dragonGreen2 lotusGreen
number sakuraPink dragonPink lotusPink
constant surimiOrange dragonOrange lotusOrange
function crystalBlue dragonBlue2 lotusBlue4
keyword oniViolet dragonViolet lotusViolet4
type waveAqua2 dragonAqua lotusAqua
operator boatYellow2 dragonRed lotusYellow2
parameter oniViolet2 dragonGray lotusBlue5
comment fujiGray dragonAsh lotusGray3

Accessibility

Body text meets WCAG AA on all three flavors (contrast ≈ 11.3 Wave, 10.8 Dragon, 6.2 Lotus). Comments are intentionally low-contrast — that is Kanagawa's original design intent (muted comments recede), preserved here on purpose.

Project structure

The theme JSON files under themes/ are generated. Do not edit them by hand; edit the source and rebuild.

src/
  palette.js     # raw Kanagawa palette, verbatim hex (single source of truth)
  roles.js       # semantic role -> palette, per variant (intended use)
  tokens.js      # TextMate scopes -> role (shared across variants)
  workbench.js   # flat workbench mapping + state overlays
  build.js       # assembles and writes the three theme files
themes/          # generated artifacts loaded by VS Code

Credit

Original color scheme: Kanagawa by rebelot — https://github.com/rebelot/kanagawa.nvim Inspired by the colors of Katsushika Hokusai's The Great Wave off Kanagawa.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft