http://lesscss.org/


LESS extends CSS with: variables, mixins, operations and nested rules. Best of all, LESS uses existing CSS syntax. This means you can rename your current .css files to .less and they'll just work.
Get LESS

The LESS Ruby gem compiles LESS code to CSS. To install:
$ sudo gem install less

Once installed, you can compile .less files to .css with the following command:
$ lessc style.less

Using Rails? Get the plugin. For more info on installing and using LESS please see the Docs.
Latest Release — 1.1
Growl support (--growl), colored command-line output, and full parens support.
Twitter Buzz

* grobot "the concepts at www.lesscss.org *so* should be in CSS core! great stuff there from @cloudhead"
* kbucek "after being amazed with .sass I switched to .less to have evolutionary instead of revolutionary stylesheets ..."
* riceric "Wow LESS, where have u been all my web designing life? A must see 4 those who have always wanted to do more w/less"
* danhallock "…and your frustrations with CSS will just melt away: http://lesscss.org/"
* markuskoljonen "A gift from Gods to web developers"
* benlilley "The 'Less' Ruby Gem for CSS is pretty awesome. Would love this support in standard CSS."
* markrbaird "What CSS should have been from the start: http://lesscss.org/ Simply amazing."

Tweet About LESS
Variables

Variables allow you to specify widely used values in a single place, and then re-use them throughout the style sheet, making global changes as easy as changing one line of code.

@brand_color: #4D926F;

#header {
color: @brand_color;
}

h2 {
color: @brand_color;
}


Mixins

Mixins allow you to embed all the properties of a class into another class by simply including the class name as one of its properties. It's just like variables, but for whole classes.

.rounded_corners {
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
}

#header {
.rounded_corners;
}

#footer {
.rounded_corners;
}


Nested Rules

Rather than constructing long selector names to specify inheritance, in Less you can simply nest selectors inside other selectors. This makes inheritance clear and style sheets shorter.

#header {
color: red;
a {
font-weight: bold;
text-decoration: none;
}
}


Operations

Are some elements in your style sheet proportional to other elements? Operations let you add, subtract, divide and multiply property values and colors, giving you the power to do create complex relationships between properties.

@the-border: 1px;
@base-color: #111;

#header {
color: @base-color * 3;
border-left: @the-border;
border-right: @the-border * 2;
}

#footer {
color: (@base-color + #111) * 1.5;
}


Head over to the Docs for information on installing and using LESS.