/** * Clearfix * * @return {string} Clearfix attribute */ @mixin clearfix { &:after { content: ""; display: table; clear: both; } } /** * Placeholder attribute for inputs * * @return {string} Placeholder attributes */ @mixin placeholder { &::-webkit-input-placeholder {@content}; &::-moz-placeholder {@content} &:-ms-input-placeholder {@content} &:placeholder-shown {@content}; } /** * Spinner element * * @param {string} $color - Color * @param {string} $dur - Animation Duration * @param {int} $width - Width * @param {int} $height [$width] - height * * @return {string} Spinner element */ @mixin spinner($color,$dur,$width,$height:$width) { width: $width; height: $height; border-radius: 50%; box-shadow:0 0 0 1px rgba(0,0,0,0.1), 2px 1px 0 $color; @include prefix(animation, spin $dur linear infinite); @include keyframes(spin) { 100%{ @include prefix(transform, rotate(360deg)); } }; } /** * Prefixes for keyframes * * @param {string} $animation-name - The animation name * * @return {string} Prefixed keyframes attributes */ @mixin keyframes($animation-name) { @-webkit-keyframes #{$animation-name} { @content; } @-moz-keyframes #{$animation-name} { @content; } @-o-keyframes #{$animation-name} { @content; } @keyframes #{$animation-name} { @content; } } /** * Prefix function for browser compatibility * * @param {string} $property - Property name * @param {any} $value - Property value * * @return {string} Prefixed attributes */ @mixin prefix($property, $value) { -webkit-#{$property}: #{$value}; -moz-#{$property}: #{$value}; -ms-#{$property}: #{$value}; -o-#{$property}: #{$value}; #{$property}: #{$value}; }