数通智联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

235 lines
4.0 KiB

@use 'function' as *;
@use '../common/var' as *;
// forward mixins
@forward 'config';
@forward 'function';
@forward '_var';
@use 'config' as *;
// Break-points
@mixin res($key, $map: $breakpoints) {
// loop breakpoint Map, return if present
@if map-has-key($map, $key) {
@media only screen and #{unquote(map-get($map, $key))} {
@content;
}
} @else {
@warn "Undefined points: `#{$map}`";
}
}
// Scrollbar
@mixin scroll-bar {
$scrollbar-thumb-background: getCssVar('text-color', 'disabled');
$scrollbar-track-background: getCssVar('fill-color', 'blank');
&::-webkit-scrollbar {
z-index: 11;
width: 6px;
&:horizontal {
height: 6px;
}
&-thumb {
border-radius: 5px;
width: 6px;
background: $scrollbar-thumb-background;
}
&-corner {
background: $scrollbar-track-background;
}
&-track {
background: $scrollbar-track-background;
&-piece {
background: $scrollbar-track-background;
width: 6px;
}
}
}
}
// BEM
@mixin b($block) {
$B: $namespace + $common-separator + $block !global;
.#{$B} {
@content;
}
}
@mixin e($element) {
$E: $element !global;
$selector: &;
$currentSelector: '';
@each $unit in $element {
$currentSelector: #{$currentSelector +
'.' +
$B +
$element-separator +
$unit +
','};
}
@if hitAllSpecialNestRule($selector) {
@at-root {
#{$selector} {
#{$currentSelector} {
@content;
}
}
}
} @else {
@at-root {
#{$currentSelector} {
@content;
}
}
}
}
@mixin m($modifier) {
$selector: &;
$currentSelector: '';
@each $unit in $modifier {
$currentSelector: #{$currentSelector +
$selector +
$modifier-separator +
$unit +
','};
}
@at-root {
#{$currentSelector} {
@content;
}
}
}
@mixin configurable-m($modifier, $E-flag: false) {
$selector: &;
$interpolation: '';
@if $E-flag {
$interpolation: $element-separator + $E-flag;
}
@at-root {
#{$selector} {
.#{$B + $interpolation + $modifier-separator + $modifier} {
@content;
}
}
}
}
@mixin spec-selector(
$specSelector: '',
$element: $E,
$modifier: false,
$block: $B
) {
$modifierCombo: '';
@if $modifier {
$modifierCombo: $modifier-separator + $modifier;
}
@at-root {
#{&}#{$specSelector}.#{$block
+ $element-separator
+ $element
+ $modifierCombo} {
@content;
}
}
}
@mixin meb($modifier: false, $element: $E, $block: $B) {
$selector: &;
$modifierCombo: '';
@if $modifier {
$modifierCombo: $modifier-separator + $modifier;
}
@at-root {
#{$selector} {
.#{$block + $element-separator + $element + $modifierCombo} {
@content;
}
}
}
}
@mixin when($state) {
@at-root {
&.#{$state-prefix + $state} {
@content;
}
}
}
@mixin extend-rule($name) {
@extend #{'%shared-' + $name} !optional;
}
@mixin share-rule($name) {
$rule-name: '%shared-' + $name;
@at-root #{$rule-name} {
@content;
}
}
@mixin pseudo($pseudo) {
@at-root #{&}#{':#{$pseudo}'} {
@content;
}
}
@mixin picker-popper($background, $border, $box-shadow) {
&.#{$namespace}-popper {
background: $background;
border: $border;
box-shadow: $box-shadow;
.#{$namespace}-popper__arrow {
&::before {
border: $border;
}
}
@each $placement,
$adjacency
in ('top': 'left', 'bottom': 'right', 'left': 'bottom', 'right': 'top')
{
&[data-popper-placement^='#{$placement}'] {
.#{$namespace}-popper__arrow::before {
border-#{$placement}-color: transparent;
border-#{$adjacency}-color: transparent;
}
}
}
}
}
// dark
@mixin dark($block) {
html.dark {
@include b($block) {
@content;
}
}
}
@mixin inset-input-border($color, $important: false) {
@if $important == true {
box-shadow: 0 0 0 1px $color inset !important;
} @else {
box-shadow: 0 0 0 1px $color inset;
}
}