Acrylic
The acrylic effect gives the window a frosted-glass appearance by rendering a 3DPart behind the ScreenGui and applying a DepthOfFieldEffect to the Lighting service. This mimics the Windows 11 / macOS vibrancy blur found in native OS windows.
Acrylic requires an executor environment that supports 3D
Part manipulation behind the screen GUI. It does not work in Roblox Studio and may not work in every executor. Test in your target environment before shipping.Enable at window creation
PassAcrylic = true in your CreateWindow config. WindUI calls Acrylic.init() immediately after the window is created.
Acrylic.init() does the following:
- Creates a
DepthOfFieldEffect(FarIntensity = 0,NearIntensity = 1,InFocusRadius = 0.1) and adds it toLighting. - Registers any pre-existing
DepthOfFieldEffectobjects so they can be re-enabled when acrylic is disabled. - Disables those existing effects to avoid conflicts.
Toggle at runtime
CallWindUI:ToggleAcrylic(bool) at any time to enable or disable the effect without recreating the window.
Window.AcrylicPaint.Model.Transparency to 0.98 (visible) or 1 (hidden) and calls Acrylic.Enable() / Acrylic.Disable() accordingly.
AcrylicPaint object
Window.AcrylicPaint is the internal paint object created by Paint.lua. Its key members are:
| Member | Description |
|---|---|
AcrylicPaint.Frame | The root Frame layered behind the window content. |
AcrylicPaint.Model | The Part model whose Transparency controls blur visibility. |
AcrylicPaint.AddParent | Function to re-parent the blur model to a new container. |
AcrylicPaint.SetVisibility | Function to show or hide the blur model. |
Performance considerations
Transparency
The transparency option makes the window background semi-transparent without the blur layer. It is lighter-weight than acrylic and works in all environments.Enable at window creation
Control the transparency amount
WindUI.TransparencyValue is a number between 0 (fully opaque) and 1 (fully transparent). The default is 0.15.
TransparencyValue is clamped to [0, 1] via math.clamp when WindUI initialises. Set it before or immediately after calling CreateWindow.Toggle at runtime
Window:ToggleTransparency(bool) switches the transparent effect on or off after the window has been created.
WindUI:GetTransparency() returns the current WindUI.Transparent boolean, which is useful for setting the initial toggle state.
Using Acrylic and Transparency together
You can enable both at once. Acrylic provides the blur layer whileTransparent = true makes the solid background panel semi-transparent, letting more of the blur bleed through.