[{"data":1,"prerenderedAt":249},["ShallowReactive",2],{"project-19469080":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":39,"post_text":41,"what":42,"said":65,"maker_in_thread":143,"shape":152,"grid":155,"attempts":211,"same_week":212,"maker_shows":34,"maker_hidden":241,"reader_version":242,"card":243},"19469080","DropCSS","A simple, thorough and fast unused-CSS cleaner","title","Show HN: DropCSS – A simple, thorough and fast unused-CSS cleaner","https:\u002F\u002Fgithub.com\u002Fleeoniya\u002Fdropcss","github.com","leeoniya",1553315774,2019,134,25,338,2195,16,"notable","dev_tools","css optimization","library",[24,25,26,27],"unused css","css cleaner","purgecss alternative","css minifier","mixed",-0.294,{"positive":31,"neutral":32,"mixed":33,"critical":32},1,3,0,7,{"performance":36,"idea":37,"execution":38},{"positive":33,"critical":31},{"positive":33,"critical":33},{"positive":33,"critical":31},[33,33,31,33,33,40,33,33,33,33,33,33,32,33,32,33,32,33,31,33,31,33,33,33,33],5,null,{"problem":43,"audience":41,"pricing":41,"motivation":50,"time_to_build":41,"stack":54,"openness":63,"stage":64,"team_size":64},{"value":44,"source":45,"evidence":46},"Removes unused CSS from pages, replacing slower or less correct tools like Purgecss","maker",[47],{"id":48,"by":11,"text":49},"19469082","Hi HN, I put this together when looking to replace Purgecss in my build chain due to its numerous and unresolved\u002Funresolvable correctness deficiencies. TL;DR: - Tiny API, ~60 LOC…",{"value":51,"source":45,"evidence":52},"Purgecss had numerous unresolved correctness problems",[53],{"id":48,"by":11,"text":49},[55],{"value":56,"source":45,"evidence":57},"JavaScript",[58,59],{"id":48,"by":11,"text":49},{"id":60,"by":61,"text":62},"19470531","JensRex","I wish there was something like this not written in JavaScript.","open_source","unknown",{"praise":66,"objections":79,"requests":94,"questions":108,"alternatives":116},[67],{"value":68,"source":69,"evidence":70},"Nice work and useful tool","commenter",[71,75],{"id":72,"by":73,"text":74},"19469968","owens99","Nice work! Will give it a try.",{"id":76,"by":77,"text":78},"19470607","Theodores","Very nice tool. Small request. Can you use your knowledge of AST etc. to write another small 60 line script that just counts the amount of style rules in a CSS file? I have tried…",[80,87],{"value":81,"source":69,"evidence":82},"Dynamically changed HTML may cause false positives without whitelists",[83],{"id":84,"by":85,"text":86},"19470565","amoerie","What about dynamically changing HTML? Modal dialogs, dynamically loaded divs (depending on access rights), etc. Unless your css is only ever loaded when the corresponding HTML…",{"value":88,"source":69,"evidence":89},"Written in JavaScript, slower than a compiled implementation",[90,91],{"id":60,"by":61,"text":62},{"id":92,"by":11,"text":93},"19470688","i'm sure there will be soon enough. i kind of laughed to myself when calling it \"fast\" since it takes 175ms to process ~45 KB of data :D. in a compiled language (or wasm) it…",[95,102],{"value":96,"source":69,"evidence":97},"Support for SCSS, Angular HTML and JS\u002FTypeScript templates",[98],{"id":99,"by":100,"text":101},"19470224","buu700","Does (or will) this support SCSS, and Angular HTML, and JavaScript\u002FTypeScript\u002FJSX? I'm on a project right now where a tool like that will be immensely helpful pretty soon.",{"value":103,"source":45,"evidence":104},"Inline ignore rules like Purgecss",[105],{"id":106,"by":11,"text":107},"19470637","yep, you need to keep a whitelist. i made a 10-liner plugin for css-obj (see my other comment) which i use to mark certain selectors with \"!keep\" which populates my per-page…",[109],{"value":110,"source":69,"evidence":111},"Why is WASM faster than JavaScript",[112],{"id":113,"by":114,"text":115},"19472681","postalrat","Why is wasm faster than javascript? Can't the browser compile javascript to something equivalent?",[117,121,125,129,136],{"value":118,"source":45,"evidence":119},"Purgecss",[120],{"id":48,"by":11,"text":49},{"value":122,"source":45,"evidence":123},"UnCSS",[124],{"id":48,"by":11,"text":49},{"value":126,"source":45,"evidence":127},"PurifyCSS",[128],{"id":48,"by":11,"text":49},{"value":130,"source":69,"evidence":131},"Chrome DevTools coverage tab",[132],{"id":133,"by":134,"text":135},"19472070","tyingq","The css\u002Fjs coverage tab in Chrome's developer tools is also pretty neat: https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002Fimages\u002F2017\u002F04\u002Fcoverage.png It drills down into the files, and…",{"value":137,"source":69,"evidence":138},"CSS-blocks",[139],{"id":140,"by":141,"text":142},"19471274","err4nt","CSS-blocks.com is the closest high-quality tool like this, but it's approach is slightly different, it doesn't work against any page, but for this approach it's by far the best…",{"comments":144,"answered":145,"key":146},10,4,[147,150,151],{"id":148,"text":149},"19472102","yep, that's where i got the unused bytes stats from",{"id":106,"text":107},{"id":48,"text":49},{"commenters":153,"max_depth":40,"maker_replies":144,"first_comment_mins":31,"lifespan_hours":154},13,35,[156,158,160,162,164,166,168,169,171,173,175,177,180,184,186,188,189,191,193,198,200,202,203,204,209],[133,33,33,157,134,33],"other\u002Fneutral\u002Fnone",[148,33,33,159,11,31],"maker\u002Fneutral\u002Fnone",[84,31,31,161,85,33],"project\u002Fcritical\u002Fperformance",[106,31,33,163,11,31],"project\u002Fneutral\u002Fexecution",[48,165,33,159,11,31],2,[72,165,40,167,73,33],"project\u002Fpositive\u002Fnone",[76,32,33,157,77,33],[170,32,33,157,11,31],"19470746",[172,32,33,157,77,33],"19471111",[174,32,33,157,11,31],"19471943",[176,32,33,157,77,33],"19472932",[178,32,33,157,179,33],"19476866","tln",[181,145,32,182,183,33],"19470512","project\u002Fneutral\u002Fidea","bigbadgoose",[185,145,33,182,11,31],"19470729",[187,145,32,182,183,33],"19470859",[140,145,33,157,141,33],[99,40,32,190,100,33],"project\u002Fneutral\u002Fnone",[192,40,33,182,11,31],"19470269",[194,195,31,196,197,33],"19471709",6,"project\u002Fcritical\u002Fnone","jhabdas",[199,195,33,159,11,31],"19471760",[60,34,31,201,61,33],"project\u002Fcritical\u002Fexecution",[92,34,33,161,11,31],[113,34,33,157,114,33],[205,206,33,207,208,33],"19470926",8,"other\u002Fneutral\u002Fidea","adrianhel",[210,206,33,182,11,31],"19470969",[],[213,218,223,228,232,236],{"id":214,"name":215,"points":216,"category":217},"19455441","Color Supply",591,"creative",{"id":219,"name":220,"points":221,"category":222},"19468993","Everything I Know Wiki",434,"productivity",{"id":224,"name":225,"points":226,"category":227},"19482280","Baxx",424,"infrastructure",{"id":229,"name":230,"points":231,"category":217},"19474853","ManyPixels Gallery",295,{"id":233,"name":234,"points":235,"category":217},"19454962","stereogram-raycaster",277,{"id":237,"name":238,"points":239,"category":240},"19492406","automl-gs",172,"ai",false,"v2",{"id":244,"name":5,"line":6,"ai":241,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":245,"top":18,"kw":246,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":247,"url":9,"mix":248,"praise":68,"objection":81,"sub":21},19469080,-0.29,[24,25,26,27],"0010050000003030301010000",[31,32,33,32],1793990987456]