2014-10-26 16:33:53 -05:00
|
|
|
// ------------------------------------------------------------
|
2014-10-26 12:07:35 -05:00
|
|
|
// Mixins
|
2014-10-26 16:33:53 -05:00
|
|
|
//
|
|
|
|
// Mixins defined here are very general and used in mul
|
|
|
|
//
|
|
|
|
// * baseline()
|
|
|
|
// * clearfix()
|
|
|
|
// * tab-focus()
|
|
|
|
// * triangle()
|
|
|
|
// * set-triangle-color()
|
2015-01-28 11:30:03 -05:00
|
|
|
// * circular-image()
|
2014-10-26 16:33:53 -05:00
|
|
|
// ------------------------------------------------------------
|
2014-05-21 12:17:39 -05:00
|
|
|
|
2014-10-26 12:07:35 -05:00
|
|
|
|
2014-10-26 16:33:53 -05:00
|
|
|
//
|
2014-10-26 12:07:35 -05:00
|
|
|
// Baseline margin
|
2014-10-26 16:33:53 -05:00
|
|
|
// --------------------------------------------------
|
|
|
|
|
2014-05-21 12:17:39 -05:00
|
|
|
@mixin baseline {
|
|
|
|
margin: 1.6em 0;
|
2014-08-04 10:57:33 -05:00
|
|
|
}
|
|
|
|
|
2014-10-26 12:07:35 -05:00
|
|
|
|
2014-10-26 16:33:53 -05:00
|
|
|
//
|
2014-10-26 12:07:35 -05:00
|
|
|
// Fix for clearing float-based overflows
|
2014-10-26 16:33:53 -05:00
|
|
|
// --------------------------------------------------
|
|
|
|
|
2014-08-26 05:56:02 -05:00
|
|
|
@mixin clearfix {
|
2014-10-26 12:07:35 -05:00
|
|
|
&:after {
|
|
|
|
content: "";
|
|
|
|
display: table;
|
|
|
|
clear: both;
|
|
|
|
}
|
2014-08-26 05:56:02 -05:00
|
|
|
}
|
|
|
|
|
2014-08-04 10:57:33 -05:00
|
|
|
|
2014-10-26 16:33:53 -05:00
|
|
|
//
|
2014-08-04 10:57:33 -05:00
|
|
|
// WebKit-style focus
|
2014-10-26 12:07:35 -05:00
|
|
|
// From Bootstrap
|
2014-10-26 16:33:53 -05:00
|
|
|
// --------------------------------------------------
|
2014-08-04 10:57:33 -05:00
|
|
|
@mixin tab-focus() {
|
2014-10-26 12:07:35 -05:00
|
|
|
// Default
|
|
|
|
outline: thin dotted;
|
|
|
|
// WebKit
|
|
|
|
outline: 0px auto -webkit-focus-ring-color;
|
|
|
|
outline-offset: -2px;
|
2014-08-04 10:57:33 -05:00
|
|
|
}
|
2014-08-05 09:12:27 -05:00
|
|
|
|
|
|
|
|
2014-10-26 16:33:53 -05:00
|
|
|
//
|
2014-10-26 12:07:35 -05:00
|
|
|
// Simple SCSS mixin to create CSS triangles
|
|
|
|
// Example: @include css-triangle (10px, #fff, "up");
|
2014-10-26 16:33:53 -05:00
|
|
|
// --------------------------------------------------
|
|
|
|
|
2014-10-26 12:07:35 -05:00
|
|
|
@mixin triangle($size: 20px, $color: #000, $direction: "down", $type: "normal") {
|
2014-09-29 06:17:27 -05:00
|
|
|
$verticalSize: $size;
|
2014-08-26 05:56:02 -05:00
|
|
|
width: 0;
|
|
|
|
height: 0;
|
|
|
|
|
2014-09-29 06:17:27 -05:00
|
|
|
@if $type == "shallow" {
|
|
|
|
$verticalSize: floor($size * $popover_triangle_shallow_multiplier);
|
|
|
|
}
|
|
|
|
|
2014-08-26 05:56:02 -05:00
|
|
|
@if $direction == "down" {
|
2014-10-26 16:33:53 -05:00
|
|
|
border-left: $size solid #{set-triangle-color($direction, "left", $color)};
|
|
|
|
border-right: $size solid #{set-triangle-color($direction, "right", $color)};
|
|
|
|
border-top: $verticalSize solid #{set-triangle-color($direction, "top", $color)};
|
2014-08-26 05:56:02 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
@if $direction == "up" {
|
2014-10-26 16:33:53 -05:00
|
|
|
border-left: $size solid #{set-triangle-color($direction, "left", $color)};
|
|
|
|
border-right: $size solid #{set-triangle-color($direction, "right", $color)};
|
|
|
|
border-bottom: $verticalSize solid #{set-triangle-color($direction, "bottom", $color)};
|
2014-08-26 05:56:02 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
@if $direction == "left" {
|
2014-10-26 16:33:53 -05:00
|
|
|
border-right: $verticalSize solid #{set-triangle-color($direction, "right", $color)};
|
|
|
|
border-top: $size solid #{set-triangle-color($direction, "top", $color)};
|
|
|
|
border-bottom: $size solid #{set-triangle-color($direction, "bottom", $color)};
|
2014-08-26 05:56:02 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
@if $direction == "right" {
|
2014-10-26 16:33:53 -05:00
|
|
|
border-left: $verticalSize solid #{set-triangle-color($direction, "left", $color)};
|
|
|
|
border-bottom: $size solid #{set-triangle-color($direction, "bottom", $color)};
|
|
|
|
border-top: $size solid #{set-triangle-color($direction, "top", $color)};
|
2014-08-26 05:56:02 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-10-26 16:33:53 -05:00
|
|
|
//
|
2014-10-26 12:07:35 -05:00
|
|
|
// Utility function to return the relevant colour depending on what type of arrow it is
|
2014-10-26 16:33:53 -05:00
|
|
|
// --------------------------------------------------
|
|
|
|
|
|
|
|
@function set-triangle-color($direction, $side, $color) {
|
2014-08-26 05:56:02 -05:00
|
|
|
@if $direction == "left" and $side == "right"
|
|
|
|
or $direction == "right" and $side == "left"
|
|
|
|
or $direction == "down" and $side == "top"
|
|
|
|
or $direction == "up" and $side == "bottom" {
|
|
|
|
@return $color
|
|
|
|
} @else {
|
|
|
|
@return "transparent";
|
|
|
|
}
|
2015-01-28 11:30:03 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
// Reusable styles for creating a circular image which is cropped properly, with the image inside it
|
|
|
|
// Example: @circular-image(35px);
|
|
|
|
// --------------------------------------------------
|
|
|
|
|
|
|
|
@mixin circular-image($widthandheight: 20px) {
|
|
|
|
@content;
|
|
|
|
width: $widthandheight;
|
|
|
|
height: $widthandheight;
|
|
|
|
border-radius: $widthandheight;
|
|
|
|
background-size: cover;
|
|
|
|
background-position: center center;
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
img {
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
opacity: 0;
|
|
|
|
}
|
2014-08-26 05:56:02 -05:00
|
|
|
}
|