Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
In upstream VS Code, extension webviews receive the workbench theme tokens as CSS custom properties (–vscode-foreground, --vscode-input-border, --vscode-charts-*, --vscode-widget-border, etc.) via the default injected stylesheet, so extension webview CSS written as var(–vscode-…) themes correctly. In Cursor, extension webviews do not appear to receive these variables (or receive only a partial set), so any extension CSS referencing them resolves to nothing unless the extension ships literal fallback values.
Observed impact in the Claude Code chat panel (before the extension added literal hex fallbacks in ext <=2.1.19x): markdown table borders were invisible (–vscode-inlineChatInput-border, --vscode-input-border, --vscode-widget-border all unresolved), charts rendered colorless (–vscode-charts-orange|blue|green|yellow|purple|red unresolved), and code-block backgrounds were missing. The same extension versions rendered correctly in upstream VS Code.
The extension has since shipped hardcoded fallbacks (anthropics/claude-code#71646), which masks the symptom for that one extension — but the root cause is host-side, and every other extension webview that relies on documented VS Code webview theming is affected the same way. workbench.colorCustomizations also does not reach these webviews, so users have no workaround.
Steps to Reproduce
- Install any extension whose webview styles use var(–vscode-…) without literal fallbacks (Claude Code <=2.1.19x is a concrete example).
- Open the webview panel.
- Run “Developer: Open Webview Developer Tools” and inspect the webview document root.
- Check computed values for e.g. --vscode-input-border or --vscode-charts-blue.
- Compare with upstream VS Code: there the variables are defined from the active theme; in Cursor they are absent/unresolved.
Expected Behavior
Cursor injects the standard VS Code theme-token custom properties into extension webviews, matching upstream VS Code webview theming behavior — so extension UI (tables, charts, code blocks, focus rings) themes correctly without every extension needing to ship hardcoded fallback colors.
Operating System
Windows 10/11
Version Information
IDE:
Version: 3.9.16 (Windows 11 Pro)
Example extension: anthropic.claude-code 2.1.207 (also reproduced on 2.1.19x and earlier)
Additional Information
Related upstream reports on the extension side: anthropics/claude-code#71646 (fallbacks shipped as mitigation) and anthropics/claude-code#76989 (prompt-input focus ring ignoring focusBorder — same missing-token family). A host-side fix in Cursor would resolve this class for all extensions at once rather than each extension hardcoding colors that ignore the user’s theme.
Does this stop you from using Cursor
No - Cursor works, but with this issue