Rich Dynamic Features
Variables, loops, conditions, functions, etc
$ratio = @function $n, $sum {
@return (100 / $sum * $n)%;
};
$max = 4;
@for $i in 1..$max {
.span-{$i}of{$max} {
width: $ratio($i, $max);
}
}
.span-1of4 {
width: 25%;
}
.span-2of4 {
width: 50%;
}
.span-3of4 {
width: 75%;
}
.span-4of4 {
width: 100%;
}
Powerful Rule Manipulation Ability
Nesting, mixin, void, etc.
.btn {
display: inline-block;
}
.btn.large {
padding: 10px 15px;
}
.submit {
@mixin .btn;
@media (min-width: 768px) {
@mixin .btn.large;
}
}
.btn {
display: inline-block;
}
.btn.large {
padding: 10px 15px;
}
.submit {
display: inline-block;
}
@media (min-width: 768px) {
.submit {
padding: 10px 15px;
}
}
Auto-prefixing
Write standard CSS code that works everywhere.
@keyframes round {
to {
border-radius: 50%;
}
}
@-webkit-keyframes round {
to {
-webkit-border-radius: 50%;
border-radius: 50%;
}
}
@-moz-keyframes round {
to {
-moz-border-radius: 50%;
border-radius: 50%;
}
}
@-o-keyframes round {
to {
border-radius: 50%;
}
}
@keyframes round {
to {
border-radius: 50%;
}
}
JavaScript Based
Support Node.js and browsers. Embrace npm.
node_modules/tabs.roo/index.roo
.tabs {
overflow: hidden;
}
.tab {
float: left;
}
btn.roo
.btn {
display: inline-block;
}
@import 'tabs.roo';
@import './btn.roo';
.tabs {
overflow: hidden;
}
.tab {
float: left;
}
.btn {
display: inline-block;
}
And More
Explore the site to learn more.