Midnight IndigoAn ultra-dark theme for Visual Studio Code in eight colors, with a file icon set built on the languages' own logos. Leia em português. Install from the Visual Studio Marketplace →
The editor sits at What's includedOne extension. Install it once, then pick a color theme and turn on the icons.
Eight colors, one theme
The eight are one theme in eight colors: the same structure, the same rules, the same legibility floor, so switching color never means switching to something that behaves differently. Each palette is designed for its own hue rather than tinted from another. A string is green where the family leaves room for green, and something deliberate where it does not — in Midnight Green the strings are yellow-green, because green is the theme's own. Midnight Indigo is the original. Its colors are held, by a check in the build, to what v3.0.0 shipped; the few that changed since were changed on purpose, for legibility or meaning, and each is recorded with its reason.
How the palettes are made is in the color system. The whole workbenchEvery part of VS Code is drawn by the theme, not left to VS Code's defaults: menus, the command center, tabs, notifications, the Settings editor, notebooks, debugging, testing, the terminal, diffs, merges, the Source Control graph, comment threads, chat, inline chat, suggested edits and the Agents window. A color that means something means it everywhere. Red is an error — the squiggle, the failed test, the terminal's red and a removed line are one red, and no keyword is ever drawn in it. Yellow is a warning and a conflict, blue a change, green an addition or a pass. The AI speaks in the theme's own accent, and only where it acts.
These are screenshots of VS Code itself, with the theme installed. The rules behind them — surfaces, states, signals — are the design system. SyntaxKeywords are the signatureA keyword is the loudest word in the code, so it is what says which theme this is. Keywords are bold italic in every theme and every language, and each theme writes them in its own color: pink in Indigo, orange in Orange, green in Green. Their shape is a cue that does not depend on color. The rest of the code follows a few rules that hold everywhere: declarations are bold and uses are plain, so a function is bold where it is defined and plain where it is called; operators are color only, never bold or italic; comments recede, but never below a contrast you can read. Semantic highlightingSemantic highlighting is on by default. With it, a name is colored by what the language server says it is — a class, a parameter, a constant, an enum member — not by how it looks. The theme covers the tokens TypeScript, C# (Roslyn), Python (Pylance), Rust (rust-analyzer), Go (gopls) and Java send, and draws each exactly as its TextMate scope, so a word is the same color whether semantic highlighting has arrived yet or not. Rules are written for, and checked against real code in, TypeScript, JavaScript, JSX/TSX, C#, Python, Rust, Go, Java, Kotlin, PHP, HTML, CSS, SCSS, SQL, Markdown, YAML, JSON, PowerShell and Shell. Every other language falls back to a general rule set over the standard scopes.
Every language is in the full gallery → What every scope and token is drawn as is in Icons
The set is built around one rule: an icon has to be recognizable at the 16 pixels VS Code draws it at.
How the set is drawn, and everything it covers, is in the icon system. AccessibilityEvery theme is held to its own targets: 7:1 for code, 4.5:1 for other text, 3:1 for what is meant to recede and for squiggles, focus rings and icons. Keywords, deprecated names and focus have cues that do not depend on color, and every signal that differs by hue is checked under simulated color-vision deficiency. Made for current VS CodeThe theme is built against the colors VS Code documents today — it sets 871 of 971 — and checked in VS Code 1.140, including the modern tab layout, chat, inline chat, suggested edits, the Agents window and the Source Control graph. The rest are left to VS Code on purpose, and It installs on VS Code 1.60 and later. An older VS Code ignores the colors it does not know, and the surfaces they belong to keep its own defaults. InstallSearch for Midnight Indigo in the Extensions view (
Both themes are opt-in after install:
Or in
CustomizeOverride any color in your own
The name in brackets is the theme's label, so an override applies to that theme only — Documentation
ContributingIssues and pull requests are welcome at github.com/DigUu-RL/midnight-indigo. When reporting a color problem, please include the language, a small code sample and a screenshot — LicenseMIT. The icons import the outlines of the language marks from Simple Icons (CC0-1.0) and devicon (MIT), and the pictograms from Phosphor and other Iconify collections — see THIRD-PARTY-NOTICES.md. The logos are trademarks of their respective owners, used to identify the file types they belong to. |










