From f0f84513f8efe533b6ee670a6f1a0c074387b2ec Mon Sep 17 00:00:00 2001 From: Volpeon Date: Wed, 13 Aug 2025 12:01:46 +0200 Subject: Make use of SASS modules --- src/_easing.scss | 206 +++++++++++++++++++++++++++---------------------------- 1 file changed, 103 insertions(+), 103 deletions(-) (limited to 'src/_easing.scss') diff --git a/src/_easing.scss b/src/_easing.scss index 6d66ea7..939eda2 100644 --- a/src/_easing.scss +++ b/src/_easing.scss @@ -55,62 +55,62 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function cubic-bezier($x1, $y1, $x2, $y2, $x) { - // - // Cover simple cases - // + // + // Cover simple cases + // - @if ($x1 == $y1) and ($x2 == $y2) { - @return $x; - } - @if $x == 0 { - @return 0; - } - @if $x == 1 { - @return 1; - } + @if ($x1 == $y1) and ($x2 == $y2) { + @return $x; + } + @if $x == 0 { + @return 0; + } + @if $x == 1 { + @return 1; + } - // - // Generate samples - // + // + // Generate samples + // - $sample-pool-key: $x1 + '_' + $x2; + $sample-pool-key: $x1 + '_' + $x2; - @if not map.has-key($cubic-bezier-sample-pool, $sample-pool-key) { - $samples: (); + @if not map.has-key($cubic-bezier-sample-pool, $sample-pool-key) { + $samples: (); - @for $i from 0 through $cubic-bezier-sample-pool-size { - $samples: list.append($samples, cubic-bezier-func($x1, $x2, math.div($i, $cubic-bezier-sample-pool-size))); - } + @for $i from 0 through $cubic-bezier-sample-pool-size { + $samples: list.append($samples, cubic-bezier-func($x1, $x2, math.div($i, $cubic-bezier-sample-pool-size))); + } - $cubic-bezier-sample-pool: map.merge($cubic-bezier-sample-pool, ($sample-pool-key: $samples)) !global; - } + $cubic-bezier-sample-pool: map.merge($cubic-bezier-sample-pool, ($sample-pool-key: $samples)) !global; + } - // - // Calculate cubic bezier - // + // + // Calculate cubic bezier + // - @return cubic-bezier-func($y1, $y2, cubic-bezier-t-for-x($x1, $x2, $x)); + @return cubic-bezier-func($y1, $y2, cubic-bezier-t-for-x($x1, $x2, $x)); } /// /// @access private /// @function cubic-bezier-func-a($p1, $p2) { - @return 1 - 3 * $p2 + 3 * $p1; + @return 1 - 3 * $p2 + 3 * $p1; } /// /// @access private /// @function cubic-bezier-func-b($p1, $p2) { - @return 3 * $p2 - 6 * $p1; + @return 3 * $p2 - 6 * $p1; } /// /// @access private /// @function cubic-bezier-func-c($p1) { - @return 3 * $p1; + @return 3 * $p1; } /// @@ -119,7 +119,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @access private /// @function cubic-bezier-func($p1, $p2, $t) { - @return ((cubic-bezier-func-a($p1, $p2) * $t + cubic-bezier-func-b($p1, $p2)) * $t + cubic-bezier-func-c($p1)) * $t; + @return ((cubic-bezier-func-a($p1, $p2) * $t + cubic-bezier-func-b($p1, $p2)) * $t + cubic-bezier-func-c($p1)) * $t; } /// @@ -128,7 +128,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @access private /// @function cubic-bezier-func-slope($p1, $p2, $t) { - @return 3 * cubic-bezier-func-a($p1, $p2) * $t * $t + 2 * cubic-bezier-func-b($p1, $p2) * $t + cubic-bezier-func-c($p1); + @return 3 * cubic-bezier-func-a($p1, $p2) * $t * $t + 2 * cubic-bezier-func-b($p1, $p2) * $t + cubic-bezier-func-c($p1); } /// @@ -137,18 +137,18 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @access private /// @function cubic-bezier-newton-raphson($x1, $x2, $x, $t) { - @for $i from 1 through $cubic-bezier-newton-iters { - $cur-slope: cubic-bezier-func-slope($x1, $x2, $t); + @for $i from 1 through $cubic-bezier-newton-iters { + $cur-slope: cubic-bezier-func-slope($x1, $x2, $t); - @if $cur-slope == 0 { - @return $t; - } + @if $cur-slope == 0 { + @return $t; + } - $cur-x: cubic-bezier-func($x1, $x2, $t) - $x; - $t: $t - math.div($cur-x, $cur-slope); - } + $cur-x: cubic-bezier-func($x1, $x2, $t) - $x; + $t: $t - math.div($cur-x, $cur-slope); + } - @return $t; + @return $t; } /// @@ -157,26 +157,26 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @access private /// @function cubic-bezier-binary-subdivide($x1, $x2, $x, $a, $b) { - $cur-x: 0; - $cur-t: 0; - $i: 0; + $cur-x: 0; + $cur-t: 0; + $i: 0; - @while $i < $cubic-bezier-subdiv-max-iters { - $cur-t: $a + ($b - $a) / 2; - $cur-x: cubic-bezier-func($x1, $x2, $cur-t) - $x; + @while $i < $cubic-bezier-subdiv-max-iters { + $cur-t: $a + ($b - $a) / 2; + $cur-x: cubic-bezier-func($x1, $x2, $cur-t) - $x; - @if $cur-x > 0 { - $b: $cur-t; - } @else { - $a: $cur-t; - } + @if $cur-x > 0 { + $b: $cur-t; + } @else { + $a: $cur-t; + } - @if math.abs($cur-x) < $cubic-bezier-subdiv-precision { - @return $cur-t; - } - } + @if math.abs($cur-x) < $cubic-bezier-subdiv-precision { + @return $cur-t; + } + } - @return $cur-t; + @return $cur-t; } /// @@ -185,30 +185,30 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @access private /// @function cubic-bezier-t-for-x($x1, $x2, $x) { - $sample-pool-key: $x1 + '_' + $x2; - $samples: map.get($cubic-bezier-sample-pool, $sample-pool-key); + $sample-pool-key: $x1 + '_' + $x2; + $samples: map.get($cubic-bezier-sample-pool, $sample-pool-key); - $intv-start: 0; - $cur-sample: 1; - $last-sample: $cubic-bezier-sample-pool-size; + $intv-start: 0; + $cur-sample: 1; + $last-sample: $cubic-bezier-sample-pool-size; - @while ($cur-sample != $last-sample) and (list.nth($samples, $cur-sample) <= $x) { - $intv-start: $intv-start + math.div(1, $cubic-bezier-sample-pool-size); - $cur-sample: $cur-sample + 1; - } - $cur-sample: $cur-sample - 1; + @while ($cur-sample != $last-sample) and (list.nth($samples, $cur-sample) <= $x) { + $intv-start: $intv-start + math.div(1, $cubic-bezier-sample-pool-size); + $cur-sample: $cur-sample + 1; + } + $cur-sample: $cur-sample - 1; - $dist: math.div($x - list.nth($samples, $cur-sample), list.nth($samples, $cur-sample + 1) - list.nth($samples, $cur-sample)); - $guess-t: $intv-start + math.div($dist, $cubic-bezier-sample-pool-size); + $dist: math.div($x - list.nth($samples, $cur-sample), list.nth($samples, $cur-sample + 1) - list.nth($samples, $cur-sample)); + $guess-t: $intv-start + math.div($dist, $cubic-bezier-sample-pool-size); - $init-slope: cubic-bezier-func-slope($x1, $x2, $guess-t); - @if $init-slope >= $cubic-bezier-newton-min-slope { - @return cubic-bezier-newton-raphson($x1, $x2, $x, $guess-t); - } @else if $init-slope == 0 { - @return $guess-t; - } @else { - @return cubic-bezier-binary-subdivide($x1, $x2, $x, $intv-start, $intv-start + 1 / $cubic-bezier-sample-pool-size); - } + $init-slope: cubic-bezier-func-slope($x1, $x2, $guess-t); + @if $init-slope >= $cubic-bezier-newton-min-slope { + @return cubic-bezier-newton-raphson($x1, $x2, $x, $guess-t); + } @else if $init-slope == 0 { + @return $guess-t; + } @else { + @return cubic-bezier-binary-subdivide($x1, $x2, $x, $intv-start, $intv-start + 1 / $cubic-bezier-sample-pool-size); + } } /// @@ -219,7 +219,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function linear($x) { - @return $x; + @return $x; } /// @@ -230,7 +230,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease($x) { - @return cubic-bezier(.25, .1, .25, 1, $x); + @return cubic-bezier(.25, .1, .25, 1, $x); } /// @@ -241,7 +241,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in($x) { - @return cubic-bezier(.42, 0, 1, 1, $x); + @return cubic-bezier(.42, 0, 1, 1, $x); } /// @@ -252,7 +252,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-out($x) { - @return cubic-bezier(0, 0, .58, 1, $x); + @return cubic-bezier(0, 0, .58, 1, $x); } /// @@ -263,7 +263,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-out($x) { - @return cubic-bezier(.42, 0, .58, 1, $x); + @return cubic-bezier(.42, 0, .58, 1, $x); } /// @@ -274,7 +274,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-sine($x) { - @return cubic-bezier(.47, 0, .745, .715, $x); + @return cubic-bezier(.47, 0, .745, .715, $x); } /// @@ -285,7 +285,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-out-sine($x) { - @return cubic-bezier(.39, .575, .565, 1, $x); + @return cubic-bezier(.39, .575, .565, 1, $x); } /// @@ -296,7 +296,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-out-sine($x) { - @return cubic-bezier(.445, .05, .55, .95, $x); + @return cubic-bezier(.445, .05, .55, .95, $x); } /// @@ -307,7 +307,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-quad($x) { - @return cubic-bezier(.55, .085, .68, .53, $x); + @return cubic-bezier(.55, .085, .68, .53, $x); } /// @@ -318,7 +318,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-out-quad($x) { - @return cubic-bezier(.25, .46, .45, .94, $x); + @return cubic-bezier(.25, .46, .45, .94, $x); } /// @@ -329,7 +329,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-out-quad($x) { - @return cubic-bezier(.455, .03, .515, .955, $x); + @return cubic-bezier(.455, .03, .515, .955, $x); } /// @@ -340,7 +340,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-cubic($x) { - @return cubic-bezier(.55, .055, .675, .19, $x); + @return cubic-bezier(.55, .055, .675, .19, $x); } /// @@ -351,7 +351,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-out-cubic($x) { - @return cubic-bezier(.215, .61, .355, 1, $x); + @return cubic-bezier(.215, .61, .355, 1, $x); } /// @@ -362,7 +362,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-out-cubic($x) { - @return cubic-bezier(.645, .045, .355, 1, $x); + @return cubic-bezier(.645, .045, .355, 1, $x); } /// @@ -373,7 +373,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-quart($x) { - @return cubic-bezier(.895, .03, .685, .22, $x); + @return cubic-bezier(.895, .03, .685, .22, $x); } /// @@ -384,7 +384,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-out-quart($x) { - @return cubic-bezier(.165, .84, .44, 1, $x); + @return cubic-bezier(.165, .84, .44, 1, $x); } /// @@ -395,7 +395,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-out-quart($x) { - @return cubic-bezier(.77, 0, .175, 1, $x); + @return cubic-bezier(.77, 0, .175, 1, $x); } /// @@ -406,7 +406,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-quint($x) { - @return cubic-bezier(.755, .05, .855, .06, $x); + @return cubic-bezier(.755, .05, .855, .06, $x); } /// @@ -417,7 +417,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-out-quint($x) { - @return cubic-bezier(.23, 1, .32, 1, $x); + @return cubic-bezier(.23, 1, .32, 1, $x); } /// @@ -428,7 +428,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-out-quint($x) { - @return cubic-bezier(.86, 0, .07, 1, $x); + @return cubic-bezier(.86, 0, .07, 1, $x); } /// @@ -439,7 +439,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-expo($x) { - @return cubic-bezier(.95, .05, .795, .035, $x); + @return cubic-bezier(.95, .05, .795, .035, $x); } /// @@ -450,7 +450,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-out-expo($x) { - @return cubic-bezier(.19, 1, .22, 1, $x); + @return cubic-bezier(.19, 1, .22, 1, $x); } /// @@ -461,7 +461,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-out-expo($x) { - @return cubic-bezier(1, 0, 0, 1, $x); + @return cubic-bezier(1, 0, 0, 1, $x); } /// @@ -472,7 +472,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-circ($x) { - @return cubic-bezier(.6, .04, .98, .335, $x); + @return cubic-bezier(.6, .04, .98, .335, $x); } /// @@ -483,7 +483,7 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-out-circ($x) { - @return cubic-bezier(.075, .82, .165, 1, $x); + @return cubic-bezier(.075, .82, .165, 1, $x); } /// @@ -494,5 +494,5 @@ $cubic-bezier-subdiv-max-iters: 10 !default; /// @return {number} /// @function ease-in-out-circ($x) { - @return cubic-bezier(.785, .135, .15, .86, $x); + @return cubic-bezier(.785, .135, .15, .86, $x); } -- cgit v1.2.3-70-g09d2