123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- @import './functions/calc-math';
- /*
- * Method which inserts a full background-image property for a theme image.
- * It checks if the file exists and if it doesn't, it'll throw an error.
- * By default it will not include the background-image property if it is not found,
- * but this can be changed by changing the default value of $enable-missing-images to
- * be true.
- */
- @function theme-background-image($path, $extension: $image-extension, $nocheck: false) {
- $path: file_join($relative-image-path-for-uis, $path + '.' + $extension);
- $background-image: none;
- @if $path {
- @if $nocheck {
- $background-image: $path;
- } @else if theme_image_exists($image-search-path, $path) {
- $background-image: $path;
- } @else {
- @warn "@theme-background-image: Theme image not found: #{$path}";
- @if $enable-missing-images {
- $background-image: $path;
- }
- }
- @if $background-image != none {
- $background-image: url(file_join($theme-resource-path, $path));
- }
- } @else {
- @warn "@theme-background-image: No arguments passed";
- }
- @return $background-image;
- }
- @function get-image-url($path, $extension: $image-extension, $nocheck: false) {
- @return theme-background-image($path, $extension, $nocheck);
- }
- @function x($position) {
- @return parsebox($position, 1);
- }
- @function y($position) {
- @return parsebox($position, 2);
- }
- @function before($position) {
- @return parsebox($position, 1);
- }
- @function after($position) {
- @return parsebox($position, 2);
- }
- @function top($box) {
- @return parsebox($box, 1);
- }
- @function right($box) {
- @return parsebox($box, 2);
- }
- @function bottom($box) {
- @return parsebox($box, 3);
- }
- @function left($box) {
- @return parsebox($box, 4);
- }
- @function vertical($box) {
- $top: top($box);
- $bottom: bottom($box);
- @if $top == null or $bottom == null {
- @return null;
- }
- @return $top + $bottom;
- }
- @function horizontal($box) {
- $left: left($box);
- $right: right($box);
- @if $left == null or $right == null {
- @return null;
- }
- @return $left + $right;
- }
- @function boxmax($box) {
- @return max(max(top($box), right($box)), max(bottom($box), left($box)));
- }
- @function boxmin($box) {
- @return min(min(top($box), right($box)), min(bottom($box), left($box)));
- }
- @function boxContainsNull($list) {
- @for $i from 1 through length($list) {
- @if nth($list, $i) == null {
- @return true;
- }
- }
- @return false;
- }
- @function box($top, $right, $bottom, $left) {
- @if type-of($top) == list {
- $right: right($top);
- $bottom: bottom($top);
- $left: left($top);
- $top: top($top);
- }
- @if $top == $bottom and $right == $left {
- @if $top == $right {
- @return $top;
- }
- @return ($top $right);
- }
- @if $left == $right {
- @return ($top $right $bottom);
- }
- @return ($top $right $bottom $left);
- }
- @function rotate90($box) {
- @return box(left($box), top($box), right($box), bottom($box));
- }
- @function rotate180($box) {
- @return box(bottom($box), left($box), top($box), right($box));
- }
- @function rotate270($box) {
- @return box(right($box), bottom($box), left($box), top($box));
- }
- @function flip-vertical($box) {
- @return box(bottom($box), right($box), top($box), left($box));
- }
- @function flip-horizontal($box) {
- @return box(top($box), left($box), bottom($box), right($box));
- }
- @function rtl($box) {
- @return box(top($box), left($box), bottom($box), right($box));
- }
- @function rtl-background-position($pos) {
- $x: parsebox($pos, 1);
- $new-x: null;
- @if $x == right or $x == 100% {
- $new-x: 0;
- } @else if $x == 0 or $x == left {
- $new-x: right;
- } @else {
- $new-x: $x;
- }
- @return $new-x parsebox($pos, 2);
- }
- @function nopx ($value) {
- @if $value == 0 {
- @return 0;
- }
- @return $value / 1px;
- }
- @function invert-shadow($shadow, $axis) {
- @if $axis != x and $axis != y {
- @error 'invalid value for $axis: #{$axis}';
- }
- $inverted-shadow: ();
- $counter: if($axis == x, 2, 1);
- @for $i from 1 through length($shadow) {
- $item: nth($shadow, $i);
- @if type-of($item) == number {
- @if $counter == 2 {
- // the first number in a box-shadow value is always the offset-x,
- // the second number is always offset-y
- $item: -$item;
- }
- $counter: $counter + 1;
- }
- $inverted-shadow: append($inverted-shadow, $item);
- }
- @return $inverted-shadow;
- }
- @function coalesce($values...) {
- $found: false;
- $ret: null;
- @for $i from 1 through length($values) {
- $value: nth($values, $i);
- @if $value != null and not $found {
- $ret: $value;
- $found: true;
- }
- }
- @return $ret;
- }
|