Name Last Update
..
dist Loading commit data...
CHANGELOG.md Loading commit data...
LICENSE.md Loading commit data...
README.md Loading commit data...
package.json Loading commit data...

PostCSS Pseudo Class Any Link PostCSS Logo

NPM Version CSS Standard Status Build Status Discord

PostCSS Pseudo Class Any Link lets you :any-link pseudo-class in CSS, following the Selectors specification.

nav :any-link > span {
  background-color: yellow;
}

/* becomes */

nav :link > span, nav :visited > span {
  background-color: yellow;
}

nav :any-link > span {
  background-color: yellow;
}

From the proposal:

The :any-link pseudo-class represents an element that acts as the source anchor of a hyperlink. It matches an element if the element would match :link or :visited.

'Can I use' table

Usage

Add PostCSS Pseudo Class Any Link to your project:

npm install postcss postcss-pseudo-class-any-link --save-dev

Use PostCSS Pseudo Class Any Link as a PostCSS plugin:

const postcss = require('postcss');
const postcssPseudoClassAnyLink = require('postcss-pseudo-class-any-link');

postcss([
  postcssPseudoClassAnyLink(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);

PostCSS Pseudo Class Any Link runs in all Node environments, with special instructions for:

Node PostCSS CLI Webpack Create React App Gulp Grunt

Options

preserve

The preserve option determines whether the original :any-link rule is preserved. By default, it is preserved.

postcssPseudoClassAnyLink({ preserve: false })
nav :any-link > span {
  background-color: yellow;
}

/* becomes */

nav :link > span, nav :visited > span {
  background-color: yellow;
}

subFeatures

areaHrefNeedsFixing

The subFeatures.areaHrefNeedsFixing option determines if <area href> elements should match :any-link pseudo-class.
In IE and Edge these do not match :link or :visited.

This increased CSS bundle size and is disabled by default.

postcssPseudoClassAnyLink({
  subFeatures: {
    areaHrefNeedsFixing: true
  }
})
nav :any-link > span {
  background-color: yellow;
}

/* becomes */

nav :link > span, nav :visited > span, area[href] > span {
  background-color: yellow;
}