struct MenuBarStyle
Swift
struct MenuBarStyle
How a menubar strip and its dropdowns look.
The IR (MenuModel) is just titles and actions; this is the paint. An
in-window bar wants a filled strip and a theme.panel popup. A desktop
panel already paints its own gradient and wants the titles to sit on it
with a matching, compact dropdown — pass .panel() there rather than
restyle every row.
Sources/LavaUI/MenuBarView.swift:14
Constructors
init(stripFill: Color?, stripHeight: Float?, titlePadding: EdgeInsets, iconPadding: EdgeInsets, titleCornerRadius: Float, titleHover: Color, titleOpenFill: Color, itemPadding: EdgeInsets, itemCornerRadius: Float, itemHover: Color, itemSpacing: Float, dropdownPadding: Float, dropdownMinWidth: Float, dropdownBackground: Color, dropdownBorder: Color?, dropdownCornerRadius: Float, dropdownBlur: Float?)
Not documented.
Sources/LavaUI/MenuBarView.swift:40
Properties
var dropdownBackground: Color
Not documented.
Sources/LavaUI/MenuBarView.swift:35
var dropdownBlur: Float?
Not documented.
Sources/LavaUI/MenuBarView.swift:38
var dropdownBorder: Color?
Not documented.
Sources/LavaUI/MenuBarView.swift:36
var dropdownCornerRadius: Float
Not documented.
Sources/LavaUI/MenuBarView.swift:37
var dropdownMinWidth: Float
Not documented.
Sources/LavaUI/MenuBarView.swift:34
var dropdownPadding: Float
Not documented.
Sources/LavaUI/MenuBarView.swift:33
var iconPadding: EdgeInsets
Inset around an icon-only title. Tighter than titlePadding so a
18pt mark does not sit in a text-sized chip.
Sources/LavaUI/MenuBarView.swift:23
var itemCornerRadius: Float
Not documented.
Sources/LavaUI/MenuBarView.swift:30
var itemHover: Color
Not documented.
Sources/LavaUI/MenuBarView.swift:31
var itemPadding: EdgeInsets
Not documented.
Sources/LavaUI/MenuBarView.swift:29
var itemSpacing: Float
Not documented.
Sources/LavaUI/MenuBarView.swift:32
var overlayStyle: OverlayStyle { get }
Overlay chrome for the dropdown (and anything else that should match it — a panel clock or volume popover).
Sources/LavaUI/MenuBarView.swift:80
var stripFill: Color?
Fill behind the title strip. nil leaves whatever is already there.
Sources/LavaUI/MenuBarView.swift:16
var stripHeight: Float?
Forced strip height. nil sizes to the titles, which is what a
panel wants when the strip itself is already a fixed 32pt.
Sources/LavaUI/MenuBarView.swift:19
var titleCornerRadius: Float
Not documented.
Sources/LavaUI/MenuBarView.swift:24
var titleHover: Color
Not documented.
Sources/LavaUI/MenuBarView.swift:25
var titleOpenFill: Color
Fill under an open title, so the chip stays lit after the pointer has moved into the dropdown.
Sources/LavaUI/MenuBarView.swift:28
var titlePadding: EdgeInsets
Not documented.
Sources/LavaUI/MenuBarView.swift:20
Methods
static func panel(theme: Theme = Theme.current) -> MenuBarStyle
Desktop panel: no strip fill (the bar already painted one), compact rows, and a popup that wears the desktop theme rather than a hard-coded indigo wash.
The old fill was 0.10, 0.10, 0.24 at alpha 0.88. Linear blending
lets ~0.30 of the desktop through at that alpha, which is why the
menu read as a stained-glass pane instead of a surface — see
docs/colour-and-blending.md. Without compositor frost the useful
band is 0.97–1.0. With frost (a client that filled
BackdropBridge.frostOverlays) the wash can drop so the blur shows.
Sources/LavaUI/MenuBarView.swift:128
static func standard(theme: Theme = Theme.current) -> MenuBarStyle
In-window bar: filled strip, theme colours, room for shortcuts.
Sources/LavaUI/MenuBarView.swift:92