A robust CSS stylesheet statistics collector and analyzer
-
- size
- comments
- atRules
- rules
- selectors
- selectorsUsage
- selectorComplexityThreshold
- specificityGraph
- declarations
- uniqueDeclarationsList
- properties
- engineTriggerProperties
- performanceHacks
- displays
- positions
- zIndices
- floats
- borderRadiuses
- widths
- heights
- letterSpacings
- fonts
- colors
- backgroundColors
- allColors
- transitionsAndAnimations
- functions
- filters
- gradients
- units
- variables
- dataUris
- browserHacks
npm install scancss --save
yarn add scancss --save
import scancss from 'scancss';
// or const scancss = require('scancss');
const stylesheet = `
.selector {
display: inline-block;
position: relative;
width: 40px;
height: 40px;
background-color: #123123;
color: #fff;
}
@media screen and (max-width: 480px) {
.selector {
width: 20px;
height: 20px;
background-color: #456456;
color: #000;
}
}
`;
// Switching off some metrics
const report = scancss(
stylesheet,
{
atRules: false,
selectorsUsage: false,
dataUris: false,
}
);NOTE: Without provided options object scancss will use defaults. See available Options.
See Report Structure for more details.
See examples folder with stylesheets and their corresponding reports.
Use this flag to fill .size metric
- Default:
true
Use this flag to fill .comments metric
- Default:
true
Use this flag to fill .atRules, .mediaQueries, .keyframes, .imports metrics
-
NOTE: Disabling this flag you will disable counting browser hacks in @supports and @media at-rules
-
Default:
true
Use this flag to fill .rules and .selectors metrics
-
NOTE: Disabling this flag you will disable counting all
.selectorsmetrics -
Default:
true
Use this flag to fill .selectors metric
-
NOTE: Disabling this flag you will disable counting all
.selectorsmetrics -
Default:
true
Use this flag to fill .selectors.usage metric
- Default:
true
Use this flag to fill .selectors.attributesUsage metric
- Default:
true
Use this value to set a threshold of the base parts of a selector to consider the selector as complex and to count in .selectors.complex metric
- Default:
4
Use this flag to fill .selectors.specificity.graphData metric
- Default:
false
Use this flag to fill .declarations metric
-
NOTE: Disabling this flag you will disable counting all
.declarationsmetrics -
Default:
true
Use this flag to fill .declarations.list metric
- Default:
false
Use this flag to fill .properties metric
-
NOTE: Disabling this flag you will disable counting
.properties.engineTriggersand.properties.performanceHacks -
Default:
true
Use this flag to fill .properties.engineTriggers metric
- Default:
true
Use this flag to fill .properties.performanceHacks metric
- Default:
true
Use this flag to fill .displays metric
- Default:
true
Use this flag to fill .positions metric
- Default:
true
Use this flag to fill .zIndices metric
- Default:
true
Use this flag to fill .floats metric
- Default:
true
Use this flag to fill .borderRadiuses metric
- Default:
true
Use this flag to fill .widths metric
- Default:
true
Use this flag to fill .heights metric
- Default:
true
Use this flag to fill .letterSpacings metric
- Default:
true
Use this flag to fill .fontSizes, .lineHeights, .fontFamilies metrics
- Default:
true
Use this flag to fill .colors metric
- Default:
true
Use this flag to fill .backgroundColors metric
- Default:
true
Use this flag to fill .allColors metric
- Default:
true
Use this flag to fill .transitions and .animations metrics
- Default:
true
Use this flag to fill .functions metric
-
NOTE: Disabling this flag you will disable counting
.gradients,.filters,.dataUris, cubic-beziers for.transitionsand.animationsmetrics -
Default:
true
Use this flag to fill .filters metric
Use this flag to fill .gradients metric
- Default:
true
Use this flag to fill .units metric
-
NOTE: Disabling this flag you will disable counting
.properties.negativeMarginsmetric -
Default:
true
Use this flag to fill .variables metric
- Default:
true
Use this flag to fill .dataUris metric
- Default:
true
Use this flag to fill .browserHacks metric
- Default:
true
MIT © Alex Orekhov @everget