pub struct CssAnalyticsSummary {Show 36 fields
pub files_analyzed: u32,
pub total_rules: u32,
pub total_declarations: u32,
pub important_declarations: u32,
pub empty_rules: u32,
pub max_nesting_depth: u8,
pub unique_colors: u32,
pub unique_font_sizes: u32,
pub unique_z_indexes: u32,
pub unique_box_shadows: u32,
pub unique_border_radii: u32,
pub unique_line_heights: u32,
pub custom_properties_defined: u32,
pub custom_properties_unreferenced: u32,
pub custom_properties_undefined: u32,
pub keyframes_defined: u32,
pub keyframes_unreferenced: u32,
pub keyframes_undefined: u32,
pub scoped_unused_classes: u32,
pub duplicate_declaration_blocks: u32,
pub duplicate_declarations_total: u32,
pub tailwind_arbitrary_values: u32,
pub tailwind_arbitrary_value_uses: u32,
pub preprocessor_stylesheets: u32,
pub preprocessor_reachability_abstained: bool,
pub raw_style_values: u32,
pub unused_property_registrations: u32,
pub unused_layers: u32,
pub unresolved_class_references: u32,
pub unreferenced_css_classes: u32,
pub unused_font_faces: u32,
pub unused_theme_tokens: u32,
pub near_duplicate_theme_tokens: u32,
pub near_duplicate_css_in_js_tokens: u32,
pub font_size_units_used: u32,
pub notable_truncated_files: u32,
}Expand description
Project-wide CSS analytics aggregates across every analyzed stylesheet
(including stylesheets with no notable rule, which are not listed
individually in files).
Fields§
§files_analyzed: u32Stylesheets analyzed: standard .css files, Vue/Svelte SFC <style>
blocks, and (dep-gated) CSS-in-JS, both the tagged-template form and the
object form (style({...}) / stylex.create({...}) / css({...})). SCSS
is skipped. Note: flat atomic object CSS-in-JS (StyleX/Panda) is counted
here and contributes to these aggregates, but has no notable rules, so its
files never appear in the per-file files list.
total_rules: u32Total style rules across analyzed stylesheets.
total_declarations: u32Total declarations across analyzed stylesheets.
important_declarations: u32Total !important declarations across analyzed stylesheets.
empty_rules: u32Total empty style rules across analyzed stylesheets.
max_nesting_depth: u8Deepest style-rule nesting depth observed across analyzed stylesheets.
unique_colors: u32Distinct color values (authored form) across the whole codebase. A high count signals an uncontrolled palette (design-token sprawl).
unique_font_sizes: u32Distinct font-size values across the whole codebase.
unique_z_indexes: u32Distinct z-index values across the whole codebase.
unique_box_shadows: u32Distinct box-shadow values across the whole codebase (shadow-scale sprawl).
unique_border_radii: u32Distinct border-radius values across the whole codebase (radius-scale sprawl).
unique_line_heights: u32Distinct line-height values across the whole codebase (type-scale sprawl).
custom_properties_defined: u32Distinct custom properties (--x) defined anywhere in the codebase.
custom_properties_unreferenced: u32Custom properties defined but never referenced via var() in any
stylesheet (the defined-but-unused direction). These are cleanup
CANDIDATES, not confirmed dead: a property may still be read or set from
JavaScript or inline HTML styles.
custom_properties_undefined: u32Distinct custom properties referenced via var() that are defined in no
stylesheet anywhere (the used-but-undefined direction). A COUNT only, not
a located list: a var(--x) with no CSS definition is extremely common
in JavaScript-driven theming and design-token libraries, so locating
these would be net-noise. The count is an architecture signal (how much
of the var() surface is resolved outside CSS), not a finding.
keyframes_defined: u32Distinct @keyframes defined anywhere in the codebase.
keyframes_unreferenced: u32@keyframes defined but never referenced via animation /
animation-name in any stylesheet (the defined-but-unused direction;
cleanup CANDIDATES; an animation name can still be applied from
JavaScript).
keyframes_undefined: u32Distinct animation names referenced via animation / animation-name
that resolve to no @keyframes definition anywhere (the used-but-
undefined direction). Located in undefined_keyframes; usually a typo or
a removed animation.
scoped_unused_classes: u32Total Vue <style scoped> classes used nowhere else in their component
(cleanup candidates), across all SFCs.
duplicate_declaration_blocks: u32Number of distinct declaration blocks (4+ declarations) that appear in
two or more rules across the project (copy-paste consolidation
candidates). Located in duplicate_declaration_blocks.
duplicate_declarations_total: u32Total declarations removable by consolidating every duplicate block:
the sum of (occurrence_count - 1) * declaration_count across groups.
tailwind_arbitrary_values: u32Distinct Tailwind arbitrary-value tokens used in markup (design-token
bypass). Zero when the project does not use Tailwind. Located in
tailwind_arbitrary_values.
tailwind_arbitrary_value_uses: u32Total Tailwind arbitrary-value occurrences across markup.
preprocessor_stylesheets: u32Preprocessor stylesheets (.scss, .sass, .less) seen by the styling
scan. These are parsed textually for local candidates, not compiled.
preprocessor_reachability_abstained: boolTrue when project-wide class reachability was skipped because preprocessor stylesheets outnumber plain CSS, making generated classes invisible without a Sass/Less compiler.
raw_style_values: u32Located raw CSS declaration values that bypass token surfaces on
scale-sensitive axes. Located in raw_style_values.
unused_property_registrations: u32@property registrations never referenced via var() in any stylesheet
(located in unused_at_rules). Cleanup candidates.
unused_layers: u32Cascade layers declared but never populated by a block (located in
unused_at_rules). Cleanup candidates.
unresolved_class_references: u32Static markup class tokens that match no defined CSS class but are one
edit from a defined class (likely typos / stale renames). Located in
unresolved_class_references. Candidates, never gated.
unreferenced_css_classes: u32Global CSS classes defined in a stylesheet but referenced by no in-project
markup (located in unreferenced_css_classes). Heavily gated cleanup
candidates; zero on preprocessor-dominant or partial-scope runs.
unused_font_faces: u32@font-face families declared but referenced by no font-family anywhere
(located in unused_font_faces). Dead web-font cleanup candidates.
unused_theme_tokens: u32Tailwind v4 @theme design tokens defined but used by no generated
utility, var(), @apply, or arbitrary value anywhere (located in
unused_theme_tokens). Dead-design-token cleanup candidates; zero when
the project is not Tailwind v4 or a plugin / published-library /
partial-scope run gated the scan out.
near_duplicate_theme_tokens: u32Tailwind v4 theme tokens whose comparable values are close to another
token in the same theme dictionary. Located in
near_duplicate_theme_tokens.
near_duplicate_css_in_js_tokens: u32CSS-in-JS design tokens whose comparable values are close to another
token from the same project. Located in
near_duplicate_css_in_js_tokens.
font_size_units_used: u32Number of distinct font-size units (px / rem / em / %) authored
across the codebase. Mixing units is a type-scale consistency smell,
broken out in font_size_unit_mix.
notable_truncated_files: u32Number of analyzed stylesheets whose per-rule notable_rules list was
truncated at the per-file cap, so a consumer knows the per-rule detail is
incomplete without walking every file.