Files
aircv/sass/_mixins.scss
2022-04-24 03:02:39 -05:00

227 lines
5.9 KiB
SCSS
Executable File

// --------------------------------------------------
// Clearfix
// --------------------------------------------------
// eg: @include clearfix;
@mixin clearfix() {
&:before,
&:after {
content: " ";
display: table;
}
&:after {
clear: both;
}
}
// --------------------------------------------------
// Font
// --------------------------------------------------
// eg: @include font($size: 14px, $style: italic, $weight: 400, $variant: normal, $family: $font-family-base);
@mixin font($size: null, $style: null, $weight: null, $variant: null, $family: null) {
font-size: $size;
font-style: $style;
font-weight: $weight;
font-variant: $variant;
font-family: $family;
}
// --------------------------------------------------
// Positioning
// --------------------------------------------------
// eg: @include position(absolute, $top: 5px, $left: 5px);
@mixin position($position, $top: null, $right: null, $bottom: null, $left: null) {
position: $position;
top: $top;
left: $left;
right: $right;
bottom: $bottom;
}
// --------------------------------------------------
// Sizing
// --------------------------------------------------
// eg 2: @include size(100%, 1px); */
@mixin size($width, $height: $width) {
width: $width;
height: $height;
}
// --------------------------------------------------
// Theme Button
// --------------------------------------------------
// eg: @include button();
@mixin button() {
position: relative;
display: inline-block;
line-height: 1.4;
text-align: center;
background-image: none;
border-style: solid;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
@include user-select(none);
&:focus,
&:active:focus,
&.active:focus,
&.focus,
&:active.focus,
&.active.focus {
outline: none;
}
&:hover {
@include cubic-transition($delay: 0, $duration: 300ms, $property: (all));
}
&:hover,
&:focus,
&.focus {
text-decoration: none;
}
&:active,
&.active {
background-image: none;
outline: 0;
}
&.disabled,
&[disabled],
fieldset[disabled] & {
cursor: not-allowed;
box-shadow: none;
opacity: .65;
pointer-events: none;
}
}
// eg: @include button-color($color-base, $color-white, transparent, $color-base, 1px, $color-base, $color-base);
@mixin button-color($btn-color, $btn-color-hover, $btn-bg-color, $btn-bg-hover-color, $btn-border-width, $btn-border-color, $btn-border-hover-color) {
color: $btn-color;
background: $btn-bg-color;
border-color: $btn-border-color;
border-width: $btn-border-width;
&:hover,
&:focus,
&.focus {
color: $btn-color-hover;
background: $btn-bg-hover-color;
border-color: $btn-border-hover-color;
}
}
// eg: @include button-size($font-size-14, $font-weight-400, 6px 12px);
@mixin button-size($btn-font-size, $btn-fweight, $btn-padding) {
font-size: $btn-font-size;
font-weight: $btn-fweight;
padding: $btn-padding;
}
// --------------------------------------------------
// User Select
// --------------------------------------------------
/* eg: @include user-select(none); */
@mixin user-select($user-select) {
-webkit-user-select: ($user-select);
-moz-user-select: ($user-select);
-ms-user-select: ($user-select);
user-select: ($user-select);
}
// --------------------------------------------------
// Placeholder
// --------------------------------------------------
// eg: @include placeholder($color-base);
@mixin placeholder($color: $input-color-placeholder) {
&::-moz-placeholder { color: $color; } // Firefox 19+
&:-ms-input-placeholder { color: $color; } // Internet Egplorer 10+
&::-webkit-input-placeholder { color: $color; } // Safari and Chrome
}
// --------------------------------------------------
// RGBA Background Opacity
// --------------------------------------------------
// eg: @include bg-opacity($color-dark, .2);
@mixin bg-opacity($color, $opacity: 0.3) {
background: rgba($color, $opacity);
}
// --------------------------------------------------
// Cubic Bezier Transition
// --------------------------------------------------
// eg: @include cubic-transition($delay: 0, $duration: 300ms, $property: (all));
@mixin cubic-transition($delay, $duration, $property) {
transition: {
duration: $duration;
property: $property;
timing-function: cubic-bezier(.7,1,.7,1);
}
}
// --------------------------------------------------
// Rotate
// --------------------------------------------------
/* eg: @include rotate(45deg); */
@mixin rotate($degrees) {
-webkit-transform: rotate($degrees);
-moz-transform: rotate($degrees);
transform: rotate($degrees);
}
// --------------------------------------------------
// Translate 3D Transition
// --------------------------------------------------
/* eg: @include translate3d(0,0,0); */
@mixin translate3d($x, $y, $z) {
-webkit-transform: translate3d($x, $y, $z);
-moz-transform: translate3d($x, $y, $z);
transform: translate3d($x, $y, $z);
}
// --------------------------------------------------
// Border Radius
// --------------------------------------------------
/* eg: @include border-radius(3px); */
@mixin border-radius($radius) {
border-radius: $radius;
}
// --------------------------------------------------
// Visibility
// --------------------------------------------------
/* eg: @include visibility-backface(hidden); */
@mixin visibility-backface($visibility) {
-webkit-backface-visibility: $visibility;
backface-visibility: $visibility;
}