An enhancement to vscode appearance. Major feature includes acrylic effect, mica background, reveal effect, flip effect, animations and more! Fully customizable. Designed to be compatible with other color themes.
Get it on VSCode Marketplace Get it on Open-VSX
This is a intrusive theme. Can work with any other color themes.Plz read this document before installation.
Custom SVG is supported.
- Install this extension.
- Open command panel, type in
Frosted Glass Theme: Enable, press enter. - Some canvas based elements have their own background color. Thus you must figure out the color for them and add opacity to them, then add them back to
workbench.colorCustomizations. The colors are"editorOverviewRuler.background", "minimap.background", "terminalStickyScroll.background". The commandfrosted-glass-theme.generateThemeModmay work but not for certain. - You can customize this theme in vscode settings.
- Every time vscode updates, you have to re-run
Frosted Glass Theme: Enable.
If you want to load this theme with other extension or you prefer to maintain the workbench.html yourself, download the whole inject directory, then import only the inject\vscode-frosted-glass-theme.js (with type="module"). Then remove the <meta http-equiv="Content-Security-Policy" ... /> from workbench.html (which blocks svg from loading). To make fake mica moving, you must also import inject/vscode-frosted-glass-theme-main.mjs at the beginning of Microsoft VS Code\resources\app\out\main.js.
You need to set window.titleBarStyle to custom to see the effect. Otherwise the effect is very limited.
- The opacity settings will blend into theme colors unless they already have opacity.
Fake micais by default turned off. Enable it withfrosted-glass-theme.fakeMica.enabledsetting. You need to change the theme colors as well since this extension does not apply opacity to your theme automatically. Here is an example:There are more examples inthemefolder. I welcome everyone to send pull request.
You can also try the commandfrosted-glass-theme.generateThemeModto automatically generate a theme, then add the result intocolorCustomizations.- The
frosted-glass-theme.svgsimply loads svg from a url. The generated svg element is static and only use the css variable frommonaco-workbench. More svgs can be found inresourcefolder. - The
frosted-glass-theme.tintSvggenerate different svgs for each key defined infrosted-glass-theme.filterand the id on<filter>is changed toid-key. Inside svg, you can use some special css variables:--fgt-current-backgroundrepresenting the element's solid background color,--fgt-current-opacityrepresenting opacity. - The
frosted-glass-theme.filtersettings is a object that represents the filter to use with each element. The keys are defined insrc-inject/backdropFilter.tss'entryList. The value is of the type:Thetype Filter = { filter: string; disableBackgroundColor: boolean; opacity: number; }; type FilterPart = Partial<Filter>; const value = string | FilterPart | undefined;
disableBackgroundColordisables backgrounds (the filter should provide it). However,minimap,decorationsOverviewRulerandterminalOverlayare based on canvas and draw their own background color, thus you must specify a filter that does not provide a background color for them.
There is a special keydefaultwhich acts like a fallback. You can use a special keyword{key}to represent the current key. Together withtintSvgyou can create different color svg for each element.
For example, you created a svg that contains a<filter>whoseidisfgt-acrylic, and you add it totintSvg. You can then set a valueurl(#fgt-acrylic-{key}), so it will automatically use that element's background color. - The
frosted-glass-theme.animation's key is defined insrc-inject/animation.ts'sselectorMap, or the key can also be css selector. The value can be either css animation defined insrc-inject/vscode-frosted-glass-theme.css'sAnimationor effect defined insrc-inject/effect/effect.ts'seffectMap. However, effects are not affected by css timing function, they are just triggered byanimationstartevent. - You can add your own effect by calling
window._fgtTheme.registerEffect(key: string, func: (e: Element) => void). - The default config is in
config/config.json.
- Open command panel, type in "Frosted Glass Theme: Disable", press enter.
- Uninstall from the extension panel as usual.
- Remove
"workbench.colorCustomizations"if you want to.
- Since Windows 24H2, Microsoft may have changed the wallpaper location. Follow the steps:
- Create a hard link:
cd $env:AppData\Microsoft\Windows\Themes; cmd /c mklink /H .\TranscodedWallpaper.jpg .\TranscodedWallpaper. - Change
frosted-glass-theme.fakeMica.urlto<your user home>/AppData/Roaming/Microsoft/Windows/Themes/TranscodedWallpaper.jpg.
- Create a hard link:
- Editor's font becomes a little bit thinner.
- If some colors are not correct, it may be due to that your theme uses a opposite color + high transparency. For example, Codemos Modern. You can try to use normal blur filter instead of acrylic.svg:
Apply and restart vscode. The keys are defined in
"frosted-glass-theme.filter": { "sideBarSectionHeader": { "filter": "blur(30px)", "disableBackgroundColor": false }, "slider": { "filter": "blur(30px)", "disableBackgroundColor": false }, }
src-inject/backdropFilter.tss'entryList.
This extension modifies resources\app\out\vs\code\electron-sandbox\workbench\workbench.html and resources\app\out\main.js to inject files. So use at your own risk.
Also, the extension keeps a backup in resources\app\out\vs\code\workbench.*.bak-frosted-glass and resources\app\out\main.*.bak-frosted-glass in case anything goes wrong.








