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).
Trait Implementations§
Source§impl Clone for CssAnalytics
impl Clone for CssAnalytics
Source§fn clone(&self) -> CssAnalytics
fn clone(&self) -> CssAnalytics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CssAnalytics
impl Debug for CssAnalytics
Source§impl Default for CssAnalytics
impl Default for CssAnalytics
Source§fn default() -> CssAnalytics
fn default() -> CssAnalytics
Source§impl Serialize for CssAnalytics
impl Serialize for CssAnalytics
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for CssAnalytics
impl RefUnwindSafe for CssAnalytics
impl Send for CssAnalytics
impl Sync for CssAnalytics
impl Unpin for CssAnalytics
impl UnsafeUnpin for CssAnalytics
impl UnwindSafe for CssAnalytics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more