Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Test-proof CSS

Test-proof CSS

An overview on nodejs tools I use @ ideato to test my CSS generated by LESS or SASS.

Vittorio Vittori

March 27, 2015
Tweet

More Decks by Vittorio Vittori

Other Decks in Programming

Transcript

  1. sometimes we start BIG PROJECTS many templates PHP/JS template engines

    all responsive retina support a lot of LESS or SASS
  2. sometimes we work on PROJECTS THAT NEEDS HELP huge project

    no template engines no coding standard half working CSS only
  3. checkout t-shirt 8.00 $ Sport bag 22.50 $ Golf club

    95.00 $ total 125.50 $ suppose a 25.000 $/day seller site
  4. checkout t-shirt 8.00 $ Sport bag 22.50 $ Golf club

    95.00 $ total 125.50 $ Chrome render 60% of users IE8 render 40% of users suppose a 25.000 $/day seller site
  5. rgbwhat?? your client can say goodbye to 10.000$ per day

    until you fix the missing fallback color
  6. • Possible Errors • Disallow duplicate properties • Disallow empty

    rules • Require use of known properties, etc… • Compatibility • Require compatible vendor prefixes • Require all gradient definitions • Require fallback colors, etc… • Performance • Disallow units for zero values, etc… • Maintainability & Duplication • Disallow IDs in selectors, etc… • Accessibility • OOCSS Rule types github.com/CSSLint/csslint
  7. CSSLINT / syntax checking also on some text editors jetbrains.com/phpstorm

    sublimetext.com gruntjs.com nodejs.org gulpjs.com
  8. v Sometimes they need specific state relative to the view

    for design needs this helps you to keep changes isolated on the page
  9. v regression tests should be on static HTML templates to:

    • avoid fails by fixtures changes • get faster tests performance • get less test writing costs
  10. RESEMBLEJS / regression tests gruntjs.com nodejs.org can be used with

    phantomjs.org casperjs.org BackstopJS gulpjs only github.com/garris/BackstopJS PhantomCSS github.com/Huddle/PhantomCSS gulpjs.com
  11. CSS .logo { background-image: url(…); } .js-selector { position: fixed;

    } div header { background-color: pink; } nav { padding: 20px; }
  12. CSS .logo { background-image: url(…); } .js-selector { position: fixed;

    } div header { background-color: pink; } nav { padding: 20px; } WHITE LIST KEPT DELETED KEPT
  13. Published Wed Feb 25 2015… Paths github.css Stylesheets 1 Size

    231.0KB Data Uri Size 0 Rules 2957 Selectors 3289 Simplicity 89.91% Most Identifiers 4 Most Identifiers Selector .is-uploading .avatar… Lowest Cohesion 24 Lowest Cohesion Selector .add-line-comment Total Unique Font Sizes 36 Unique Font Size 0.9em … Total Unique Colors 66 Unique Color #000 … and so on…
  14. how I choose which tests to use? OBJECTIVES - dev

    priority
 Client needs, which browsers, UX needed
 COMPLEXITY
 Team size, tasks diversity, to-do list
 BUDGET - client priority
 Setup time, writing and testing time
  15. Is that all with tests/tools? no, there are tons of

    nodesjs and gruntjs plug-ins WHAT TYPE csslint syntax test ResembleJS layout regression test uncss unused selectors tool StyleStats css stats tool checkout http:/ /csste.st to see more
  16. SMALL WHAT USE csslint Y ResembleJS N uncss O StyleStats

    O less budget margins BIG WHAT USE csslint Y ResembleJS Y uncss Y StyleStats Y more budget, handle complexity, front-end under control Y N O YES NOT RECOMMENDED OPTIONAL, easy to setup VS