
@rounded-corners {
	border-radius: 10px;
}

.bold {
	@font-size: 20px;
	font-size: @font-size;
	font-weight: bold;
}

body #window {
	@rounded-corners;
	.bold;
	line-height: @font-size * 1.5;
}

#bundle {
  .button {
    display: block;
    border: 1px solid black;
    background-color: grey;
    &:hover { background-color: white }
  }
}
#header a {
  color: orange;
  #bundle > .button; // mixin the button class
}

div {
	@abstract {
		hello: world;
		b {
			color: blue;
		}
	}

	@abstract > b;
	@abstract;
}

@poop {
	big: baby;
}

body {
	div;
}

// not using > to list mixins

.hello {
  .world {
    color: blue;
  }
}

.foobar {
  .hello .world;
}


// arguments

.spam(@something: 100, @dad: land) {
	@wow: 23434;
    foo: @arguments;
    bar: @arguments;
}

.eggs {
    .spam(1px, 2px);
    .spam();
}

.first(@one, @two, @three, @four: cool) {
	cool: @arguments;
}

#hello {
	.first(one, two, three);
}

#hello-important {
	.first(one, two, three) !important;
}

.rad(@name) {
	cool: @arguments;
}

#world {
	@hello: "world";
	.rad("@{hello}");
}

.second(@x, @y:skip, @z: me) {
	things: @arguments;
}

#another {
	.second(red, blue, green);
	.second(red blue green);
}


.another(@x, @y:skip, @z:me) {
  .cool {
    color: @arguments;
  }
}

#day {
	.another(one,two, three);
	.another(one two three);
}


.to-be-important() {
  color: red;
  @color: red;
  height: 20px;

  pre {
    color: @color;
  }
}

.mix-suffix {
  .to-be-important() !important;
}




#search-all {
  .red() {
    color:#f00 !important;
  }
}

#search-all {
  .green() {
    color: #0f0 !important;
  }
}

.search-test {
	#search-all > .red();
	#search-all > .green();
}


// mixin self without infinite loop
.cowboy() {
	color: blue;
}

.cowboy {
	.cowboy;
}


// semicolon

.semi1(@color: red, blue, green;) {
	color: @color;
}

.semi2(@color: red, blue, green; dad) {
	color: @color;
}

.semi3(hello; world; piss) {
	hello: world;
}



// self referencing skipping

.nav-divider(@color: red){
    padding: 10px;
}

.nav {
  .nav-divider {
    .nav-divider();
  }
}

.nav-divider {
    .nav-divider();
}


