// 媒体查询最小阈值 @mixin media-breakpoint-up($name, $breakpoints: $breakpoints) { $min: breakpoint-min($name, $breakpoints); @if $min { @media (min-width: $min) { @content; } } @else { @content; } } //媒体查询最大阈值 @mixin media-breakpoint-down($name, $breakpoints: $breakpoints) { $max: breakpoint-max($name, $breakpoints); @if $max { @media (max-width: $max) { @content; } } @else { @content; } } //媒体查询中间阈值 @mixin media-breakpoint-between($min, $max, $breakpoints: $breakpoints) { $min: breakpoint-min($min, $breakpoints); $max: breakpoint-max($max, $breakpoints); @media (min-width: $min) and (max-width: $max) { @content; } } @mixin media-device($name, $devices: $devices) { $n: map-get($devices, $name); @media #{$n} { @content; } } @mixin clearfix() { &::before, &::after { display: table; content: ''; } &::after { clear: both; } } // @deprecated 不建议用了 @mixin color-schema($bg-color: #555, $percent: 15%, $sat-percent: 100%) { background-color: saturate(darken($bg-color, $percent), $sat-percent); } // @deprecated 不建议用了 @mixin color-schema-lt($bg-color: #555, $percent: 15%, $sat-percent: 100%) { background-color: desaturate(lighten($bg-color, $percent), $sat-percent); } // @deprecated 不建议用了 @mixin color-variant( $bg-color: #555, $lt-percent: 10%, $lter-percent: 15%, $dk-percent: 10%, $dker-percent: 15% ) { background-color: $bg-color; &.lt, & .lt { @include color-schema-lt($bg-color, $lt-percent, 2.5%); } &.lter, & .lter { @include color-schema-lt($bg-color, $lter-percent, 5%); } &.dk, & .dk { @include color-schema($bg-color, $dk-percent, 2.5%); } &.dker, & .dker { @include color-schema($bg-color, $dker-percent, 5%); } &.bg, & .bg { background-color: $bg-color; } } // @deprecated 不建议用了 @mixin font-variant($bg-color) { $font-color: desaturate(lighten($bg-color, 40%), 10%); $link-color: desaturate(lighten($bg-color, 50%), 10%); $hover-color: #fff; color: $font-color; & a, & .#{$ns}Button--link { color: $link-color; &:hover { color: $hover-color; } } & .open > a { &, &:hover, &:focus { color: $hover-color; } } & .text-muted { color: darken($font-color, 10%) !important; } & .text-lt { color: lighten($font-color, 25%) !important; } // &.auto, // & .auto { // & .list-group-item { // border-color: darken($bg-color, 5%) !important; // background-color: transparent; // &:hover, // &:focus, // &:active, // &.active { // @include color-schema($bg-color, 5%, 2.5% !important); // } // } // } } // @deprecated 不建议用了 @mixin text-wariant($bg-color, $name) { a.bg-#{'' + $name}:hover { background-color: darken($bg-color, 5%); } a.text-#{'' + $name}:hover { color: darken($bg-color, 5%); } .text-#{'' + $name} { color: $bg-color; } .text-#{'' + $name}-lt { color: darken($bg-color, 5%); } .text-#{'' + $name}-lter { color: darken($bg-color, 10%); } .text-#{'' + $name}-dk { color: darken($bg-color, 5%); } .text-#{'' + $name}-dker { color: darken($bg-color, 10%); } } @mixin hover { &:hover { @content; } } @mixin focus { &:focus { @content; } } @mixin hover-focus { &:hover:focus { @content; } } @mixin hover-active { &:hover:active { @content; } } @mixin button-size( $padding-y, $padding-x, $font-size, $line-height, $border-radius, $height: auto, $iconWdith: px2rem(20px) ) { padding: $padding-y $padding-x; font-size: $font-size; line-height: $line-height; border-radius: $border-radius; height: $height; .#{$ns}Button-icon:first-child:not(:last-child):not(.pull-right), > svg.icon:not(:last-child):not(.pull-right), > .pull-left { margin-right: $padding-x; } .#{$ns}Button-icon:last-child:not(:first-child):not(.pull-left), > .pull-right { margin-left: $padding-x; } } @mixin button-variant( $background, $border: $background, $color: $white, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $hover-color: $color, $active-background: darken($background, 10%), $active-border: darken($border, 12.5%), $active-color: $color ) { color: $color; background-color: $background; border-color: $border; box-shadow: $Button-boxShadow; @include hover { @if ($color != $hover-color) { color: $hover-color; } @if ($background != $hover-background) { background-color: $hover-background; } @if ($border != $hover-border) { border-color: $hover-border; } } // @include focus { // color: $color; // background-color: $background; // border-color: $border; // box-shadow: $Button-boxShadow; // } @include hover-focus { // color: $hover-color; // background-color: $hover-background; // border-color: $hover-border; box-shadow: $Button-boxShadow; } &:active, &.is-active { @if ($active-color != $color) { color: $active-color; } @if ($active-background != $background) { background-color: $active-background; } @if ($active-border != $border) { border-color: $active-border; } } &.is-disabled, &:disabled { @if variable-exists(Button-onDisabled-bg) and $Button-onDisabled-bg != $background { background-color: $Button-onDisabled-bg; } @if variable-exists(Button-onDisabled-color) and $Button-onDisabled-color != $color { color: $Button-onDisabled-color; } @if variable-exists(Button-onDisabled-borderColor) and $Button-onDisabled-borderColor != $border { border-color: $Button-onDisabled-borderColor; } } } @mixin input-clear { padding: px2rem(3px); cursor: pointer; display: flex; align-items: center; justify-content: center; svg { fill: $Form-input-iconColor; top: 0; width: px2rem(10px); height: px2rem(10px); } &:hover svg { fill: darken($color: $Form-input-iconColor, $amount: 20%); } } @mixin input-input { display: flex; background-color: $Form-input-bg; border: $Form-input-borderWidth solid $Form-input-borderColor; border-radius: $Form-input-borderRadius; // height: $Form-input-height; line-height: $Form-input-lineHeight; padding: $Form-input-paddingY $Form-input-paddingX; font-size: $Form-input-fontSize; flex-wrap: wrap; justify-content: space-between; input { flex-basis: px2rem(80px); flex-grow: 1; outline: none; background: transparent; border: none; color: $Form-input-color; width: 100%; height: $Form-input-lineHeight * $Form-input-fontSize; &::placeholder { color: $Form-input-placeholderColor; user-select: none; } } } @mixin input-text { position: relative; max-width: 100%; &.is-inline { display: inline-block; width: $Form-control-widthBase; } &-input { @include input-input(); } &.is-error > &-input { border-color: $Form-input-onError-borderColor; background-color: $Form-input-onError-bg; } &.is-focused > &-input { border-color: $Form-input-onFocused-borderColor; box-shadow: $Form-input-boxShadow; @if $Form-input-onFocused-bg !=$Form-input-bg { background-color: $Form-input-onFocused-bg; } } &.is-error.is-focused > &-input { border-color: $Form-input-onError-borderColor; } &.is-disabled > &-input { color: $text--muted-color; background: $Form-input-onDisabled-bg; border-color: $Form-input-onDisabled-borderColor; } &-spinner { line-height: $Form-input-lineHeight * $Form-input-fontSize; } &-clear { @include input-clear(); } // 需要能撑开 @include media-breakpoint-up(sm) { &.#{$ns}Form-control--sizeXs > &-input, &.#{$ns}Form-control--sizeSm > &-input, &.#{$ns}Form-control--sizeMd > &-input, &.#{$ns}Form-control--sizeLg > &-input { min-width: 100%; display: inline-flex; } } } @mixin checkboxes-placeholder { height: $Form-input-height; line-height: $Form-input-lineHeight; font-size: $Form-input-fontSize; padding: ($Form-input-height - $Form-input-lineHeight * $Form-input-fontSize)/2 $gap-sm; color: $text--muted-color; } @mixin label-variant($color) { background-color: $color; &[href] { &:hover, &:focus { background-color: darken($color, 10%); } } } @mixin icon-color { color: $icon-color; &:hover { color: $icon-onHover-color; } }