Description:
When using CSS transforms on Explorer tree elements (.explorer-viewlet, .explorer-folders-view), the file tree cuts off/renders incompletely when folders have many deeply nested files (e.g., vendor/, node_modules/, flarum/).
This appears to be a conflict between the extension's CSS injection and VS Code's virtual scrolling mechanism for large file trees.
Environment:
VS Code Version: 1.97+ (also affects newer versions)
Extension Version: Latest
OS: Windows 11 (likely affects all platforms)
Reproducible: Always with deeply nested folders
Steps to Reproduce
- Install Composer dependencies (creates vendor/ with deep nesting)
- Apply Custom UI Style with Explorer transforms (see CSS below)
- Open Explorer sidebar
- Expand vendor/ folder (or any deeply nested folder)
Observe: File tree cuts off prematurely, cannot scroll to see all files
Problematic CSS
The following transform properties cause the issue:
.explorer-viewlet .split-view-container {
transform: translateY(-22px);
}
.explorer-folders-view .monaco-list-rows {
transform: translate3d(0px, 0px, 0px) scaleY(1.15);
transform-origin: top left;
}
.explorer-folders-view .monaco-tl-row {
transform: scaleY(0.87);
transform-origin: top left;
}
Root Cause:
VS Code uses virtual scrolling for the Explorer tree. CSS transforms on .monaco-list-rows or .monaco-tl-row interfere with the editor's calculation of visible row ranges, causing it to think fewer items exist than actually do.
Workaround:
Remove transforms from Explorer tree elements. Safe to use on other UI components (titlebar, statusbar, tabs, etc.).
Styling that does NOT cause the issue:
.part.sidebar { border-radius: 24px; }
.part.sidebar .monaco-list-row { border-radius: 6px; }
.part.sidebar .monaco-list-row:hover { background: ...; }
Suggested Fix:
Consider adding a warning in documentation or detecting when users apply transforms to .monaco-list-rows or .explorer-folders-view and warn about potential Explorer rendering issues.