# Drawer
```rust demo
let show = create_rw_signal(false);
let placement = create_rw_signal(DrawerPlacement::Top);
let open = Callback::new(move |new_placement: DrawerPlacement| {
// Note: Since `show` changes are made in real time,
// please put it in front of `show.set(true)` when changing `placement`.
placement.set(new_placement);
show.set(true);
});
view! {
"Hello"
}
```
### Customize display area
```rust demo
let show = create_rw_signal(false);
view! {
"Current position"
}
```
### Drawer Props
| Name | Type | Default | Desciption |
| --- | --- | --- | --- |
| class | `OptionalProp>` | `Default::default()` | Addtional classes for the drawer element. |
| show | `Model` | | Whether to show drawer. |
| mask_closeable | `MaybeSignal` | `true` | Whether to emit hide event when click mask. |
| close_on_esc | `bool` | `true` | Whether to close drawer on Esc is pressed. |
| title | `OptionalProp>` | `Default::default()` | Drawer title. |
| placement | `MaybeSignal` | `DrawerPlacement::Right` | Drawer placement. |
| width | `MaybeSignal` | `520px` | Drawer width. |
| height | `MaybeSignal` | `260px` | Drawer height. |
| z_index | `MaybeSignal` | `2000` | z-index of the drawer. |
| mount | `DrawerMount` | `DrawerMount::Body` | Container node of the drawer. |
| children | `Children` | | Drawer content. |