Chapter 9. Tooling for an ECSS Approach

In this final chapter we will look at some of the free and open-source tooling that's available to facilitate writing sane and maintainable style sheets.

When authoring the CSS for an enduring project, the technology employed to produce the CSS should be largely immaterial. We should always be aware that a better or more efficient tool may become available to achieve our aims and when possible, and if preferable, it should be embraced.

Therefore, it shouldn't matter whether Sass, PostCSS, LESS, Stylus, Myth or any other CSS processor is employed to author the style sheets. The authored style sheets should be as easy to migrate to another meta-language as possible, if and when needed.

Furthermore, the CSS processor employed should best serve the needs of the project as a whole and not merely the preferences of any individual author. That said, there are some necessary capabilities for the CSS processor so we will cover that briefly next.

CSS requisites for CSS processors

I consider a CSS processor for style sheet authoring essential. This allows a differentiation between authoring style sheets (the style sheets that the author writes in their CSS processor of choice) and the resultant CSS (the compiled and minified CSS that gets served to the user).

Despite stating that a CSS processor is essential, the requisite features needed are fairly trivial:

  • Variables: To mitigate human errors with colour picking and specifying constants like grid measures
  • Partials: To facilitate one-to-one parity of authoring style sheets with a feature branch, template or logic file
  • Colour manipulations: To allow consistent manipulation of the aforementioned variables e.g. being able to adjust or easily adjust the alpha of a colour
  • All other abilities are considered non-essential and should be appraised particular to the needs of the project
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.191.134