//--- demand methods --- //

@function to-string($value) {
  @return inspect($value);
}

/// Replace `$search` with `$replace` in `$string`
/// @author Hugo Giraudel
/// @param {String} $string - Initial string
/// @param {String} $search - Substring to replace
/// @param {String} $replace ('') - New value
/// @return {String} - Updated string
@function str-replace($string, $search, $replace: '') {
  $index: str-index($string, $search);

  @if $index {
    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
  }

  @return $string;
}


/* HELPER */
 $fontSizeStart: 0.1;
 $fontSizeEnd  : 6;
 $fontUnit: 'rem';

 @each $breakpoint in map-keys($grid-breakpoints) 
 {
	@include media-breakpoint-up($breakpoint) 
	{
		$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
		$i: $fontSizeStart;
		@while $i <= $fontSizeEnd
		{
		   $iSafe: str-replace(to-string($i), '.', '_');
		   
		   .fs#{$infix}-#{$iSafe}
		   {
			   font-size: #{$i}#{$fontUnit};
		   }
		   
		   $i: $i + 0.1;
		}
	
	}
}