Loosers

Scott/Davy/Ian - Web Audio

Ian’s Web Audio Limmy thing:

Scott’s theremin thingy…

Alan - websockets

(Lost in the myths of time)

John - Backbone Marionette

Here’s the backbone marionette repo:

Rich - CSS preprocessors

The SMACSS book is here:

There’s lots of good stuff in inuit.css (it borrows the best stuff out of http://oocss.org/ and https://github.com/necolas/idiomatic-css) as well:

I’m having a lot of success with the “island” object from it as a basic layout module:

The coding standards by the same guy are very good:

Here’s the bit on BEM notation:

I recently updated my own standards to include a few of these things:

That Happycog article about preprocessor apprehensions:

Stylus is here:

I’ve used none of the stuff documented on the homepage though! I just use it for (while making the code look as close to vanilla CSS as possible):

You can use either Grunt or Docpad + Stylus plugin to compile stylus. Docpad is my favourite prototyping tool of the moment.

Docpad also has plugins for less and scss - so you can play around with all three preprocessor at the same time (even in the same test project) if you like! They are all pretty similar though and the same concepts apply to them all, but I’m a fan of stylus because it looks the most like vanilla CSS. Dependencies might sway your choice though: Sass has a ruby dependency, Stylus a node.js one, and I think there’s a PHP compiler for less (as well as a node.js one).

I’ve been experimenting today with splitting the css into separate files as per John and Jed’s suggestion and it seems to be working well so far - thanks guys. Also, I got chatting to Jed about indentation and specificity at lunch today. I’ve found never indenting within base modules, nor needlessly indenting within variant modules, really helps with the specificity. It goes something like this:

// only indent pseudo-elements and pseudo-classes in BASE modules e.g.
.module {
    color: red;
    &::after {
        property: value;
    }
    &:last-child {
        property: value
    }
}

// i.e. but don't indent parts, to keep the specificity low e.g.
.module__part {
    color: blue;
}


// do indent for variants of modules to sandbox changes to module parts e.g.
.module--variant {
    .module__part {
        property: value;
    }
    // no need to needlessly indent sub-parts within parts either as already sandboxed
    .module__sub-part {
        property: value;
    }
}

Finally, big hat tip to Big John for the first preprocessor chat! It’s been a revelation :)