//--------------------------------------------------- // LESS Prefixer //--------------------------------------------------- // // All of the CSS3 fun, none of the prefixes! // // As a rule, you can use the CSS properties you // would expect just by adding a '.': // // box-shadow => .box-shadow(@args) // // Also, when shorthand is available, arguments are // not parameterized. Learn CSS, not LESS Prefixer. // // ------------------------------------------------- // TABLE OF CONTENTS // (*) denotes a syntax-sugar helper // ------------------------------------------------- // // .keyframes(@name; @args) // .animation(@args) // .animation-delay(@delay) // .animation-direction(@direction) // .animation-duration(@duration) // .animation-fill-mode(@mode) // .animation-iteration-count(@count) // .animation-name(@name) // .animation-play-state(@state) // .animation-timing-function(@function) // .background-size(@args) // .border-radius(@args) // .box-shadow(@args) // .inner-shadow(@args) * // .box-sizing(@args) // .border-box() * // .content-box() * // .columns(@args) // .column-count(@count) // .column-gap(@gap) // .column-rule(@args) // .column-width(@width) // .filter(@args) // .input-placeholder(@ruleset) // .keyframes(@name; @args) // .linear-gradient(@args) // .opacity(@factor) // .transform(@args) // .transform-origin(@args) // .transform-style(@style) // .rotate(@deg) // .scale(@factor) // .translate(@x,@y) // .translate3d(@x,@y,@z) // .translateHardware(@x,@y) * // .text-shadow(@args) // .transition(@args) // .transition-delay(@delay) // .transition-duration(@duration) // .transition-property(@property) // .transition-timing-function(@function) // Flexbox: // .flex-block() // .flex-inline() // .flex-flow(@direction: row, @wrap: nowrap) // .flex-direction(@direction: row) // .flex-wrap(@wrap: nowrap) // .justify-content(@justification) // .align-items(@mode) // .align-content(@alignment) // .flex(@args: none) // .flex-grow(@grow: 1) // .flex-shrink(@shrink: 1) // .flex-basis(@basis: auto) // .order(@num: 0) // .align-self(@align: auto) // // Credit to LESS Elements for the motivation and // to CSS3Please.com for implementation. // // Copyright (c) 2012 Joel Sutherland // MIT Licensed: // http://www.opensource.org/licenses/mit-license.php // //--------------------------------------------------- // Animation .keyframes(@name; @args) { @-webkit-keyframes @name { @args(); } @keyframes @name { @args(); } } .animation(@args) { -webkit-animation: @args; animation: @args; } .animation-delay(@delay) { -webkit-animation-delay: @delay; animation-delay: @delay; } .animation-direction(@direction) { -webkit-animation-direction: @direction; -o-animation-direction: @direction; } .animation-duration(@duration) { -webkit-animation-duration: @duration; -o-animation-duration: @duration; } .animation-fill-mode(@mode) { -webkit-animation-fill-mode: @mode; animation-fill-mode: @mode; } .animation-iteration-count(@count) { -webkit-animation-iteration-count: @count; animation-iteration-count: @count; } .animation-name(@name) { -webkit-animation-name: @name; animation-name: @name; } .animation-play-state(@state) { -webkit-animation-play-state: @state; animation-play-state: @state; } .animation-timing-function(@function) { -webkit-animation-timing-function: @function; animation-timing-function: @function; } // Background Size .background-size(@args) { background-size: @args; } // Border Radius .border-radius(@args) { border-radius: @args; background-clip: padding-box; } // Box Shadows .box-shadow(@args) { box-shadow: @args; } .inner-shadow(@args) { .box-shadow(inset @args); } // Box Sizing .box-sizing(@args) { box-sizing: @args; } .border-box() { .box-sizing(border-box); } .content-box() { .box-sizing(content-box); } // Columns .columns(@args) { -webkit-columns: @args; columns: @args; } .column-count(@count) { -webkit-column-count: @count; column-count: @count; } .column-gap(@gap) { -webkit-column-gap: @gap; column-gap: @gap; } .column-width(@width) { -webkit-column-width: @width; column-width: @width; } .column-rule(@args) { -webkit-column-rule: @args; column-rule: @args; } // Filter .filter(@args) { -webkit-filter: @args; filter: @args; } // Linear Gradient .linear-gradient(@args) { background-image: linear-gradient(@args); } // Input placeholder .input-placeholder(@ruleset){ ::-webkit-input-placeholder { /* WebKit, Blink, Edge */ @ruleset(); } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ @ruleset(); } ::-moz-placeholder { /* Mozilla Firefox 19+ */ @ruleset(); } :-ms-input-placeholder { /* Internet Explorer 10-11 */ @ruleset(); } ::-ms-input-placeholder { /* Microsoft Edge */ @ruleset(); } } // UserSelect .user-select(@select: auto) { -webkit-user-select: @select; -moz-user-select: @select; -ms-user-select: @select; user-select: @select; } // Opacity .opacity(@factor) { opacity: @factor; } // Text Shadow .text-shadow(@args) { text-shadow: @args; } // Transforms .transform(@args) { -webkit-transform: @args; transform: @args; } .transform-origin(@args) { -webkit-transform-origin: @args; transform-origin: @args; } .transform-style(@style) { -webkit-transform-style: @style; transform-style: @style; } .rotate(@deg: 45deg) { .transform(rotate(@deg)); } .scale(@factor: .5) { .transform(scale(@factor)); } .translate(@x, @y) { .transform(translate(@x, @y)); } .translateX(@x) { .transform(translateX(@x)); } .translateY(@y) { .transform(translateY(@y)); } .translate3d(@x, @y, @z) { .transform(translate3d(@x, @y, @z)); } // Transitions .transition(@args: 200ms) { transition: @args; } .transition-delay(@delay: 0) { transition-delay: @delay; } .transition-duration(@duration: 200ms) { transition-duration: @duration; } .transition-property(@property: all) { transition-property: @property; } .transition-timing-function(@function: ease) { transition-timing-function: @function; } // Flexbox .flex-block() { display: -webkit-flex; display: flex; } .flex-inline() { display: -webkit-inline-flex; display: inline-flex; } .flex-flow(@direction: row, @wrap: nowrap) { -webkit-flex-flow: @direction @wrap; flex-flow: @direction @wrap; } .align-content(@alignment) { -webkit-align-content: @alignment; align-content: @alignment; } .flex-direction(@direction: row) { -webkit-flex-direction: @direction; flex-direction: @direction; } .flex-wrap(@wrap: nowrap) { -webkit-flex-wrap: @wrap; flex-wrap: @wrap; } .justify-content(@justification) { -webkit-justify-content: @justification; justify-content: @justification; } .align-items(@mode) { -webkit-align-items: @mode; align-items: @mode; } .flex(@args: none) { -webkit-flex: @args; flex: @args; } .order(@order: 0) { -webkit-order: @order; order: @order; } .flex-grow(@grow: 1) { -webkit-flex-grow: @grow; flex-grow: @grow; } .flex-shrink(@shrink: 1) { -webkit-flex-shrink: @shrink; flex-shrink: @shrink; } .flex-basis(@basis: auto) { -webkit-flex-basis: @basis; flex-basis: @basis; } .align-self(@align: auto) { -webkit-align-self: @align; align-self: @align; }