Canopy SCSS Mixins — Reference

SkillDev tools

Reference for Canopy SCSS mixins. Trigger when using lg-breakpoint, lg-font-size, lg-focus-outline, lg-inner-focus-outline, lg-link, lg-unstyled-link, lg-visually-hidden, lg-status, or lg-content-area mixins in SCSS in an Angular project using Canopy.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Canopy SCSS Mixins — Reference skill

What this skill tells your AI

The instructions your AI receives, as published by legal-and-general/canopy in skills/best-practice/mixins/SKILL.md and read by ahel’s review.

This skill provides reference for the Canopy SCSS mixins available for use in custom component styles.


lg-breakpoint

Adds responsive media queries. Supports min-width (default), max-width, and range queries.

// Min-width (default) — applies from md breakpoint onwards
.my-class {
  @include lg-breakpoint('md') {
    color: red;
  }
}

// Max-width — applies up to lg breakpoint
.my-class {
  @include lg-breakpoint('lg', 'max-width') {
    color: blue;
  }
}

// Range — applies only between md and lg breakpoints
.my-class {
  @include lg-breakpoint('md', 'range', 'lg') {
    color: yellow;
  }
}

Arguments:

NameDefaultRequiredDescription
$breakpointn/aYesBreakpoint name: 'sm', 'md', 'lg', 'xl', 'xxl'.
$range'min-width'NoQuery type: 'min-width', 'max-width', or 'range'.
$max-breakpointnullNoMaximum breakpoint name when $range: 'range'.

lg-font-size

Applies a predefined font size with optional weight and type family.

.my-heading {
  @include lg-font-size(4);
}

.my-expressive-heading {
  @include lg-font-size(5, 700, 'expressive');
}

Arguments:

NameDefaultRequiredDescription
$sizen/aYesFont size level: 7, 6, 5, 4, 3, 2, 1, 0-8, 0-6.
$modifier400 (Nunito Sans), 500 (ABC Otto)NoFont weight.
$typenullNoFont family type, e.g. 'expressive'.

lg-focus-outline

Adds an external focus outline using box-shadow (used on buttons).

.my-button:focus {
  @include lg-focus-outline;
}

Arguments: $bg-color (default: --default-focus-color), $inner-bg-color (default: --default-inner-focus-color).


lg-inner-focus-outline

Sets the focus outline inside the element.

.my-input:focus {
  @include lg-inner-focus-outline(#fff);
}

Arguments: $bg-color (required), $color (default: var(--colour-greyscale-0)).


lg-link

Styles an element with Canopy link styles.

.my-custom-link {
  @include lg-link;
}

All arguments are optional and default to the Canopy link CSS variables.


lg-unstyled-link

Reverts Canopy link styles.

.my-custom-link {
  @include lg-unstyled-link;
}

lg-visually-hidden

Hides content visually but keeps it accessible to screen readers.

.sr-only {
  @include lg-visually-hidden;
}

lg-status

Styles a component and its native children to a given status.

.my-alert {
  @include lg-status('error');
}

Argument: $statusgeneric (default), info, success, warning, error.


lg-content-area

Applies Canopy content area styling with responsive border radius and background colour.

.my-panel {
  @include lg-content-area;
}

Signals

GitHub stars
23
Forks
46
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
canopy-mixins
Source
github.com/legal-and-general/canopy