<!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->

# `lr-menu-label`

- **Import** `import '@aceshooting/lyra-ui/components/lr-menu-label.js';` (stable tag alias; registers the tag)
- **Class** `LyraMenuLabel`, also available unregistered from `@aceshooting/lyra-ui/components/layout/menu/menu-label.class.js`
- **Family** `components/layout/` — see `llms/index.md` for its siblings
- **Status** `stable` since `8.0.0` — see the maturity and deprecation policy in `llms/shared.md`
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
- **Deprecations** none
- **Optional peers** none
- **Themeable via** 1 part, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`

---

## `lr-menu-label`

A non-interactive section heading inside `<lr-menu>`'s default slot. Mirrors `sl-menu-label`.

The host takes `role="presentation"` on connect (a `role="menu"` may only contain menu-item roles,
so a heading with a generic role would make the menu's own children invalid) — unless the consumer
already set a `role`, which is left alone. `<lr-menu>` enumerates its interactive items by local tag
name (`lr-menu-item` or `lr-dropdown-item`), not `instanceof`, so an adopted same-origin
foreign-realm item remains enrollable. A label matches neither tag, is never enrolled in the roving
tabindex, and can never become a focus stop; nothing on `<lr-menu>` has to know this element exists.

Keep selectable items directly assigned to the menu's default slot, or forward them through a
slot, with `lr-menu-label` as a sibling visual caption. Arbitrary `role="group"` wrappers do not
provide a supported menu-group API. `aria-labelledby` cannot reference this element's shadow
internals because idrefs do not cross a shadow boundary.

**Properties:** none. **Events:** none. **Slots:** default (the heading text).
**CSS parts:** `base` (the heading row).

**Themeable custom properties:** shared tokens only — `--lr-color-text-quiet`, `--lr-font-size-sm`,
`--lr-font-weight-semibold`, `--lr-space-xs`/`--lr-space-s`.

```html
<lr-menu>
  <lr-menu-label>Recently used</lr-menu-label>
  <lr-menu-item value="open">Open…</lr-menu-item>
</lr-menu>
```

---
