MenuStyle
MenuStyle
allows controlling the menu's visual aspects, such as shape,
background and shadow colors, content padding, border width and radius.
Each individual style attribute could be configured for all or particular Material states of a menu, such as HOVERED
, FOCUSED
, DISABLED
and others. For example, you can configure a different shape, background color for a HOVERED
state and configure fallback values for all other states.
To configure style attribute for all Material states, set its value to a literal (or class instance). For example, if you set bgcolor
property to a literal the value will be applied to all menu states:
ft.MenuStyle(
bgcolor=ft.colors.RED
)
To configure style attribute for specific Material states set its value to a dictionary where the key is state name. For example, to configure different background colors for HOVERED
and FOCUSED
states and another colors for all other states:
ft.MenuStyle(
bgcolor={
ft.MaterialState.HOVERED: ft.colors.WHITE,
ft.MaterialState.FOCUSED: ft.colors.BLUE,
ft.MaterialState.DEFAULT: ft.colors.BLACK,
}
)
MenuStyle
class
MenuStyle
class has the following properties:
alignment
- Defines the desired alignment of the submenu when opened relative to the button that opens it.bgcolor
- The menu's background fill color.elevation
- The elevation of the menu's Material.padding
- The padding between the menu's boundary and its child.shadow_color
- The shadow color of the menu's Material.shape
- The shape of the menu's underlying Material, an instance ofOutlinedBorder
class.side
- An instance ofBorderSide
class, the color and weight of the menu's outline.surface_tint_color
- The surface tint color of the menu's Material.