Files
starface-outlook-sync-addin/node_modules/@fluentui/react/dist/sass/mixins/_Directionality.Mixins.scss
T
Stefan Hacker 37ad745546 first commit
2026-04-03 09:38:48 +02:00

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;
}
}
}