Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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) -
Expand Down