Vibrant Backgrounds
Beginning with 10.10 (Yosemite), support was added to macOS for two kinds of vibrant backgrounds. VAqua supports the behind-window style of vibrant background, where the background of a window or component is a blurred and blended version of the unseen content that conceptually resides behind the window. VAqua supports vibrant backgrounds by default for tables that use the sidebar style, pop up menus, and windows displayed as sheets. VAqua also allows the developer to specify vibrant backgrounds for windows, panels, viewports, and custom popups.
Vibrant Windows and Components
A vibrant background for a window can be specified using the
Aqua.backgroundStyle
client property on the JRootPane.
A vibrant background for a JPanel or a JViewport is specified using the
Aqua.backgroundStyle
client property on the component.
Supported values for the Aqua.backgroundStyle
client property are:
vibrantLight
vibrantDark
vibrantMediumLight
vibrantUltraDark
vibrantSidebar
vibrantTitleBar
vibrantMenu
vibrantPopover
vibrantSheet
vibrantSelection
vibrantHeader
vibrantWindowBackground
vibrantHUDWindow
vibrantFullScreenUI
vibrantToolTip
vibrantContentBackground
vibrantUnderWindowBackground
vibrantUnderPageBackground
These values map to the most appropriate available vibrant material.
When a vibrant background is specified for a window or a component, subcomponents in the
hierarchy under that window or component may also display the vibrant background by default.
The components that support this feature are JOptionPane, JPanel, JScrollPane, JSplitPane,
JTabbedPane, JToolBar, and JViewport. This feature is overridden for a component either by
setting the opaque
property of the component to false
or by installing
a custom background color on the component.
Vibrant Popups
Custom popups (explicitly created using the shared PopupFactory
) can be configured to use a vibrant
background by setting the AquaPopup.backgroundStyle
client property on the content
component of the popup to one of the values listed above. In addition, a popup can be configured
to have rounded corners by setting the
AquaPopup.cornerRadius
property to default
to use a
default corner radius or a number to specify a corner radius in points (display independent pixels).