🌿 Lime Grove
A Visual Studio Code theme family with fourteen variants — five Light, seven Dark, and two High Contrast — sharing the same perceptually distinct syntax palette across all.
Designed for long coding sessions where readability matters: each syntactic category uses a distinct color family so your eye instantly navigates code structure without conscious effort.
Variants
| Variant |
Background |
Style |
| Lime Grove |
#F5F8EC — soft lime-tinted white |
Light, low contrast, easy on the eyes |
| Lime Amber Grove |
#FDF8EB — warm cream with amber tint |
Light, golden/amber chrome |
| Lime Fog Grove |
#F7F8F8 — neutral gray-white, no green tint |
Light, cold slate chrome, teal accent |
| Lime Birch Grove |
#FAF7F2 — warm cream with birch tone |
Light, dark brown chrome, amber accent |
| Lime Grove Dark |
#1E2220 — gray charcoal with green tint |
Dark, carbon-style |
| Lime Midnight Grove |
#111614 — near-black with subtle green tint |
Dark, maximum contrast, electric lime accent |
| Lime Dusk Grove |
#1C1A14 — warm dark brown |
Dark, amber-gold chrome, cozy low-light feel |
| Lime Slate Grove |
#0F1420 — deep blue-slate |
Dark, cool blue tone, lime accent (Tokyo Night feel) |
| Lime OLED Grove |
#000000 — pure black |
Dark, true black for OLED / battery saving |
| Lime Soft Grove |
#1E1E2A — muted slate-purple |
Dark, low-saturation pastel palette |
| Lime Vivid Grove |
#14181C — neutral dark |
Dark, colorblind-safe (deuteran/protan) palette |
| Lime Sepia Grove |
#F4ECD8 — warm sepia paper |
Light, soft low contrast for long reading |
| Lime Grove High Contrast |
#000000 — pure black |
High contrast, WCAG-AAA, accessibility |
| Lime Grove High Contrast Light |
#FFFFFF — pure white |
High contrast, WCAG-AAA, accessibility |
All variants share the same 6 color families for syntax, adjusted in brightness and saturation for their respective backgrounds.
Syntax palette
| Role |
Light |
Dark |
| Keywords / control flow 🟣 |
#7B4FBE Violet |
#9B6FE8 Violet (brighter) |
| Types / classes / XML tags 🔵 |
#1A6FAF Blue |
#4A9FD4 Blue (brighter) |
| Functions / methods 🟠 |
#C05A10 Orange |
#E07030 Orange (brighter) |
| Strings 🟢 |
#3A8A0A Lime green |
#7EC820 Lime (brighter) |
Numbers / true / false / null 🔴 |
#B5420A Red-brown |
#E07060 Red (brighter) |
| Operators / punctuation ⚫ |
#5A6A72 Gray |
#8A9A9C Gray (lighter) |
| Comments 🌿 |
#6E8C58 / #8A7848 Sage/Khaki |
#6A8A58 Sage |
| Variables / base text ⚪ |
#2D3320 / #2D2810 Olive |
#D4DEC8 Cream |
| Regex / links 🩵 |
#1A7A60 Teal |
#2AC890 Teal (brighter) |
| Decorators / attributes 🟡 |
#A06000 Amber |
#C89030 Amber (brighter) |
The dark variant uses the same hue families as the light variant — violet stays violet, orange stays orange — but each color is shifted brighter and more saturated to maintain the same perceptual weight against a dark background.
Color philosophy
Most themes fail readability not because they have too many colors, but because their colors come from the same family. If keywords, types, strings, and variables are all shades of blue or green, the eye can't distinguish them without reading the text.
Lime Grove assigns each syntactic role to a different color family:
- 🟣 Violet → keywords stand out most —
if, for, return, class, using
- 🔵 Blue → types anchor structure —
string, int, MyClass, IService, XML tags
- 🟠 Orange → functions are callable —
GetUser(), console.log(), Calculate()
- 🟢 Lime → strings are literal text — the theme's signature color
- 🔴 Red-brown → numbers and booleans are values —
42, 3.14f, true, null
- ⚫ Gray → operators and punctuation fade back —
+, =>, {, }
- 🌿 Sage → comments are present but quiet — italic, low contrast intentionally
Editor chrome palette
Lime Grove (Light)
| Zone |
Background |
Text / Icons |
| Activity bar |
#3a5c10 |
#e8f5c8 active · #8aaa60 inactive |
| Title bar |
#3a5c10 |
#e8f5c8 |
| Status bar (normal) |
#3D8A0A |
#F5F8EC |
| Status bar (debug) |
#D06818 |
#F5F8EC |
| Tab bar |
#E4EDD4 |
active border #5CA016 |
| Side bar |
#ECF2DC |
#2D3320 |
| Panel / terminal |
#EDF2DC |
#2D3320 |
| Cursor |
— |
#5CA016 |
| Selection |
— |
#C8E89080 |
Lime Amber Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#6B4800 |
#F8ECC8 active · #C09860 inactive |
| Title bar |
#6B4800 |
#F8ECC8 |
| Status bar (normal) |
#B07800 |
#FDF8EB |
| Status bar (debug) |
#D06818 |
#FDF8EB |
| Tab bar |
#EDE4CC |
active border #C89000 |
| Side bar |
#F5EDD8 |
#2D2810 |
| Panel / terminal |
#F5EDD8 |
#2D2810 |
| Cursor |
— |
#C89000 |
| Selection |
— |
#E8C85080 |
Lime Fog Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#1E2535 |
#C8DCE8 active · #5A7090 inactive |
| Title bar |
#1E2535 |
#C8DCE8 |
| Status bar (normal) |
#2A7A90 |
#F0F8FC |
| Status bar (debug) |
#C07820 |
#F0F8FC |
| Tab bar |
#DEE1EA |
active border #2A8AA0 |
| Side bar |
#EAECF2 |
#2C3038 |
| Panel / terminal |
#EAECF2 |
#2C3038 |
| Cursor |
— |
#2A8AA0 |
| Selection |
— |
#80C0D870 |
Lime Birch Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#3A2A18 |
#F0E8D0 active · #7A6048 inactive |
| Title bar |
#3A2A18 |
#F0E8D0 |
| Status bar (normal) |
#A06018 |
#FFF5E8 |
| Status bar (debug) |
#CC2200 |
#FFF5E8 |
| Tab bar |
#E8E0D4 |
active border #C07A10 |
| Side bar |
#F0E9DE |
#2D2418 |
| Panel / terminal |
#F0E9DE |
#2D2418 |
| Cursor |
— |
#C07A10 |
| Selection |
— |
#C8A86070 |
Lime Grove Dark
| Zone |
Background |
Text / Icons |
| Activity bar |
#161C19 |
#A8D880 active · #4A6A48 inactive |
| Title bar |
#161C19 |
#A8D880 |
| Status bar (normal) |
#2A4A28 |
#A8D880 |
| Status bar (debug) |
#C05A10 |
#F0EAD8 |
| Tab bar |
#161C19 |
active border #7EC820 |
| Side bar |
#1A1E1C |
#A8C8A0 |
| Panel / terminal |
#1A1E1C |
#D4DEC8 |
| Cursor |
— |
#7EC820 |
| Selection |
— |
#4A7A3040 |
Lime Midnight Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#0A0E0C |
#90D060 active · #305030 inactive |
| Title bar |
#0A0E0C |
#90D060 |
| Status bar (normal) |
#183018 |
#90D060 |
| Status bar (debug) |
#F09040 |
#F0EAD8 |
| Tab bar |
#0A0E0C |
active border #A0E020 |
| Side bar |
#0E1210 |
#90C880 |
| Panel / terminal |
#0E1210 |
#DCF0D0 |
| Cursor |
— |
#A0E020 |
| Selection |
— |
#50A03050 |
Lime Dusk Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#141008 |
#E8CC80 active · #504030 inactive |
| Title bar |
#141008 |
#E8CC80 |
| Status bar (normal) |
#704A10 |
#F8E8C0 |
| Status bar (debug) |
#E07868 |
#F8E8C0 |
| Tab bar |
#141008 |
active border #D09020 |
| Side bar |
#181610 |
#D0C8A8 |
| Panel / terminal |
#181610 |
#E0D8C0 |
| Cursor |
— |
#D09020 |
| Selection |
— |
#A0783048 |
Lime Slate Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#090D16 |
#9EC850 active · #46506A inactive |
| Title bar |
#090D16 |
#9EC850 |
| Status bar (normal) |
#1A2A44 |
#9ED030 |
| Status bar (debug) |
#E0944A |
#0F1420 |
| Tab bar |
#090D16 |
active border #9ED030 |
| Side bar |
#161B27 |
#A7B1C4 |
| Panel / terminal |
#161B27 |
#C8D3E8 |
| Cursor |
— |
#9ED030 |
| Selection |
— |
#5A78B050 |
Lime OLED Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#000000 |
#90D060 active · #2A4A2A inactive |
| Title bar |
#000000 |
#90D060 |
| Status bar (normal) |
#0C2A0C |
#90D060 |
| Status bar (debug) |
#F09040 |
#000000 |
| Tab bar |
#000000 |
active border #A0E020 |
| Side bar |
#080808 |
#B4C5AB |
| Panel / terminal |
#080808 |
#DCF0D0 |
| Cursor |
— |
#A0E020 |
| Selection |
— |
#50A03050 |
Lime Soft Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#181824 |
#B5D89A active · #54546A inactive |
| Title bar |
#181824 |
#B5D89A |
| Status bar (normal) |
#2A2A3A |
#B5D89A |
| Status bar (debug) |
#E8B88A |
#1E1E2A |
| Tab bar |
#181824 |
active border #B5D89A |
| Side bar |
#252530 |
#B3B2BF |
| Panel / terminal |
#252530 |
#D4D2E0 |
| Cursor |
— |
#B5D89A |
| Selection |
— |
#7A7AA050 |
Lime Vivid Grove (colorblind-safe)
| Zone |
Background |
Text / Icons |
| Activity bar |
#0D1014 |
#9AD0F0 active · #4A5A66 inactive |
| Title bar |
#0D1014 |
#9AD0F0 |
| Status bar (normal) |
#0072B2 |
#FFFFFF |
| Status bar (debug) |
#E69F00 |
#14181C |
| Tab bar |
#0D1014 |
active border #56B4E9 |
| Side bar |
#1B1F23 |
#C2C6CA |
| Panel / terminal |
#1B1F23 |
#E8ECF0 |
| Cursor |
— |
#56B4E9 |
| Selection |
— |
#56B4E950 |
Lime Sepia Grove
| Zone |
Background |
Text / Icons |
| Activity bar |
#473828 |
#F0E4CC active · #9A8A70 inactive |
| Title bar |
#473828 |
#F0E4CC |
| Status bar (normal) |
#8A5A20 |
#F8EEDC |
| Status bar (debug) |
#B0481C |
#F4ECD8 |
| Tab bar |
#473828 |
active border #A05A1E |
| Side bar |
#EEE6D3 |
#716453 |
| Panel / terminal |
#EEE6D3 |
#544636 |
| Cursor |
— |
#A05A1E |
| Selection |
— |
#C8A86A70 |
Lime Grove High Contrast (Dark)
| Zone |
Background |
Text / Icons |
| Activity bar |
#000000 |
#FFFFFF active · #9AA89A inactive |
| Title bar |
#000000 |
#FFFFFF |
| Status bar (normal) |
#1A3A0A |
#FFFFFF |
| Status bar (debug) |
#FF8A2E |
#000000 |
| Tab bar |
#000000 |
active border #B6FF2E |
| Side bar |
#080808 |
#D1D1D1 |
| Panel / terminal |
#080808 |
#FFFFFF |
| Cursor |
— |
#B6FF2E |
| Selection |
— |
#B6FF2E50 |
Lime Grove High Contrast Light
| Zone |
Background |
Text / Icons |
| Activity bar |
#1B2E08 |
#FFFFFF active · #A8C080 inactive |
| Title bar |
#1B2E08 |
#FFFFFF |
| Status bar (normal) |
#2A5A00 |
#FFFFFF |
| Status bar (debug) |
#B04000 |
#FFFFFF |
| Tab bar |
#1B2E08 |
active border #3A7A00 |
| Side bar |
#F9F9F9 |
#363636 |
| Panel / terminal |
#F9F9F9 |
#0A0A0A |
| Cursor |
— |
#3A7A00 |
| Selection |
— |
#3A7A0070 |
Language support
Syntax highlighting is tuned for both variants across:
- C# — types, interfaces, attributes (
[HttpGet], [Serializable]), LINQ, generics, built-in types (int, string, bool, void)
- JavaScript / TypeScript — arrow functions, template literals, decorators, JSX, optional chaining, nullish coalescing
- XML / HTML — tag names in blue, attribute names in amber, values in lime, namespaces in violet, CDATA in lime
- CSS / SCSS — selectors, property names, values, units, pseudo-classes (
:hover, ::before) each with distinct colors
- JSON — keys in amber bold, string values in lime, numbers and booleans in red-brown
- Markdown — headings in violet, bold in orange, italic in blue, code in teal, blockquotes in sage
- All other languages via generic TextMate scopes
Semantic highlighting is enabled ("semanticHighlighting": true) for richer accuracy in languages with a Language Server (C#, TypeScript, Rust, Go, Python).
Installation
From the Marketplace
Search for Lime Grove in the Extensions panel (Ctrl+Shift+X) or install from the command line:
code --install-extension ppcode.lime-grove
After installing, select the variant:
Ctrl+Shift+P → Preferences: Color Theme → Lime Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Amber Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Fog Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Birch Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Grove Dark
Ctrl+Shift+P → Preferences: Color Theme → Lime Midnight Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Dusk Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Slate Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime OLED Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Soft Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Vivid Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Sepia Grove
Ctrl+Shift+P → Preferences: Color Theme → Lime Grove High Contrast
Ctrl+Shift+P → Preferences: Color Theme → Lime Grove High Contrast Light
From source
- Clone or download this repository.
- Copy the
themes/ folder and package.json into your VS Code extensions folder:
- macOS / Linux:
~/.vscode/extensions/lime-grove/
- Windows:
%USERPROFILE%\.vscode\extensions\lime-grove\
- Restart VS Code.
- Open the Command Palette and run Preferences: Color Theme.
Recommended settings
These settings complement both variants:
{
"editor.fontFamily": "'Cascadia Code', 'Fira Code', Consolas, monospace",
"editor.fontLigatures": true,
"editor.fontSize": 14,
"editor.lineHeight": 1.6,
"editor.renderWhitespace": "boundary",
"editor.bracketPairColorization.enabled": false
}
Bracket pair colorization is best left off — the theme's punctuation color handles bracket visibility without the rainbow effect.
Feedback and contributing
Found a token that doesn't look right in either variant? Open an issue with:
- The variant (Light or Dark).
- The language and file type.
- A short code snippet showing the problem.
- A screenshot if possible.
Pull requests are welcome.
Enjoy! 🌿
| |