Canopy Link Menu — Best Practices
SkillDev toolsBest practices for the Canopy Link Menu component. Trigger when building link lists, navigation menus, or card-style link collections in an Angular project using Canopy.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Canopy Link Menu — Best Practices skill
What this skill tells your AI
The instructions your AI receives, as published by legal-and-general/canopy in skills/best-practice/link-menu/SKILL.md and read by ahel’s review.
This skill provides usage guidance and input reference for the Canopy lg-link-menu component from @legal-and-general/canopy.
Apply this skill whenever you use LgLinkMenuComponent or lg-link-menu.
Import
import {
LgLinkMenuComponent,
LgLinkMenuItemComponent,
LgLinkMenuItemTextComponent,
} from '@legal-and-general/canopy';
For icon support, also import:
import { LgIconComponent } from '@legal-and-general/canopy';
Basic Usage
<lg-link-menu>
<a href="/overview">
<lg-link-menu-item>
<lg-link-menu-item-text>Overview</lg-link-menu-item-text>
</lg-link-menu-item>
</a>
<a href="/details">
<lg-link-menu-item>
<lg-link-menu-item-text>Details</lg-link-menu-item-text>
</lg-link-menu-item>
</a>
</lg-link-menu>
With Secondary Text
Use a second lg-link-menu-item-text for a descriptive subtitle. It renders with reduced weight and muted colour automatically.
<lg-link-menu>
<a href="/personal-details">
<lg-link-menu-item>
<lg-link-menu-item-text [isBold]="true">Personal details</lg-link-menu-item-text>
<lg-link-menu-item-text>Your name, date of birth and address</lg-link-menu-item-text>
</lg-link-menu-item>
</a>
</lg-link-menu>
With Icons
Left icon (projected as content):
<a href="#">
<lg-link-menu-item>
<lg-icon name="settings"></lg-icon>
<lg-link-menu-item-text>Settings</lg-link-menu-item-text>
</lg-link-menu-item>
</a>
Override or hide right icon:
<!-- Override with a specific icon -->
<lg-link-menu-item rightIcon="download">...</lg-link-menu-item>
<!-- Hide right icon entirely -->
<lg-link-menu-item [rightIcon]="null">...</lg-link-menu-item>
External links — set target="_blank" on the anchor to automatically show the link-external icon with accessible text "opens in a new tab":
<a href="https://example.com" target="_blank">
<lg-link-menu-item>
<lg-link-menu-item-text>External resource</lg-link-menu-item-text>
</lg-link-menu-item>
</a>
Dos and Don'ts
Do
- Do organise links into logical, related groups with clear, descriptive section headings — especially in complex menus like sidebars, navs, or footers.
- Do provide clear, concise labels for each link.
- Do use secondary text for additional context if needed.
- Do ensure icons are meaningful and support the link's purpose.
Don't
- Don't use link menus for single actions — use a link or button instead.
- Don't include unrelated or miscellaneous links, or present a long, unstructured list — menus must group related links and use clear hierarchy to avoid overwhelming users with "walls of links."
- Don't use link menus as a substitute for contextual links within page content.
- Don't overload menus with too many links or excessive secondary text.
Accessibility
- Always use semantic navigation markup and ARIA roles for grouped navigation (e.g.
<nav role="navigation">). - Each link must have a clear, descriptive label.
- If using icons, provide accessible text or
aria-labelfor screen readers. - Keyboard users must be able to tab through all links in the menu in order.
Design Constraints
- Link menus work best when they contain between 2 and 10 links — fewer may not justify a menu; more can overwhelm users.
- Use link menus only for grouped navigation, not as a catch-all for every possible destination.
- Link menus are not a replacement for contextual links within page content.
Inputs
LgLinkMenuItemComponent
| Input | Type | Default | Required | Description |
|---|---|---|---|---|
rightIcon | string | null | undefined | undefined | No | Custom icon name for the right icon, or null to hide it. |
LgLinkMenuItemTextComponent
| Input | Type | Default | Description |
|---|---|---|---|
isBold | boolean | false | Makes the text bold (font weight 500). |
Signals
- GitHub stars
- 23
- Forks
- 46
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
canopy-link-menu- Source
- github.com/legal-and-general/canopy