npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

css-heatmap-generator

v1.0.6

Published

Utility to build CSS heatmap graph

Downloads

2

Readme

css-heatmap-generator

Utility to build CSS heat map

Purpose: In large projects we often have multiple CSS files & templates consuming CSS rules from multiple files. When we refer to multiple CSS rules in our templates from multiple files, there is chance to override the common rules while fixing a bug. Multiple screens may refer to common CSS rule which if modified impacts all. There could be duplicate rules having same CSS selectors defined in multiple CSS files. When we fix a bug or enhance one particular screen we need to know the CSS rules that we are adding or modifying are not duplicate or are not breaking some other screen.

This tools helps in visualizing the CSS rules from multiple files in a glance. CSS Heat Map helps in:

  1. Identifying duplicate rules.
  2. Identifiying sensitive rules which are refererred by multiple templates.
  3. Identifying IMPACT of a CSS modification, thus help in better regression testing.

Installation

npm install css-heatmap-generator

Configuration

module.exports = {
        
    "sourcePath": "", /* Path to the source code */    
    
    "excludeDirs": [], /* List of directories to exclude like lib, thirdparty etc */
    
    "showSensitveOnly": true, /* If true only results in sensitive rules in the report */    
    
    "target": "" /* target folder where report needs to be generated */

}

Save this as cssHeatMap.conf.js next to node_modules folder

Command

Add this to your package.json:

"scripts": {

        "buildCSSGraph": "node ./node_modules/css-heatmap-generator"    

}

Run:

npm run buildCSSGraph 

Output

In the target folder specifed, there will be a repors generated. 'cssHeatMap', displayes the heat map in graphical format using d3, where 'cssHeatMapTable' represents the same with more details in tabular format. The JSON data is also generated in target folder, allowing customization of reports.

  1. The file cssHeatMap.html is a visualization of CSS rules across the application, their usage and sensitivity.
  2. The file cssHeatMapTable.html, is a tabular represenation of the CSS rules.

Note: I am working on improving the logic to find the usage of CSS in template where the rules are defined as complex selectors like A.B>C. Please feel free to contribute.