Colección de los 10 mixins de SASS que más vengo utilizando en la mayoría de proyectos con su correspondiente ejemplo de uso en scss:
1. Media Queries
$mobile: 480px; $tabletPortrait: 767px; $tabletLandscape: 1024px; $desktop: 1200px; @mixin breakpoint($media) { @if $media == mobile { @media (max-width: $mobile) { @content; } } @else if $media == tablet { @media (min-width: $tabletPortrait) and (max-width: $tabletLandscape) { @content; } } @else if $media == smallScreen { @media (max-width: $desktop) { @content; } } @else if $media == desktop { @media (min-width: $desktop) { @content; } } }
Uso:
aside { width: 30%; float: right; @include breakpoint(mobile) { width: 100%; float: none; } }
2. Transitions
@mixin transition($what: all, $length: .3s, $easing: ease-in-out, $args: '') { @if( $args=='' ){ -webkit-transition: $what $length $easing; transition: $what $length $easing; } @else { -webkit-transition: $args; transition: $args; } }
Uso:
.elemento { @include transition; } a { @include transition(color); }
3. Transform
@mixin transform($args){ -webkit-transform: $args; transform: $args; }
Uso:
.elemento { @include transform(rotate(45deg)); }
4. Clearfix
%clearfix { &:before, &:after { content: ""; display: table; } &:after { clear: both; } }
Uso:
.elemento { @extend %clearfix; }
5. Keyframes
@mixin keyframes($name) { @-webkit-keyframes #{$name} { @content; } @keyframes #{$name} { @content; } }
Uso:
@include keyframes(nombre-animacion) { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.3; } }
6. Liner-Gradients
@mixin linear-gradient($fromColor, $toColor) { background-color: $toColor; background-image: -webkit-gradient(linear, left top, left bottom, from($fromColor), to($toColor)); background-image: -webkit-linear-gradient(top, $fromColor, $toColor); background-image: linear-gradient(top, $fromColor, $toColor); }
Uso:
.elemento { @include linear-gradient(#000,#fff); }
7. Box-Sizing
@mixin box-sizing($args : border-box){ -webkit-box-sizing: $args; -moz-box-sizing: $args; box-sizing: $args; }
Uso:
.elemento { @include box-sizing; }
8. Text Overflow
@mixin text-truncate { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
Uso:
.elemento { @include text-truncate; }
9. Hide
@mixin hide { display:block; text-indent:-666px; overflow: hidden; }
Uso:
.elemento { @include hide; }
10. Font-size Rem
@function countRem($value) { $remValue: $value / 16px; @return $remValue * 1rem; } @mixin font-size($value) { font-size: $value; font-size: calculateRem($value); }
Uso:
.elemento { @include font-size(24px); } }
Agradezco tu comentario 🤘