UNPKG

bootstrap-less-port

Version:
56 lines (52 loc) 1.91 kB
//@mixin transition($transition...) { // @if $enable-transitions { // @if length($transition) == 0 { // transition: $transition-base; // } @else { // transition: $transition; // } // } // // @if $enable-prefers-reduced-motion-media-query { // @media (prefers-reduced-motion: reduce) { // transition: none; // } // } //} #transition(@transition...) { & when (length(@transition) = 0) { @transition: @transition-base; } & when (length(@transition) > 1) { each(@transition, #(@value) { & when (@value = ~"") or (@value = none) { warn("The keyword 'none' or '~\"\"' must be used as a single argument."); } }); } & when (@enable-transitions) { & when (length(@transition) = 0) { transition: @transition-base; } // LESS PORT: In order to output the transitions correctly we have to iterate over the list and // use Less’s merge feature. Without this, transitions will be output space-separated instead of // comma-separated. Also, since a single transition can be misinterpreted as multiple transitions // (since it will have a length > 1) we have to include a check for the length of the first item // in the list. If the length is greater than 1, then we have a list of separate transitions. If // the the length is 1, then we’re looking at the first value of a single transition, so we // output `@transition` as-is. & when (length(@transition) > 0) and (length(extract(@transition, 1)) = 1) { transition: @transition; } & when (length(@transition) > 0) and (length(extract(@transition, 1)) > 1) { each(@transition, #(@transition) { transition+: @transition; }); } & when (@enable-prefers-reduced-motion-media-query) and (length(@transition) > 0) and not (extract(@transition, 1) = ~"") and not (extract(@transition, 1) = none) { @media (prefers-reduced-motion: reduce) { transition: none; } } } }