# Menu
```rust demo
let toaster = ToasterInjection::expect_context();
let on_select = move |key: String| {
leptos::logging::warn!("{}", key);
toaster.dispatch_toast(view! {
"key"
}.into_any(), Default::default());
};
view! {
}
```
### Placement
```rust demo
use leptos_meta::Style;
let on_select = move |value| leptos::logging::warn!("{}", value);
view! {
}
```
### Menu Props
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| class | `OptionalProp>` | `Default::default()` | Addtional classes for the menu element. |
| on_select | `Callback` | | Called when item is selected. |
| trigger_type | `MenuTriggerType` | `MenuTriggerType::Click` | Action that displays the menu. |
| position | `MenuPosition` | `MenuPosition::Bottom` | Menu position. |
| children | `Children` | | The content inside menu. |
### MenuItem Props
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| class | `OptionalProp>` | `Default::default()` | Addtional classes for the menu item element. |
| value | `MaybeSignal` | `Default::default()` | The value of the menu item. |
| label | `MaybeSignal` | `Default::default()` | The label of the menu item. |
| icon | `OptionalMaybeSignal` | `None` | The icon of the menu item. |
| disabled | `MaybeSignal` | `false` | Whether the menu item is disabled. |
### Menu Slots
| Name | Default | Description |
| ----------- | ------- | -------------------------------------------- |
| MenuTrigger | `None` | The element or component that triggers menu. |
### MenuTriger Props
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| class | `OptionalProp>` | `Default::default()` | Addtional classes for the menu trigger element. |
| children | `Children` | | The content inside menu trigger. |