diff --git a/readme.md b/readme.md index ace2d80..4993781 100644 --- a/readme.md +++ b/readme.md @@ -87,6 +87,43 @@ etc. etc. */ ``` +## Metrics + +### Performance + +| Metric | What is tested | Points deducted | +| ------------------------- | -------------------------------------------- | ------------------------------------------- | +| `Imports` | Number of `@import` rules | 10 per `@import` | +| `EmptyRules` | Number of empty rules | 1 per empty rule | +| `SelectorDuplications` | Ratio of duplicate selectors | Up to 10 (when uniqueness ratio < 66%) | +| `DeclarationDuplications` | Ratio of duplicate declarations | Up to 10 (when uniqueness ratio < 66%) | +| `CssSize` | Total CSS file size | 5 if size exceeds 200,000 bytes | +| `TooMuchComments` | Total size of comments | 1 per 250 bytes of comments, max 10 | +| `TooMuchEmbeddedContent` | Total size of embedded content (e.g. base64) | 1 per 250 bytes of embedded content, max 20 | + +### Maintainability + +| Metric | What is tested | Points deducted | +| --------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- | +| `SourceLinesOfCode` | Total source lines of code | 1 per 1,000 lines over 10,000, max 15 | +| `AverageSelectorsPerRule` | Average number of selectors per rule | 5 per selector over 2 (average), max 15 | +| `AverageDeclarationsPerRule` | Average number of declarations per rule | 5 per declaration over 5 (average), max 15 | +| `MaxSelectorsPerRule` | Maximum number of selectors in a single rule | 0.5 per selector over 10, max 15 | +| `MaxDeclarationsPerRule` | Maximum number of declarations in a single rule | 0.5 per declaration over 10, max 15 | +| `MoreThanMostCommonSelectorsPerRule` | Rules that have more selectors than the most common count | 0.01 per rule, max 15 (when > 10% of rules exceed the mode) | +| `MoreThanMostCommonDeclarationsPerRule` | Rules that have more declarations than the most common count | 0.01 per rule, max 15 (when > 10% of rules exceed the mode) | + +### Complexity + +| Metric | What is tested | Points deducted | +| --------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------- | +| `MoreThanMostCommonSelectorComplexity` | Selectors more complex than the most common complexity | 0.01 per selector, max 10 (when > 10% of selectors exceed the mode) | +| `MoreThanMostCommonSelectorSpecificity` | Selectors with higher specificity than the most common specificity | 0.01 per selector, max 10 (when > 10% of selectors exceed the mode) | +| `MaxSelectorComplexity` | Maximum complexity of a single selector | 0.5 per complexity unit over 5, max 5 | +| `AverageSelectorComplexity` | Average selector complexity | 2 per complexity unit over 2 (average), max 10 | +| `IdSelectorRatio` | Ratio of ID selectors | Up to 5 (when ID selector ratio exceeds 1%) | +| `ImportantRatio` | Ratio of `!important` declarations | Up to 5 (when `!important` ratio exceeds 1%) | + ## Related projects - [CSS Analyzer](https://github.com/projectwallace/css-analyzer) -