Re: Extending Class Proposal

On Thu, Jan 17, 2013 at 3:56 PM, Philip Walton <philip@philipwalton.com> wrote:
> I recently posted a proposal on my website for how I think CSS could/should
> handle the concept of extending a base class:
> http://philipwalton.com/articles/the-future-of-oocss-a-proposal/
>
> Tab sent me a link to this discussion from August started by David Baron,
> and my proposal basically aligns with method (b) that he suggests:
> http://lists.w3.org/Archives/Public/www-style/2012Aug/0363.html
>
> I've spent a lot of time thinking about this problem and trying to make it
> work with in Sass; I've firmly come to the conclusion that preprocessors
> can't handle this all by themselves. The article goes into a lot of detail
> why.
>
> Anyway, I'd love to be part of any discussion on this topic, which is why
> I'm sending this to the list.
>
> TL;DR for the article:
>
> * Create a new simple selector called the abstract class selector, which
> uses the % sign (Ex: %base-widget { } ). The abstract class selector would
> match any element with a class that extends from it.
>
> * Create a new @ rule called @extends to define the inheritance (Ex: @extend
> .widget < %base-widget; )
>
> The primary reason I think a new simple selector should be created is so you
> can target these elements via JavaScript without having to put the classes
> in the markup.
>
> document.querySelectorAll("#sidebar %base-widget");
>
> It would also allow for extending base classes within media queries, which
> currently Sass can't do.

While I *really* want this general ability, I don't like this
particular syntax for it, for the reasons I explain in
<http://lists.w3.org/Archives/Public/www-style/2012Aug/0438.html> - I
think it's somewhat more verbose and less clear than SASS's syntax,
and requires substantially more work to refactor when you decide to
start using it for a particular class.

~TJ

Received on Thursday, 31 January 2013 06:06:34 UTC