/* * This document contains the Example Snippets for CSS With LESS and SASS, organized * by each chapter. * * Copy and paste the code from this file into the various lesson files for each chapter. * */ ===================================================== ** CHAPTER 1: Introduction to LESS and SASS ===================================================== Chapter 1: First LESS Example --------------- @baseColor: #535353; header { font-family: Helvetica, Arial, sans-serif; background-color: lighten(@baseColor, 50%); border: 1px solid darken(@baseColor, 10%); color: @baseColor; } Chapter 1: First SASS Example --------------- //$baseColor: rgb(50,100,175); $baseColor: #535353; header { font-family: Helvetica, Arial, sans-serif; background-color: lighten($baseColor, 50%); border: 1px solid darken($baseColor, 10%); color: $baseColor; } ===================================================== ** CHAPTER 2: Basic LESS ===================================================== Chapter 2: Variables --------------- @myColor1: navy; // named color value @myColor2: #000080; // hex color value @myStringVar: " with an appended string"; // string variable @myFontSize: 24px; // numeric value @thinBorder: 4px solid @myColor1; // multi-value variable @paddingVar: 15px 15px 15px 35px; // multi-value variable h1, h2 { color: @myColor1; } #mypara { font-size: @myFontSize; border: @thinBorder; padding: @paddingVar; } #mypara:after { content: @myStringVar; } Chapter 2: LESS Mixins --------------- .commonTraits { border-radius: 10px; border: 1px solid green; padding: 10px; } header { color: #274D87; .commonTraits; } footer { color: #3264AF; .commonTraits; } Chapter 2: Nested Styles --------------- body { font-family: Helvetica, Arial, sans-serif; p { font-family:Times; } p#mypara { font-family: "Courier New"; } } #mypara { color: #404040; border: 1px solid #404040; padding: 10px; &:hover { color: red; } } Chapter 2: Operations --------------- @color: #f00; @basepadding: 10px; @basethickness: 1px; #mypara { color: @color; border: @basethickness solid black; padding: @basepadding; } ===================================================== ** CHAPTER 3: Advanced LESS ===================================================== Chapter 3: Parameterized Mixins --------------- // using regular arguments .border-radius(@radius: 5px) { -mox-border-radius: @radius; -webkit-border-radius: @radius; -ms-border-radius: @radius; border-radius: @radius; } // using named arguments with defaults .customBorder(@color: black, @width: 1px) { border: @width solid @color; } // using the @arguments parameter .box-shadow(@x: 0, @y: 0, @blur:1px, @color: #000) { -webkit-box-shadow: @arguments; -mox-box-shadow: @arguments; -ms-box-shadow: @arguments; box-shadow: @arguments; } #mypara { .border-radius; .customBorder(blue, 5px); .box-shadow(10px,10px,10px, gray); padding: 10px; } Chapter 3: Mixins with Pattern Matching --------------- .alert(warning) { @color: goldenrod; color: @color; border-color: darken(@color, 10%); } .alert(error) { @color: red; color: lighten(@color, 10%); border-color: darken(@color, 20%); } .alert(other, @color) { color: lighten(@color, 10%); border-color: darken(@color, 20%); } .alert(@_) { display: block; border-width: 2px; border-style:solid; padding: 10px; } @type: error; #mypara { .alert(@type); } Chapter 3: Guarded Mixins --------------- .text3d(@color) when (lightness(@color) =< 50%) { color: @color; font-size: 32pt; border: 2px solid gray; text-shadow: 1px 1px 0px darken(@color, 5%), 2px 2px 0px darken(@color, 10%), 3px 3px 0px darken(@color, 15%), 4px 4px 0px darken(@color, 20%), 4px 4px 3px #000; } .text3d(@color) when (lightness(@color) > 50%) { color: @color; font-size: 32pt; border: 2px dashed gray; text-shadow: 1px 1px 0px lighten(@color, 5%), 2px 2px 0px lighten(@color, 10%), 3px 3px 0px lighten(@color, 15%), 4px 4px 0px lighten(@color, 20%), 4px 4px 3px #ccc; } .text3d(@_){ font-size: 32pt; padding: 5pt; } h1{ .text3d(#666); } Chapter 3: LESS Functions --------------- .border-radius(@radius: 5px) { -mox-border-radius: @radius; -webkit-border-radius: @radius; -ms-border-radius: @radius; border-radius: @radius; } // Color functions @color: navy; h1 { color: @color; } h2 { color: lighten(@color, 20%); } h3 { color: lighten(@color, 30%); } h4 { color: lighten(@color, 40%); } #mypara { .border-radius; border-color: hsl(hue(@color), 45%, 60%); border-width: 2px; border-style:solid; padding: 10px; } Chapter 3: Importing Files --------------- // import the definitions used in this file @import "import_me.less"; ===================================================== ** CHAPTER 4: SASS ===================================================== Chapter 4: Variables --------------- $myColor1: navy; // named color value $myColor2: #000080; // hex color value $myStringVar: " with an appended string"; // string variable $myFontSize: 18px; // numeric value $thinBorder: 1px solid $myColor1; // multi-value variable $paddingVar: 15px 15px 15px 15px; // multi-value variable h1, h2 { color: $myColor1; } #mypara { font-size: $myFontSize; border: $thinBorder; padding: $paddingVar; } #mypara:after { content: $myStringVar; } Chapter 4: Nested Styles --------------- body { font-family: Helvetica, Arial, sans-serif; p { font-family:Times; } p#mypara { font-family: "Courier New"; } } #mypara { color: #404040; border: 1px solid #404040; padding: 10px; &:hover { color: red; } } Chapter 4: SASS Mixins --------------- @mixin commonTraits { border-radius: 10px; border: 1px solid green; padding: 10px; } header { color: #274D87; @include commonTraits; } footer { color: #3264AF; @include commonTraits; } Chapter 4: Operations --------------- $myColor: #f00; $basepadding: 10px; $basethickness: 4px; #mypara { color: $myColor; border: $basethickness solid $myColor; padding: $basepadding; } $gender: boy; $myColor: if($gender=="boy", #00f, #f00); ===================================================== ** CHAPTER 5: Advanced SASS ===================================================== Chapter 5: Mixins with Arguments --------------- // using regular arguments @mixin customBorder ($width, $color, $style) { border: { width: $width; color: $color; style: $style; } } // using named arguments with defaults @mixin customBorder2 ($width: 1px, $color: black, $style: solid) { border: { width: $width; color: $color; style: $style; } } #mypara { @include customBorder(3px, blue, dotted); } Chapter 5: Output Formatting --------------- body { font-family: Helvetica, Arial, sans-serif; p { font-family:Times; } p#mypara { font-family: "Courier New"; } } #mypara { color: #404040; border: 1px solid #404040; padding: 10px; &:hover { color: red; } } Chapter 5: Functions --------------- @mixin border-radius($radius: 5px) { -mox-border-radius: $radius; -webkit-border-radius: $radius; -ms-border-radius: $radius; border-radius: $radius; } // Color functions $color: navy; h1 { color: $color; background-color: grayscale(invert($color)); } h2 { color: lighten($color, 20%); } h3 { color: lighten($color, 30%); } h4 { color: lighten($color, 40%); } #mypara { @include border-radius; border-color: hsl(hue($color), 45%, 60%); border-width: 2px; border-style:solid; padding: 10px; } Chapter 5: Importing External Files --------------- // import the SASS definitions used in this style sheet @import "import_me.scss";