Dark 2026: ordinary variables are visually indistinguishable from plain text - looks like syntax highlighting is not applied
- Dominant language
- TypeScript
- Stars
- 193k
- Forks
- 42.4k
- PR merge metrics
- PR metrics pending
Description
Does this issue occur when all extensions are disabled?: Yes (the rendered colors match the built-in `theme-defaults/themes/2026-dark.json` definitions exactly, see analysis below, so extensions are not involved)
- VS Code Version: 1.133.0 (a5b5009)
- OS Version: Windows 11 Pro 10.0.26200
## Summary
In the Dark 2026 theme, ordinary (mutable) variables are rendered in `#C9D1D9` while the editor foreground (operators, punctuation, plain text) is `#BBBEBF`. On a dark background these two are visually indistinguishable — both read as "white". As a result, large parts of a TypeScript/JavaScript file appear to have **no syntax highlighting at all**, and my first reaction was that highlighting was broken, not that this was a design choice.
## Analysis
Measured from an actual editor screenshot (pixel-sampled) and confirmed against `2026-dark.json`:
| Token | Color | Source rule |
|---|---|---|
| ordinary variable (`process`, reassignable locals) | `#C9D1D9` | `variable.other` → `#c9d1d9` |
| editor foreground (`=`, `;`, punctuation) | `#BBBEBF` | `editor.foreground` |
| `const`-declared / readonly variable | `#79C0FF` | `constant` / readonly mapping |
The luminance difference between `#C9D1D9` and `#BBBEBF` is roughly 5% — imperceptible in practice. Notably, the theme *does* define `variable` → `#ffa657`, but the more specific `variable.other` → `#c9d1d9` rule overrides it for ordinary variables, so the orange never appears in typical JS/TS code.
This near-unstyled treatment of variables comes from GitHub Primer, where it works acceptably for snippets and diffs on github.com. In a full editor, however, variables are one of the most frequent token classes, so the effect dominates the whole file. The inconsistency with `const` variables (which do get a distinct blue) makes plain variables look even more like a rendering bug.
## Expected
Mutable variables should have a hue that is distinguishable from plain text — e.g. the `#ffa657` the theme already defines for `variable`, or something like Dark Modern's `#9CDCFE`.
## Related
- #326875 (Dark 2026 palette feels "same color in every element")
- #322000 / #320953 / #322108 (variable color change and its revert — the variable color question seems unresolved)
- Tracking: #295783
Contributor guide
Assessment
This issue has not been assessed yet.