So, I might have a stackable grid with the classes "stackable" and "grid". Thats fine and all but I find myself convoluting the classes with more detailed elements. SMACCS solves that problem by keeping everything in order and abstracted. Anyways, just wanted to say how much I love this idea. Trés bon!
I don't see how the class C(#fff)
is different from the HTML attribute color="#FFFFFF"
from the days before CSS. To change the color to something else you're editing template files and individual pages rather than a single stylesheet!
I also don't necessarily agree with “HTML should only have one module applied to it.” For example, if the attributes of the .button-full
class are a common pattern, that class should be renamed appropriately and be able to be reused on more than just buttons. If you do need to use more linear, intuitive naming schemes for the HTML writers, a Sass mix-in could re-create the module modifiers while keeping the stylesheet DRY; if that pattern changes in a redesign it is modified in only the one spot.
Having seen Harry Roberts give a talk last year (2015) I heard him mention that we was moving more towards an atomic level (He did not mention atomic). When doing some work for the NHS Harry found it much easier to create smaller modular class names that could be applied as helper classes.
From my point, I still struggle with these principles given a design I will add a structure class and a generic style class and then try to DRY up my code by moving some of the declarations into global classes.
Generally I end up mixing these principles up, I have a text-left/text-right to modify content and over-ride styles but I will still create a component style that aligns the text left without the helper class and content that more or less sticks with the SMACSS categorisation.
As long as once I'm finished the CSS is maintainable and understandable by the next developer then I'm a happy bunny.
Good to hear, Grant!