/ c4f / front / node_modules / @csstools / selector-specificity /

[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]dist/9 months ago -  
[TXT]CHANGELOG.md9 months ago529  
[TXT]LICENSE.md9 months ago930  
[TXT]README.md9 months ago2.1K 
[   ]package.json9 months ago1.4K 
README.md

Selector Specificity

npm version Build Status Discord

Usage

Add Selector Specificity to your project:

npm install @csstools/selector-specificity --save-dev
import parser from 'postcss-selector-parser';
import { selectorSpecificity } from '@csstools/selector-specificity';

const selectorAST = parser().astSync('#foo:has(> .foo)');
const specificity = selectorSpecificity(selectorAST);

console.log(specificity.a); // 1
console.log(specificity.b); // 1
console.log(specificity.c); // 0

selectorSpecificity takes a single selector, not a list of selectors (not : a, b, c). To compare or otherwise manipulate lists of selectors you need to call selectorSpecificity on each part.

Comparing

The package exports a utility function to compare two specificities.

import { selectorSpecificity, compare } from '@csstools/selector-specificity';

const s1 = selectorSpecificity(ast1);
const s2 = selectorSpecificity(ast2);
compare(s1, s2); // -1 | 0 | 1

Prior Art

For CSSTools we always use postcss-selector-parser and want to calculate specificity from this AST.

Apache/2.4.38 (Debian) Server at www.karls.computer Port 80