Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

postcss-pseudo-class-enter

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postcss-pseudo-class-enter - npm Package Compare versions

Comparing version 0.1.1 to 0.2.0

36

index.js
var postcss = require('postcss');
var postcssSelectorParser = require('postcss-selector-parser');
module.exports = postcss.plugin('postcss-pseudo-class-enter', function (opts) {
var match = new RegExp(':' + (opts && opts.prefix ? '-' + opts.prefix + '-' : '') + 'enter\\b', 'g');
var pseudoValue = ':' + (opts && opts.prefix ? '-' + opts.prefix + '-' : '') + 'enter';
var pseudoFallbackValues = [':focus', ':hover'];
function eachRule(rule) {
rule.selector = postcssSelectorParser(function (selectors) {
selectors.each(function (selector, index) {
var originalIndex = index;
pseudoFallbackValues.forEach(function (pseudoFallbackValue) {
var clone = selector.clone();
clone.eachPseudo(function (pseudo) {
if (pseudo.value === pseudoValue) {
pseudo.value = pseudoFallbackValue;
selectors.nodes.splice(++index, 0, clone);
}
});
});
if (originalIndex !== index) {
selector.removeSelf();
}
});
}).process(rule.selector).result;
}
return function (css) {
css.eachRule(function (rule) {
if (match.test(rule.selector)) {
rule.selector = ['focus', 'hover'].map(function (replacement) {
return rule.selector.replace(match, ':' + replacement);
}).join(', ');
}
});
css.eachRule(eachRule);
};
});
{
"name": "postcss-pseudo-class-enter",
"version": "0.1.1",
"version": "0.2.0",
"description": "Use the proposed :enter pseudo-class in CSS",

@@ -23,3 +23,4 @@ "keywords": ["postcss", "css", "postcss-plugin", "hover", "focus", "pseudo", "keyboard", "mouse", "touch", "pointer"],

"gulp-eslint": "^0.12.0",
"gulp-mocha": "^2.0.1"
"gulp-mocha": "^2.0.1",
"postcss-selector-parser": "^1.0.0"
},

@@ -26,0 +27,0 @@ "scripts": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc