views:

848

answers:

3

I'm getting slightly jealous of the innovation I'm seeing from the Python and Ruby community around CSS. For example, see:

  1. http://sandbox.pocoo.org/clevercss/
  2. http://lesscss.org/
  3. http://haml.hamptoncatlin.com/docs/rdoc/classes/Sass.html

That said, my question is two fold. Could these library's be easily "ported" to .NET via IronRuby and IronPython so I could then write MSBUILD tasks or HTTP Handlers in C#?

Also, should I bother with this, or is someone else in the .NET community already working on this?

+1  A: 

CSS Variables can be accomplished with HTTP Handlers.

http://www.webpronews.com/blogtalk/2006/10/16/add-variables-to-standard-css-stylesheets-in-aspnet

I imagine a lot of the other useful features exist in some form, which are you interested in specifically?

Bob
PS: Mads Kristensen has a lot of other fun http handlers and things on his blog http://madskristensen.net/default.aspx
Bob
+10  A: 

It would be nice to port SASS to .NET, because it's such a nice tool and .NET is such a nice platform. But there's not really much need, because we can continue to use the Ruby tool as-is. You can very easily add a step to your build process which compiles SASS files into CSS files using the Ruby tool.

Here's mine.

#PostBuild.rb
#from http://sentia.com.au/2008/08/sassing-a-net-application.html
#Post-build event command line: rake -f "$(ProjectDir)PostBuild.rb"

require 'haml'
require 'sass'

task :default => [ :stylesheets ]

desc 'Regenerates all sass templates.'
task :stylesheets do
 wd = File.dirname(__FILE__)
 sass_root = File.join(wd, 'Stylesheets')
 css_root = File.join(wd, 'Content')
 Dir[sass_root + '/*.sass'].each do |sass|
  css = File.join(css_root, File.basename(sass, '.sass') + '.css')
  puts "Sassing #{sass} to #{css}."
  File.open(css, 'w') do |f|
   f.write(Sass::Engine.new(IO.read(sass)).render)
  end
 end
end
Justice
This worked great with a few tweaks. Prevented files starting with _ from getting generated and also had to add Dir.chdir(sass_root) to allow importing to work.
statenjason
I'd really like to have a SASS view engine for ASP.NET MVC so that I could execute code in the CSS view itself (eg. inserting correct paths for content so that the site works in different hosting scenarios) and then enable output caching. Anyone doing something like that?
Drew Noakes
+3  A: 

http://www.dotlesscss.com/ - My attempt at playing around with Less for .NET.

Owen
Awesome! Thanks Owen, I will be watching this closely - and in a couple of months when things slow down for me, I might be able to help out!
nikmd23
Great, feel free to get in contact when you can.
Owen
Trying that link now, but it seems to be dead...
Drew Noakes
Apparently this is a known issue. Use GitHub for now: http://github.com/dotless/dotless
Drew Noakes