[Haskell-cafe] Re: [web-devel] statically compiled css

Michael Snoyman michael at snoyman.com
Fri Aug 6 06:25:19 EDT 2010


On Fri, Aug 6, 2010 at 12:28 PM, Benedict Eastaugh <ionfish at gmail.com>wrote:

> On 6 August 2010 09:19, Michael Snoyman <michael at snoyman.com> wrote:
>
> > After looking into sass a little bit, I've decided I like it ;). I see
> the
> > following benefits of implementing something sass-like in Haskell via
> > quasi-quotation:
> >
> > * Compile-time guarantee of well-formedness.
> > * The speed benefits of blaze-builder. Of course, this will still be
> slower
> >   than serving a static file.
> > * Ability to use the same Haskell variables for both Hamlet and CSS.
> >
> > I've started a new repo on Github[1]; I'm tentatively calling the project
> > "stylish".
>
> This sounds pretty interesting. I wrote a Ruby tool called Stylish [1]
> a couple of years ago to solve a similar set of problems, and have
> occasionally wondered about rewriting it in Haskell. I look forward to
> seeing what you come up with.
>
> One potentially useful feature is generating code that requires
> browser prefixes (-webkit-border-radius etc.). There's also potential
> for generating minified versions of the code, concatenating multiple
> stylesheets etc.—it's a lot easier to do this stuff if you can
> programmatically manipulate the stylesheet at run-time. Embedding
> assets (graphics) as data URIs is another thing; have a look at how
> something like Jammit [3] does this.
>
> As far as the border-radius kind of stuff: the approach I'm taking to
mixins should make it possible to write a plain old Haskell function to
output multiple border-radius statements. I might even include such a mixin
in the main package.

Regarding concatenating stylesheets: I believe that would have to be handled
at the level *above* Stylish; Yesod, for example, automatically concatenates
all style statements added via the addStyle function.

There's also a Firefox and Thunderbird extension [2] called Stylish.
> Obviously you're free to call your project whatever you wish; I just
> thought I should let you know.
>
> I'm open to naming suggestions. Here's a few other ideas I'd had:

* sasslet: I don't really like too much, but makes clear the connection to
Hamlet and Sass.
* csser/cssar: pronounced "Caesar," might give Shakespeare fans something to
chuckle at.

As it stands, I'm leaning fairly strongly towards including Stylish in the
Hamlet package.

Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100806/1efc6e66/attachment.html


More information about the Haskell-Cafe mailing list