Skip to content

Instantly share code, notes, and snippets.

@adamcbrewer
Last active August 23, 2023 23:04
Show Gist options
  • Save adamcbrewer/6539746 to your computer and use it in GitHub Desktop.
Save adamcbrewer/6539746 to your computer and use it in GitHub Desktop.
SASS: Helpers and mixins for using with SASS
//============================================================
// Typography
//============================================================
// An rem font-size mixin providing fallback to px
@mixin font-size($sizeValue: 1.4) {
$remValue: $sizeValue;
$pxValue: ($sizeValue * 10);
font-size: #{$pxValue}px;
font-size: #{$remValue}rem;
}
// Requires inline-block or block for proper styling
@mixin text-truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
//============================================================
// Transforms
//============================================================
@mixin transform($arguments...) {
-webkit-transform: $arguments;
-ms-transform: $arguments; // IE9
transform: $arguments;
}
@mixin transform-origin($arguments...) {
-webkit-transform-origin: $arguments;
-ms-transform-origin: $arguments; // IE9
transform-origin: $arguments;
}
@mixin rotate($arguments...) {
-webkit-transform: rotate($arguments);
-ms-transform: rotate($arguments); // IE9
transform: rotate($arguments);
}
@mixin backface-visibility ($arguments) {
-webkit-backface-visibility: $arguments;
-moz-backface-visibility: $arguments;
-ms-backface-visibility: $arguments;
-o-backface-visibility: $arguments;
backface-visibility: $arguments;
}
//============================================================
// Animations
//============================================================
@mixin transition($arguments...) {
-webkit-transition: $arguments;
transition: $arguments;
}
@mixin animation($arguments) {
-webkit-animation: $arguments;
animation: $arguments;
}
//============================================================
// Gradients
//============================================================
@mixin linear-gradient ($from, $to) {
background-color: $from;
background-image: -webkit-linear-gradient(top, $from, $to); /* Chrome 10-25, iOS 5+, Safari 5.1+ */
background-image: linear-gradient(to bottom, $from, $to); /* Chrome 26, Firefox 16+, IE 10+, Opera 12.10+ */
}
//============================================================
// Structure
//============================================================
@mixin box-sizing ($arguments) {
-webkit-box-sizing: $arguments;
-moz-box-sizing: $arguments;
-o-box-sizing: $arguments;
box-sizing: $arguments;
}
//============================================================
//
// Easing
//
// Thanks to Robert Penner for his sterling work on easing,
// and to Matthew Lein for converting these functions into
// approximated cubic-bezier functions. Respect.
//
// @see http://robertpenner.com/
// @see http://matthewlein.com/ceaser/
//
//============================================================
// Cubic
$easeInCubic : cubic-bezier(0.550, 0.055, 0.675, 0.190);
$easeOutCubic : cubic-bezier(0.215, 0.610, 0.355, 1.000);
$easeInOutCubic : cubic-bezier(0.645, 0.045, 0.355, 1.000);
// Circ
$easeInCirc : cubic-bezier(0.600, 0.040, 0.980, 0.335);
$easeOutCirc : cubic-bezier(0.075, 0.820, 0.165, 1.000);
$easeInOutCirc : cubic-bezier(0.785, 0.135, 0.150, 0.860);
// Expo
$easeInExpo : cubic-bezier(0.950, 0.050, 0.795, 0.035);
$easeOutExpo : cubic-bezier(0.190, 1.000, 0.220, 1.000);
$easeInOutExpo : cubic-bezier(1.000, 0.000, 0.000, 1.000);
// Quad
$easeInQuad : cubic-bezier(0.550, 0.085, 0.680, 0.530);
$easeOutQuad : cubic-bezier(0.250, 0.460, 0.450, 0.940);
$easeInOutQuad : cubic-bezier(0.455, 0.030, 0.515, 0.955);
// Quart
$easeInQuart : cubic-bezier(0.895, 0.030, 0.685, 0.220);
$easeOutQuart : cubic-bezier(0.165, 0.840, 0.440, 1.000);
$easeInOutQuart : cubic-bezier(0.770, 0.000, 0.175, 1.000);
// Quint
$easeInQuint : cubic-bezier(0.755, 0.050, 0.855, 0.060);
$easeOutQuint : cubic-bezier(0.230, 1.000, 0.320, 1.000);
$easeInOutQuint : cubic-bezier(0.860, 0.000, 0.070, 1.000);
// Sine
$easeInSine : cubic-bezier(0.470, 0.000, 0.745, 0.715);
$easeOutSine : cubic-bezier(0.390, 0.575, 0.565, 1.000);
$easeInOutSine : cubic-bezier(0.445, 0.050, 0.550, 0.950);
// Back
$easeInBack : cubic-bezier(0.600, -0.280, 0.735, 0.045);
$easeOutBack : cubic-bezier(0.175, 0.885, 0.320, 1.275);
$easeInOutBack : cubic-bezier(0.680, -0.550, 0.265, 1.550);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment