
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
@hxkuc/electron-vibrancy
Advanced tools
Enable blurring the back of your transparent BrowserWindow using this simple module.
#electron-vibrancy
This module is intended to give an Electron BrowserWindow blur on its behind. Electron does not support 'blur behind' from a transparent window and this module uses native API calls to achieve the effect.


Since this is a native addon, you will need your platforms build tools. Visual Studio,XCode etc.Also Python for node-gyp.
git clone https://github.com/arkenthera/electron-vibrancy
cd electron-vibrancy
npm install
cd spec/app # Go to sample app
electron . # electron --version should be 1.6.8
To rebuild again:
npm run conf
npm run rebuild
Also available through NPM.
npm install electron-vibrancy
To run tests see scripts/ci
BrowserWindow must be transparent. (transparent:true)A dynamic link library (DLL) initialization routine failed. error, it means that the module isn't compiled against Electron or compiled against the wrong version.Although it works, I dont recommend using this module on a machine below Windows 10. See platforms section below for more information for macOS.
There are several methods depending on what you want to do and what platform you are on.
SetVibrancy(window, material) win , macOSReturns Integer.View id of NSVisualEffectView. You need this for UpdateView or RemoveView. material has no effect on Windows.
window BrowserWindow instanceMaterial - Integer. The Material for NSVisualEffectMaterial.
0 - NSVisualEffectMaterialAppearanceBased 10.10+1 - NSVisualEffectMaterialLight 10.10+2 - NSVisualEffectMaterialDark 10.10+3 - NSVisualEffectMaterialTitlebar 10.10+4 - NSVisualEffectMaterialSelection 10.11+5 - NSVisualEffectMaterialMenu 10.11+6 - NSVisualEffectMaterialPopover 10.11+7 - NSVisualEffectMaterialSidebar 10.11+8 - NSVisualEffectMaterialMediumLight 10.11+9 - NSVisualEffectMaterialUltraDark 10.11+Enables or disables vibrancy for the WHOLE window. It will resize automatically. If you want something custom, see AddView.
See here for more info about NSVisualEffectMaterial.
DisableVibrancy(window) win, macOSDisables Vibrancy completely.
window BrowserWindow instanceAddView(window,options) macOSReturns Integer.View id of NSVisualEffectView. You need this for UpdateView or RemoveView.
window BrowserWindow instanceoptions Object
Material - Integer. The Material for NSVisualEffectMaterial.See SetVibrancy method for material properties.X X Position of the NSVisualEffectView relative to the main BrowserWindow.Y X Position of the NSVisualEffectView relative to the main BrowserWindow.Width - Integer Width of the NSVisualEffectView. Should not be larger than the window's.Height - Integer Height of the NSVisualEffectView. Should not be larger than the window's.ResizeMask- Integer.Resize mask for the NSVisualEffectView.
0 - Auto width resize1 - Auto height resize2 - Auto width-height resize3 - No resizeAdds a NSVisualEffectView to the window with the specified properties.If you dont specify a ResizeMask,default value for it is 2.
UpdateView(window,options) macOSReturns Boolean.
window BrowserWindow instanceoptions Object
ViewId - Integer. Return value from AddView.Material - Integer. The Material for NSVisualEffectMaterial.See SetVibrancy method for material properties.X X Position of the NSVisualEffectView relative to the main BrowserWindow.Y X Position of the NSVisualEffectView relative to the main BrowserWindow.Width - Integer Width of the NSVisualEffectView. Should not be larger than the window's.Height - Integer Height of the NSVisualEffectView. Should not be larger than the window's.Updates the NSVisualEffectView with the specified properties.
RemoveView(window,viewId) macOSReturns Boolean.
window BrowserWindow instanceViewId- Integer.Identifier of NSVisualEffectView.Removes the NSVisualEffectView.
// Require the module
var electronVibrancy = require('..');
electronVibrancy.SetVibrancy(true,browserWindowInstance.getNativeWindowHandle());
// Preferred Usage
// mainWindow with show: false
mainWindow.on('ready-to-show',function() {
var electronVibrancy = require('..');
// Whole window vibrancy with Material 0 and auto resize
electronVibrancy.SetVibrancy(mainWindow, 0);
// auto resizing vibrant view at {0,0} with size {300,300} with Material 0
electronVibrancy.AddView(mainWindow, { Width: 300,Height:300,X:0,Y:0,ResizeMask:2,Material:0 })
// non-resizing vibrant view at {0,0} with size {300,300} with Material 0
electronVibrancy.AddView(mainWindow, { Width: 300,Height:300,X:0,Y:0,ResizeMask:3,Material:0 })
//Remove a view
var viewId = electronVibrancy.SetVibrancy(mainWindow, 0);
electronVibrancy.RemoveView(mainWindow,viewId);
// Add a view then update it
var viewId = electronVibrancy.SetVibrancy(mainWindow, 0);
electronVibrancy.UpdateView(mainWindow,{ ViewId: viewId,Width: 600, Height: 600 });
// Multipe views with different materials
var viewId1 = electronVibrancy.AddView(mainWindow, { Width: 300,Height:300,X:0,Y:0,ResizeMask:3,Material:0 })
var viewId2 = electronVibrancy.AddView(mainWindow, { Width: 300,Height:300,X:300,Y:0,ResizeMask:3,Material:2 })
console.log(viewId1);
console.log(viewId2);
// electronVibrancy.RemoveView(mainWindow,0);
// electronVibrancy.RemoveView(mainWindow,1);
// or
electronVibrancy.DisableVibrancy(mainWindow);
})



On Windows 10 the addon uses SetWindowCompositionAttribute, which is an undocumented API, which means it can be changed by Microsoft any time and break the functionality.
Requires Yosemite and above.Some materials require 10.11+. Since this is the case, if you use a material that's not available on that macOS version, it will
fallback to the default material value which is 0, which might not be what you want.
This project is under MIT. See LICENSE
FAQs
Enable blurring the back of your transparent BrowserWindow using this simple module.
We found that @hxkuc/electron-vibrancy demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.