pub struct CssAnalytics {Show 25 fields
pub total_declarations: u32,
pub important_declarations: u32,
pub rule_count: u32,
pub empty_rule_count: u32,
pub max_nesting_depth: u8,
pub notable_rules: Vec<CssRuleMetric>,
pub notable_truncated: bool,
pub colors: Vec<String>,
pub font_sizes: Vec<String>,
pub z_indexes: Vec<String>,
pub box_shadows: Vec<String>,
pub border_radii: Vec<String>,
pub line_heights: Vec<String>,
pub raw_style_values: Vec<CssRawStyleValue>,
pub custom_property_definitions: Vec<CssCustomPropertyDefinition>,
pub defined_custom_properties: Vec<String>,
pub referenced_custom_properties: Vec<String>,
pub defined_keyframes: Vec<String>,
pub referenced_keyframes: Vec<String>,
pub registered_custom_properties: Vec<String>,
pub declared_layers: Vec<String>,
pub populated_layers: Vec<String>,
pub defined_font_faces: Vec<String>,
pub referenced_font_families: Vec<String>,
pub declaration_blocks: Vec<CssDeclarationBlock>,
}Expand description
Stylesheet-level structural CSS analytics, computed from the parsed CSS
syntax tree. Feeds fallow health penalty weights and located findings,
never a standalone CSS score.
Fields§
§total_declarations: u32Total declarations across every style rule (normal plus !important).
important_declarations: u32Total !important declarations across every style rule.
rule_count: u32Number of style rules.
empty_rule_count: u32Number of style rules with no declarations.
max_nesting_depth: u8Deepest style-rule nesting depth observed (0 = no nesting).
notable_rules: Vec<CssRuleMetric>Rules that crossed the structural floor, in source order. Bounded; see
Self::notable_truncated. The scalar aggregates above always reflect
the full stylesheet regardless of truncation.
notable_truncated: booltrue when more rules crossed the structural floor than notable_rules
retains (compiled utility CSS can emit thousands of !important rules),
so consumers can note that per-rule findings were capped.
colors: Vec<String>Distinct color VALUES in the stylesheet, sorted (a palette-size /
design-token-sprawl signal). The parser canonicalizes notation, so the
authored format is NOT preserved: red, #f00, #ff0000, and
rgb(255,0,0) all collapse to one entry, and every legacy sRGB notation
renders as hex. Notation-MIXING (hex vs rgb vs hsl) is therefore not
detectable from this set; it would need a separate raw-token pass.
font_sizes: Vec<String>Distinct font-size declaration values in the stylesheet, sorted.
z_indexes: Vec<String>Distinct z-index declaration values in the stylesheet, sorted.
box_shadows: Vec<String>Distinct box-shadow declaration values in the stylesheet, sorted. A
high count signals an uncontrolled shadow scale (design-token sprawl).
border_radii: Vec<String>Distinct border-radius declaration values in the stylesheet, sorted.
line_heights: Vec<String>Distinct line-height declaration values in the stylesheet, sorted.
raw_style_values: Vec<CssRawStyleValue>Bounded located raw styling values that bypass custom properties or token helpers. These are conservative declaration-level candidates for audit introduced-vs-base gating.
custom_property_definitions: Vec<CssCustomPropertyDefinition>Located custom-property definitions with values. Internal staging consumed by the health layer for nearest-token suggestions.
defined_custom_properties: Vec<String>Distinct custom properties (--x) DEFINED in the stylesheet, sorted.
referenced_custom_properties: Vec<String>Distinct custom properties REFERENCED via var() in the stylesheet.
defined_keyframes: Vec<String>Distinct @keyframes names DEFINED in the stylesheet, sorted.
referenced_keyframes: Vec<String>Distinct @keyframes names REFERENCED via animation / animation-name.
registered_custom_properties: Vec<String>Distinct custom properties REGISTERED via an @property rule, sorted.
declared_layers: Vec<String>Distinct cascade layers DECLARED (via @layer a, b; statements or named
@layer a { } blocks), sorted.
populated_layers: Vec<String>Distinct cascade layers POPULATED by a named @layer a { } block, sorted.
A layer declared but never populated (and not imported into) is a
cleanup candidate.
defined_font_faces: Vec<String>Distinct font families DECLARED by an @font-face rule in the stylesheet,
sorted. A declared family referenced by no font-family anywhere is a
dead web-font payload (cleanup candidate).
referenced_font_families: Vec<String>Distinct font families REFERENCED via font-family / font in the
stylesheet, sorted (generic keywords like serif excluded).
declaration_blocks: Vec<CssDeclarationBlock>Per-rule declaration-block fingerprints for rules at or above the minimum
block size, used to detect duplicate declaration blocks across the
project. Internal staging consumed by the health layer; never serialized
(the public output is the grouped duplicate_declaration_blocks).