On Thursday, 24 April 2014 at 07:59:20 UTC, Martin Nowak wrote:
Nice, thanks a lot. How much effort would it be to turn this into a full SCSS compiler?

Hmm, looking at the sass webpage, I think I could do some of the features but prolly not all and with a different syntax. So it wouldn't work for a full scss compiler.

If you want that, just use that C library or the ruby original.


My thingy is really just a generic text macro system with an extension that kinda understands css syntax and simply aims to be good enough for me. I can add to it but since it is good enough for me already, I don't have a pressing desire to go all the way. (As you might have heard on irc, I started a new job a couple weeks ago tho.... and it is a Ruby on Rails thing, so who knows, maybe I'll use the sass in that and find something I like enough to spend the time cloning it, but so far I use sass as just a substitute for my own cssexpand.)


Below is my impression of the sass docs.

Looks like the two big things they offer that I don't are inheritance and math.

Inheritance might be easy, I parse it out anyway so a referencing thingy could do that, sass calls that @extend. Math is something I avoided because it isn't terribly useful IMO and getting the units right isn't easy. What's 1em / 16px? Depends on the font size... which depends on the whole dynamic cascade.

Perhaps a unit mismatch could just issue an error though, sidestepping all that. So a little dimensional analysis!

We have some different syntax details though, like their variable assignment vs my set macro and the parent selector referencing in nested things is different.

Actually, the sass way of & might be a bit better than mine. For example, in mine:

a {
  :hover { color: red; }
}

expands into:

a {}
a:hover { color: red; }

If you wanted to reference a child with a pseudoclass, you'd have to do:

a {
  *:hover { color: red; }
}

then then gets you

a *:hover { ... }



Similarly, to add a class to the parent, mine does:

a {
  \&.foo {
  }
}

expands to a.foo {}


Something sass does that mine does NOT do is:

a {
  body & {}
}

which expands into body a {} and that's potentially useful. I think I'll add that.


* * *


I've done the import thing before but I don't think it was in css.d, I think I did that in the work app's proprietary file.

I do support @media rules but only on the outer level. sass also supports them inside a nested thing. That's kinda useful.

* * *

Looping and such? Yikes. I think I actually do support looping via one of the macros, but the syntax is pretty different.

Reply via email to