# 14islands/14islands-com

Fetching contributors…
Cannot retrieve contributors at this time
113 lines (97 sloc) 2.95 KB
 //============================================================ // // 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); @function pi() { @return 3.14159265359; } @function pow(\$number, \$exp) { \$value: 1; @if \$exp > 0 { @for \$i from 1 through \$exp { \$value: \$value * \$number; } } @else if \$exp < 0 { @for \$i from 1 through -\$exp { \$value: \$value / \$number; } } @return \$value; } @function fact(\$number) { \$value: 1; @if \$number > 0 { @for \$i from 1 through \$number { \$value: \$value * \$i; } } @return \$value; } @function rad(\$angle) { \$unit: unit(\$angle); \$unitless: \$angle / (\$angle * 0 + 1); // If the angle has 'deg' as unit, convert to radians. @if \$unit == deg { \$unitless: \$unitless / 180 * pi(); } @return \$unitless; } @function sin(\$angle) { \$sin: 0; \$angle: rad(\$angle); // Iterate a bunch of times. @for \$i from 0 through 10 { \$sin: \$sin + pow(-1, \$i) * pow(\$angle, (2 * \$i + 1)) / fact(2 * \$i + 1); } @return \$sin; } @function cos(\$angle) { \$cos: 0; \$angle: rad(\$angle); // Iterate a bunch of times. @for \$i from 0 through 10 { \$cos: \$cos + pow(-1, \$i) * pow(\$angle, 2 * \$i) / fact(2 * \$i); } @return \$cos; }