Canopy Data Point — Best Practices
SkillDev toolsBest practices for the Canopy Data Point component. Trigger when displaying labelled data values, key-value pairs, or summary data lists 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 Data Point — 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/data-point/SKILL.md and read by ahel’s review.
This skill provides usage guidance and input reference for the Canopy lg-data-point component from @legal-and-general/canopy.
Apply this skill whenever you use LgDataPointComponent, LgDataPointLabelComponent, LgDataPointValueComponent, LgDataPointSecondaryLabelComponent, LgDataPointAddOnComponent, or LgDataPointGroupComponent.
Import
import {
LgDataPointComponent,
LgDataPointLabelComponent,
LgDataPointValueComponent,
LgDataPointSecondaryLabelComponent,
LgDataPointAddOnComponent,
LgDataPointGroupComponent,
} from '@legal-and-general/canopy';
Basic Usage
Single data point:
<lg-data-point>
<lg-data-point-label [headingLevel]="3" [isBold]="true">Annual increase</lg-data-point-label>
<lg-data-point-value size="sm">Retail price index (RPI)</lg-data-point-value>
</lg-data-point>
With secondary label — optional supplementary text (e.g. a date or qualifier) displayed below the value:
<lg-data-point>
<lg-data-point-label [headingLevel]="3" [isBold]="true">Annual increase</lg-data-point-label>
<lg-data-point-value size="sm">Retail price index (RPI)</lg-data-point-value>
<lg-data-point-secondary-label>as of 01 Jan 2026</lg-data-point-secondary-label>
</lg-data-point>
With add-on — optional link or inline content displayed below the secondary label (or value if no secondary label is present):
<lg-data-point>
<lg-data-point-label [headingLevel]="3" [isBold]="true">Annual increase</lg-data-point-label>
<lg-data-point-value size="sm">Retail price index (RPI)</lg-data-point-value>
<lg-data-point-secondary-label>as of 01 Jan 2026</lg-data-point-secondary-label>
<lg-data-point-add-on><a href="#">View details</a></lg-data-point-add-on>
</lg-data-point>
Data point group — groups up to four data points, arranged horizontally (default) or vertically:
<lg-data-point-group orientation="horizontal">
<lg-data-point>
<lg-data-point-label [headingLevel]="3" [isBold]="true">Name on account</lg-data-point-label>
<lg-data-point-value size="sm">Joe Bloggs</lg-data-point-value>
</lg-data-point>
<lg-data-point>
<lg-data-point-label [headingLevel]="3" [isBold]="true">Account number</lg-data-point-label>
<lg-data-point-value size="sm">***5678</lg-data-point-value>
</lg-data-point>
</lg-data-point-group>
Inputs
lg-data-point
| Input | Type | Default | Required | Description |
|---|---|---|---|---|
variant | 'form' | 'card' | 'card-principle' | 'form' | No | Sets the visual variant. Use 'form' for form journey and content contexts; use 'card' for a data point inside a card content area; use 'card-principle' for a prominent hero data point (e.g. a key financial value) in a product card. |
isListItem | boolean | false | No | Applies role="listitem" — set automatically by lg-data-point-group when two or more data points are present. |
lg-data-point-label
| Input | Type | Default | Required | Description |
|---|---|---|---|---|
headingLevel | number | n/a | Yes | Sets the semantic heading level (1–6). Always choose a level that reflects the correct document outline. |
isBold | boolean | false | No | When true, renders label text at font-weight: 700; when false, uses font-weight: 400. |
lg-data-point-value
| Input | Type | Default | Required | Description |
|---|---|---|---|---|
size | 'sm' | 'md' | 'lg' | 'sm' | No | Controls font size: sm = size 1, md = size 3, lg = size 5. In the card variant, sm is bold (font-weight-700) and md/lg are regular (font-weight-400). In the form variant, the value is never bold. |
lg-data-point-secondary-label
No inputs. Project text content directly into the element. Used for supplementary information displayed below the value.
lg-data-point-add-on
No inputs. Project any inline content (typically an anchor element) directly into the element. Rendered below the secondary label, or below the value if no secondary label is present.
lg-data-point-group
| Input | Type | Default | Required | Description |
|---|---|---|---|---|
orientation | 'horizontal' | 'vertical' | 'horizontal' | No | Sets how data points are arranged. Horizontal stacks on small breakpoints and switches to a row from md. Vertical stays as a column at all breakpoints. |
Design Constraints
- A data point group supports up to four data points.
headingLevelis required onlg-data-point-label— always choose a level that reflects the correct document outline.- When placed inside
lg-data-point-groupwith two or more data points,role="list"is applied to the wrapper androle="listitem"is applied to each data point automatically. With only one data point, neither role is applied — a single-item list is not meaningful to screen reader users. - Use with the
lgSkeletondirective for loading states (see theskeletonskill).
Signals
- GitHub stars
- 23
- Forks
- 46
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
canopy-data-point- Source
- github.com/legal-and-general/canopy