postcss-pseudo-class-enter

5.0.0 • Public • Published

PostCSS Enter Pseudo Class PostCSS

NPM Version Build Status Support Chat

PostCSS Enter Pseudo Class lets you use the proposed :enter pseudo-class in CSS.

:enter simplifies selectors targeting elements that are “designated”, as in designated with a pointing device, rather than any device.

nav :enter > span {
  background-color: yellow;
}
 
/* becomes */
 
nav :hover > span,
nav :focus > span {
  background-color: yellow;
}

From the proposal:

The :enter pseudo-class applies while the user designates an element with a keyboard, pointing device, or other form of input. It matches an element if the element would match :focus or :hover.

Usage

Add PostCSS Enter Pseudo Class to your project:

npm install postcss-pseudo-class-enter --save-dev

Use PostCSS Enter Pseudo Class to process your CSS:

const postcssPseudoClassEnter = require('postcss-pseudo-class-enter');
 
postcssPseudoClassEnter.process(YOUR_CSS /*, processOptions, pluginOptions */);

Or use it as a PostCSS plugin:

const postcss = require('postcss');
const postcssPseudoClassEnter = require('postcss-pseudo-class-enter');
 
postcss([
  postcssPseudoClassEnter(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);

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

Node PostCSS CLI Webpack Create React App Gulp Grunt

Options

prefix

The prefix option determines whether the :enter pseudo-class should use a prefix, and what that prefix will be.

postcssPseudoClassEnter({ prefix: 'x' }); // transforms :-x-enter

outline

Type: String
Default: unset

The outline option determines whether an outline declaration will be added to rules using the :enter pseudo-class. If a string is passed, its value will be used for the outline declaration.

postcssPseudoClassEnter({ outline: true }); // adds outline: 0;
postcssPseudoClassEnter({ outline: 'none' }); // adds outline: none;

Alternatives

Below are some other methods to recreate the effects of :enter.

Use :focus and :hover (supported everywhere)

:focus:hover { /* ... */ }

Use :matches (supported in Firefox 4+, Chrome 12+, Opera 15+, Safari 5.1+)

:matches(:focus:hover{ /* ... */ }

Use @custom-selector (supported nowhere yet)

@custom-selector :--enter :focus:hover;
 
:--enter { /* ... */ }

Use Sass mixins (requires preprocessing)

@mixin -enter { &:focus&:hover { @content} }
 
@include -enter { /* ... */ }

Package Sidebar

Install

npm i postcss-pseudo-class-enter

Weekly Downloads

575

Version

5.0.0

License

CC0-1.0

Unpacked Size

25.2 kB

Total Files

8

Last publish

Collaborators

  • romainmenke
  • alaguna
  • jonathantneal