import { Component } from '@angular/core';
import { WrBurger } from 'ngwr/burger';
@Component({ imports: [WrBurger] })
export class MyComponent {}Burger
A menu button that morphs between a hamburger and a close mark.
Installation
Import the class, and @use the entry point in your global styles: without it the component renders unstyled.
Basic usage
Bind [(open)].
<wr-burger [(open)]="menuOpen" />With a drawer
Bind the same signal to <wr-burger> and <wr-drawer>.
<wr-burger [(open)]="menuOpen" />
<wr-drawer [(open)]="menuOpen" position="right" width="16rem">
…
</wr-drawer>Styling
Set the --wr-burger-* custom properties.
<wr-burger
[(open)]="menuOpen"
style="--wr-burger-size: 3rem; --wr-burger-color-opened: var(--wr-color-danger);"
/>Disabled
API
| Name | Description | Type | Default |
|---|---|---|---|
open | Two-way bindable open state. Drives the hamburger ↔ close morph. | boolean | false |
label | Accessible name for the toggle button. Falls back to burger.label, then 'Toggle menu'. | string | null | null |
disabled | Disable the toggle. | boolean | false |
CSS variables
Set these on the component's selector or a wrapper, not on :root: the defaults are declared on ngwr/burger's own element.
| Variable | Default | Declared on |
|---|---|---|
--wr-burger-color | var(--wr-color-on-surface) | .wr-burger +1 variant override |
--wr-burger-color-opened | var(--wr-color-primary) | .wr-burger |
--wr-burger-duration | 0.5s | .wr-burger |
--wr-burger-ease | var(--wr-ease-in-out) | .wr-burger |
--wr-burger-offset-1 | 0 | .wr-burger +1 variant override |
--wr-burger-offset-2 | 0 | .wr-burger +1 variant override |
--wr-burger-offset-3 | 0 | .wr-burger +1 variant override |
--wr-burger-size | 2.5rem | .wr-burger |
--wr-burger-stroke-1 | 60 207 | .wr-burger +1 variant override |
--wr-burger-stroke-2 | 60 60 | .wr-burger +1 variant override |
--wr-burger-stroke-3 | 60 207 | .wr-burger +1 variant override |
--wr-burger-stroke-width | 6px | .wr-burger |
See also
Component SidebarNavigation drawn from data: pages and groups, three levels deep.Component DrawerA side panel that slides in from any edge of the screen.Component LayoutAn app shell: header, sider, content and footer.Guide Mobile & responsiveMake ngwr layouts work on touch screens and narrow containers.