|
7 | 7 | *
|
8 | 8 | * @author Cédric Andrietti
|
9 | 9 | *
|
10 |
| - * @param $min-size -> Minimal display size (mobile) |
11 |
| - * @param $max-size -> Maximal display size (Desktop) |
12 |
| - * @param $fluid-breakpoint-start -> Start fluid after this value |
13 |
| - * @param $fluid-breakpoint-end -> End fluid after this value - To be defined with designer |
| 10 | + * @param $min -> Minimal display size (mobile) |
| 11 | + * @param $max -> Maximal display size (Desktop) |
| 12 | + * @param $start -> Start breakpoint |
| 13 | + * @param $end -> End breakpoint |
14 | 14 | *
|
15 | 15 | * Examples :
|
16 | 16 | *
|
17 | 17 | * h1 {
|
18 |
| - * font-size: #{fluid-size(58px, 156px)}; |
| 18 | + * font-size: #{fluid-size(58px, 156px, sm, md)}; |
19 | 19 | * line-height: #{fluid-size(1.05, 1.2)};
|
20 | 20 | * }
|
21 | 21 | *
|
22 | 22 | */
|
23 | 23 |
|
| 24 | +@use "sass:map"; |
24 | 25 | @use "sass:math";
|
25 | 26 |
|
26 |
| -@function fluid-size($min-size, $max-size, $fluid-breakpoint-start: 375, $fluid-breakpoint-end: 1440) { |
27 |
| - $default_scale_factor : 1; |
28 |
| - $view_port_width_offset : math.div($fluid-breakpoint-start, 100) * 1px; |
29 |
| - $linear_factor : 100 * math.div(( $max-size - $min-size ), ( $fluid-breakpoint-end - $fluid-breakpoint-start )); |
30 |
| - $linear_factor_scaled : strip-units($linear_factor * $default_scale_factor); |
31 |
| - $fluid_target_font_size : #{$min-size}#{" + ((1vw - "}#{$view_port_width_offset}#{") * "}#{$linear_factor_scaled}#{")"}; |
| 27 | +@function fluid-size($min, $max, $start: xs, $end: sm) { |
| 28 | + $start: math.div(map.get($breakpoints, $start), 100); |
| 29 | + $end: math.div(map.get($breakpoints, $end), 100); |
32 | 30 |
|
33 |
| - @return clamp( |
34 |
| - #{$min-size}, |
35 |
| - #{$fluid_target_font_size}, |
36 |
| - #{$max-size} |
37 |
| - ); |
| 31 | + @return clamp(#{$min}, #{$min} + (1vw - #{$start}px) / #{$end - $start} * #{strip-units($max - $min)}, #{$max}); |
38 | 32 | }
|
0 commit comments