Last active
September 2, 2015 10:46
-
-
Save umanda/db2462b878196af6fb03 to your computer and use it in GitHub Desktop.
Useful CSS3 LESS Mixins.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* ---------------------------------------------------------- */ | |
| /* */ | |
| /* A Less mixine bundle */ | |
| /* */ | |
| /* http://umandajayobandara.com/ */ | |
| /* */ | |
| /* */ | |
| /* ---------------------------------------------------------- */ | |
| .text-shadow (@string: 0 1px 3px rgba(0, 0, 0, 0.25)) { | |
| text-shadow: @string; | |
| } | |
| .box-shadow (@string) { | |
| -webkit-box-shadow: @string; | |
| -moz-box-shadow: @string; | |
| box-shadow: @string; | |
| } | |
| .drop-shadow (@x: 0, @y: 1px, @blur: 2px, @spread: 0, @alpha: 0.25) { | |
| -webkit-box-shadow: @x @y @blur @spread rgba(0, 0, 0, @alpha); | |
| -moz-box-shadow: @x @y @blur @spread rgba(0, 0, 0, @alpha); | |
| box-shadow: @x @y @blur @spread rgba(0, 0, 0, @alpha); | |
| } | |
| .inner-shadow (@x: 0, @y: 1px, @blur: 2px, @spread: 0, @alpha: 0.25) { | |
| -webkit-box-shadow: inset @x @y @blur @spread rgba(0, 0, 0, @alpha); | |
| -moz-box-shadow: inset @x @y @blur @spread rgba(0, 0, 0, @alpha); | |
| box-shadow: inset @x @y @blur @spread rgba(0, 0, 0, @alpha); | |
| } | |
| .box-sizing (@type: border-box) { | |
| -webkit-box-sizing: @type; | |
| -moz-box-sizing: @type; | |
| box-sizing: @type; | |
| } | |
| .border-radius (@radius: 5px) { | |
| -webkit-border-radius: @radius; | |
| -moz-border-radius: @radius; | |
| border-radius: @radius; | |
| -moz-background-clip: padding; | |
| -webkit-background-clip: padding-box; | |
| background-clip: padding-box; | |
| } | |
| .border-radiuses (@topright: 0, @bottomright: 0, @bottomleft: 0, @topleft: 0) { | |
| -webkit-border-top-right-radius: @topright; | |
| -webkit-border-bottom-right-radius: @bottomright; | |
| -webkit-border-bottom-left-radius: @bottomleft; | |
| -webkit-border-top-left-radius: @topleft; | |
| -moz-border-radius-topright: @topright; | |
| -moz-border-radius-bottomright: @bottomright; | |
| -moz-border-radius-bottomleft: @bottomleft; | |
| -moz-border-radius-topleft: @topleft; | |
| border-top-right-radius: @topright; | |
| border-bottom-right-radius: @bottomright; | |
| border-bottom-left-radius: @bottomleft; | |
| border-top-left-radius: @topleft; | |
| -moz-background-clip: padding; | |
| -webkit-background-clip: padding-box; | |
| background-clip: padding-box; | |
| } | |
| .opacity (@opacity: 0.5) { | |
| -webkit-opacity: @opacity; | |
| -moz-opacity: @opacity; | |
| opacity: @opacity; | |
| } | |
| .gradient (@startColor: #eee, @endColor: #fff) { | |
| background-color: @startColor; | |
| background: -webkit-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); | |
| background: -webkit-linear-gradient(top, @startColor, @endColor); | |
| background: -moz-linear-gradient(top, @startColor, @endColor); | |
| background: -ms-linear-gradient(top, @startColor, @endColor); | |
| background: -o-linear-gradient(top, @startColor, @endColor); | |
| } | |
| .gradient-with-image (@startColor: #eee, @endColor: #fff,@image : none) { | |
| background: @startColor; | |
| background: url(@image) no-repeat center 0, -moz-linear-gradient(top, @startColor 0%, @endColor 100%); | |
| background: url(@image) no-repeat center 0, -webkit-gradient(linear, 0% 0%,0% 100%, from(@startColor), to(@endColor)); | |
| background: url(@image) no-repeat center 0, -webkit-linear-gradient(top, @startColor 0%,@endColor 100%); | |
| background: url(@image) no-repeat center 0, -o-linear-gradient(top, @startColor 0%,@endColor 100%); | |
| background: url(@image) no-repeat center 0, -ms-linear-gradient(top, @startColor 0%,@endColor 100%); | |
| background: url(@image) no-repeat center 0, linear-gradient(top, @startColor 0%,@endColor 100%); | |
| } | |
| .horizontal-gradient (@startColor: #eee, @endColor: #fff) { | |
| background-color: @startColor; | |
| background-image: -webkit-gradient(linear, left top, right top, from(@startColor), to(@endColor)); | |
| background-image: -webkit-linear-gradient(left, @startColor, @endColor); | |
| background-image: -moz-linear-gradient(left, @startColor, @endColor); | |
| background-image: -ms-linear-gradient(left, @startColor, @endColor); | |
| background-image: -o-linear-gradient(left, @startColor, @endColor); | |
| } | |
| .animation (@name, @duration: 300ms, @delay: 0, @ease: ease) { | |
| -webkit-animation: @name @duration @delay @ease; | |
| -moz-animation: @name @duration @delay @ease; | |
| -ms-animation: @name @duration @delay @ease; | |
| } | |
| .transition (@transition) { | |
| -webkit-transition: @transition; | |
| -moz-transition: @transition; | |
| -ms-transition: @transition; | |
| -o-transition: @transition; | |
| } | |
| .transform(@string){ | |
| -webkit-transform: @string; | |
| -moz-transform: @string; | |
| -ms-transform: @string; | |
| -o-transform: @string; | |
| } | |
| .scale (@factor) { | |
| -webkit-transform: scale(@factor); | |
| -moz-transform: scale(@factor); | |
| -ms-transform: scale(@factor); | |
| -o-transform: scale(@factor); | |
| } | |
| .rotate (@deg) { | |
| -webkit-transform: rotate(@deg); | |
| -moz-transform: rotate(@deg); | |
| -ms-transform: rotate(@deg); | |
| -o-transform: rotate(@deg); | |
| } | |
| .skew (@deg, @deg2) { | |
| -webkit-transform: skew(@deg, @deg2); | |
| -moz-transform: skew(@deg, @deg2); | |
| -ms-transform: skew(@deg, @deg2); | |
| -o-transform: skew(@deg, @deg2); | |
| } | |
| .translate (@x, @y:0) { | |
| -webkit-transform: translate(@x, @y); | |
| -moz-transform: translate(@x, @y); | |
| -ms-transform: translate(@x, @y); | |
| -o-transform: translate(@x, @y); | |
| } | |
| .translate3d (@x, @y: 0, @z: 0) { | |
| -webkit-transform: translate3d(@x, @y, @z); | |
| -moz-transform: translate3d(@x, @y, @z); | |
| -ms-transform: translate3d(@x, @y, @z); | |
| -o-transform: translate3d(@x, @y, @z); | |
| } | |
| .perspective (@value: 1000) { | |
| -webkit-perspective: @value; | |
| -moz-perspective: @value; | |
| -ms-perspective: @value; | |
| perspective: @value; | |
| } | |
| .transform-origin (@x:center, @y:center) { | |
| -webkit-transform-origin: @x @y; | |
| -moz-transform-origin: @x @y; | |
| -ms-transform-origin: @x @y; | |
| -o-transform-origin: @x @y; | |
| } | |
| /******* | |
| Mixins for Rem Font Sizing | |
| EX: | |
| p { | |
| .font-size(13); | |
| } | |
| *******/ | |
| .font-size(@sizeValue) { | |
| @remValue: @sizeValue; | |
| @pxValue: (@sizeValue * 10); | |
| font-size: ~"@{pxValue}px"; | |
| font-size: ~"@{remValue}rem"; | |
| } | |
| /// Shorthand mixin for offset positioning | |
| /// @param {String} $position - Either `relative`, `absolute` or `fixed` | |
| /// @param {Length} $top [null] - Top offset | |
| /// @param {Length} $right [null] - Right offset | |
| /// @param {Length} $bottom [null] - Bottom offset | |
| /// @param {Length} $left [null] - Left offset | |
| /* | |
| Ex: | |
| .foo { | |
| .position(absolute, $top: 1em, $left: 50%); | |
| } | |
| */ | |
| .position($position, $top: null, $right: null, $bottom: null, $left: null) { | |
| position: $position; | |
| top: $top; | |
| right: $right; | |
| bottom: $bottom; | |
| left: $left; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment