mirror of https://github.com/ElemeFE/element
191 lines
3.2 KiB
SCSS
191 lines
3.2 KiB
SCSS
@import "function";
|
||
@import "../common/var";
|
||
|
||
/* Break-points
|
||
-------------------------- */
|
||
@mixin res($key, $map: $--breakpoints) {
|
||
// 循环断点Map,如果存在则返回
|
||
@if map-has-key($map, $key) {
|
||
@media only screen and #{inspect(map-get($map, $key))} {
|
||
@content;
|
||
}
|
||
} @else {
|
||
@warn "Undefeined points: `#{$map}`";
|
||
}
|
||
}
|
||
|
||
/* Scrollbar
|
||
-------------------------- */
|
||
@mixin scroll-bar {
|
||
$--scrollbar-thumb-background: #b4bccc;
|
||
$--scrollbar-track-background: #fff;
|
||
|
||
&::-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;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/* Placeholder
|
||
-------------------------- */
|
||
@mixin placeholder {
|
||
&::-webkit-input-placeholder {
|
||
@content
|
||
}
|
||
|
||
&::-moz-placeholder {
|
||
@content
|
||
}
|
||
|
||
&:-ms-input-placeholder {
|
||
@content
|
||
}
|
||
}
|
||
|
||
/* BEM
|
||
-------------------------- */
|
||
@mixin b($block) {
|
||
$B: $namespace+'-'+$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 + & + $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};
|
||
}
|
||
|
||
@mixin share-rule($name) {
|
||
$rule-name: '%shared-'+$name;
|
||
|
||
@at-root #{$rule-name} {
|
||
@content
|
||
}
|
||
}
|
||
|
||
@mixin pseudo($pseudo) {
|
||
@at-root #{&}#{':#{$pseudo}'} {
|
||
@content
|
||
}
|
||
}
|
||
|