Link
Installation
yarn add @chewy/kib-foundationsImport
@use '~@chewy/kib-foundations/src/link';Mixins
link
@mixin link($highlight-visited) { ... }@mixin link($highlight-visited) { @if not $highlight-visited { #{common.get-property-name('link', 'visited', 'primary')}: settings.$color; } color: settings.$color; background-color: transparent; // Default: underline (web standard) text-decoration: underline; /* stylelint-disable-next-line plugin/use-baseline -- Progressive enhancement: text-decoration-skip is non-critical, gracefully ignored in unsupported browsers */ text-decoration-skip: objects; text-decoration-skip-ink: auto; // Inherit font-weight from parent (makes links bold within strong text) font-weight: inherit; // Touch devices: remove underline and use strong font weight @media (hover: none) and (pointer: coarse) { font-weight: typography.get-weight('product-text-weight-strong'); text-decoration: none; } @if $highlight-visited { &:visited { color: settings.$visited-color; @media (hover: none) and (pointer: coarse) { text-decoration: none; } } } @media (hover: hover) and (pointer: fine) { &:hover { color: settings.$hover-color; } } &:active { color: settings.$pressed-color; } &:focus-visible { outline-color: settings.$color; outline-offset: settings.$focus-outline-offset; @media (hover: none) and (pointer: coarse) { text-decoration: underline; } } }
Description
Standard navigation link styles generator
Parameters
| parameter Name | parameter Description | parameter Type | parameter Default value |
|---|---|---|---|
$highlight-visited | true - Adds styles for visited links. | Bool | — none |
Requires
- [function]
get-property-name - [function]
get-weight - [variable]
color - [variable]
visited-color - [variable]
hover-color - [variable]
pressed-color - [variable]
focus-outline-offset
link-reset
@mixin link-reset() { ... }@mixin link-reset() { display: inline; padding: 0; appearance: none; background-color: transparent; border: 0; font: inherit; line-height: inherit; vertical-align: baseline; cursor: pointer; @include link; }
Variables
color
$color: color.get('link', 'active', 'primary') !default;visited-color
$visited-color: color.get('link', 'visited', 'primary') !default;hover-color
$hover-color: color.get('link', 'hover', 'primary') !default;pressed-color
$pressed-color: color.get('link', 'pressed', 'primary') !default;focus-outline-offset
$focus-outline-offset: spacing.get('s1') !default;Description
Link focus outline offset
Type
Number
disabled-opacity
$disabled-opacity: 0.5 !default;Description
Link disabled opacity
Type
Number