363 lines
6.4 KiB
SCSS
363 lines
6.4 KiB
SCSS
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
|
|
|
//
|
|
// Office UI Fabric
|
|
// --------------------------------------------------
|
|
// Directionality mixins to generate LTR and RTL-specific styles
|
|
|
|
// Base left-to-right mixin definition.
|
|
@mixin ms-LTR {
|
|
[dir='ltr'] & {
|
|
@content;
|
|
}
|
|
}
|
|
|
|
// Base right-to-left mixin definition.
|
|
@mixin ms-RTL {
|
|
[dir='rtl'] & {
|
|
@content;
|
|
}
|
|
}
|
|
|
|
// Use baseRTL to set the default direction to right-to-left on
|
|
// a root element (e.g. page or region) that needs RTL support.
|
|
@mixin ms-base-RTL {
|
|
@include ms-RTL {
|
|
direction: rtl;
|
|
unicode-bidi: bidi-override;
|
|
}
|
|
}
|
|
|
|
|
|
// Common CSS property mixins with support for RTL.
|
|
// Use to automatically create RTL versions of your properties.
|
|
|
|
// Background direction.
|
|
@mixin ms-background-position($alignment) {
|
|
@if $alignment == left {
|
|
@include ms-LTR {
|
|
background-position: left;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
background-position: right;
|
|
}
|
|
} @else if $alignment == right {
|
|
@include ms-LTR {
|
|
background-position: right;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
background-position: left;
|
|
}
|
|
} @else {
|
|
background-position: $alignment;
|
|
}
|
|
}
|
|
|
|
// Border styles.
|
|
@mixin ms-border-color($top, $right, $bottom, $left) {
|
|
border-color: $top $right $bottom $left;
|
|
|
|
@include ms-RTL {
|
|
border-color: $top $left $bottom $right;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-left($width, $style, $color) {
|
|
@include ms-LTR {
|
|
border-left: $width $style $color;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
border-right: $width $style $color;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-left-color($color) {
|
|
@include ms-LTR {
|
|
border-left-color: $color;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
border-right-color: $color;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-left-style($style) {
|
|
@include ms-LTR {
|
|
border-left-style: $style;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
border-right-style: $style;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-left-width($width) {
|
|
@include ms-LTR {
|
|
border-left-width: $width;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
border-right-width: $width;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-radius($topLeft, $topRight, $bottomRight, $bottomLeft) {
|
|
border-radius: $topLeft $topRight $bottomRight $bottomLeft;
|
|
|
|
@include ms-RTL {
|
|
border-radius: $topRight $topLeft $bottomLeft $bottomRight;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-right($width, $style, $color) {
|
|
@include ms-LTR {
|
|
border-right: $width $style $color;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
border-left: $width $style $color;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-right-color($color) {
|
|
@include ms-LTR {
|
|
border-right-color: $color;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
border-left-color: $color;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-right-style($style) {
|
|
@include ms-LTR {
|
|
border-right-style: $style;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
border-left-style: $style;
|
|
}
|
|
}
|
|
|
|
@mixin ms-border-right-width($width) {
|
|
@include ms-LTR {
|
|
border-right-width: $width;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
border-left-width: $width;
|
|
}
|
|
}
|
|
|
|
// Floats.
|
|
@mixin ms-clear($side) {
|
|
@if $side == left {
|
|
@include ms-LTR {
|
|
clear: $side;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
clear: right;
|
|
}
|
|
} @else if $side == right {
|
|
@include ms-LTR {
|
|
clear: $side;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
clear: left;
|
|
}
|
|
} @else {
|
|
clear: $side;
|
|
}
|
|
}
|
|
|
|
@mixin ms-float($direction) {
|
|
@if $direction == left {
|
|
@include ms-LTR {
|
|
float: left;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
float: right;
|
|
}
|
|
} @else {
|
|
@include ms-LTR {
|
|
float: right;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
float: left;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Positioning.
|
|
@mixin ms-left($distance) {
|
|
@include ms-LTR {
|
|
left: $distance;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
right: $distance;
|
|
}
|
|
}
|
|
|
|
@mixin ms-right($distance) {
|
|
@include ms-LTR {
|
|
right: $distance;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
left: $distance;
|
|
}
|
|
}
|
|
|
|
// Margins.
|
|
@mixin ms-margin($top, $right, $bottom, $left) {
|
|
margin: $top $right $bottom $left;
|
|
|
|
@include ms-RTL {
|
|
margin: $top $left $bottom $right;
|
|
}
|
|
}
|
|
|
|
@mixin ms-margin-left($distance) {
|
|
@include ms-LTR {
|
|
margin-left: $distance;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
margin-right: $distance;
|
|
}
|
|
}
|
|
|
|
@mixin ms-margin-right($distance) {
|
|
@include ms-LTR {
|
|
margin-right: $distance;
|
|
}
|
|
@include ms-RTL {
|
|
margin-left: $distance;
|
|
}
|
|
}
|
|
|
|
// Padding.
|
|
@mixin ms-padding($top, $right, $bottom, $left) {
|
|
padding: $top $right $bottom $left;
|
|
|
|
@include ms-RTL {
|
|
padding: $top $left $bottom $right;
|
|
}
|
|
}
|
|
|
|
@mixin ms-padding-left($distance) {
|
|
@include ms-LTR {
|
|
padding-left: $distance;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
padding-right: $distance;
|
|
}
|
|
}
|
|
|
|
@mixin ms-padding-right($distance) {
|
|
@include ms-LTR {
|
|
padding-right: $distance;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
padding-left: $distance;
|
|
}
|
|
}
|
|
|
|
// Text-alignment.
|
|
@mixin ms-text-align($direction) {
|
|
@if $direction == left {
|
|
@include ms-LTR {
|
|
text-align: left;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
text-align: right;
|
|
}
|
|
} @else {
|
|
@include ms-LTR {
|
|
text-align: right;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
text-align: left;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Box-shadow.
|
|
@mixin ms-box-shadow($left, $etc) {
|
|
@if $left != 0 {
|
|
@include ms-LTR {
|
|
box-shadow: $left $etc;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
box-shadow: -$left $etc;
|
|
}
|
|
} @else {
|
|
box-shadow: 0 $etc;
|
|
}
|
|
}
|
|
|
|
// Transforms.
|
|
@mixin ms-transform-scaleX($scaleX: 1) {
|
|
@include ms-LTR {
|
|
transform: scaleX($scaleX);
|
|
}
|
|
|
|
@include ms-RTL {
|
|
transform: scaleX(-$scaleX);
|
|
}
|
|
}
|
|
|
|
@mixin ms-transform-translateX($distance) {
|
|
@include ms-LTR {
|
|
transform: translateX($distance);
|
|
}
|
|
|
|
@include ms-RTL {
|
|
transform: translateX(-$distance);
|
|
}
|
|
}
|
|
|
|
@mixin ms-transform-rotate($degrees) {
|
|
@include ms-LTR {
|
|
transform: rotate($degrees);
|
|
}
|
|
|
|
@include ms-RTL {
|
|
transform: rotate(-$degrees);
|
|
}
|
|
}
|
|
|
|
// Transitions. Only supported when ONLY left/right are declared
|
|
@mixin ms-transition-property($direction) {
|
|
@if $direction == left {
|
|
@include ms-LTR {
|
|
transition-property: left;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
transition-property: right;
|
|
}
|
|
} @else {
|
|
@include ms-LTR {
|
|
transition-property: right;
|
|
}
|
|
|
|
@include ms-RTL {
|
|
transition-property: left;
|
|
}
|
|
}
|
|
}
|