@use 'sass:math';

//默认设计稿的宽度
$designWidth: 3840;
//默认设计稿的高度
$designHeight: 2160;


//px转为vw的函数
@function vw($px) {
  @return math.div($px, $designWidth) * 100vw;
}

//px转为vh的函数
@function vh($px) {
  @return math.div($px, $designHeight) * 100vh;
}
// 字体大小转为vw的函数（放大1.4倍）
/// 将像素值转换为vw单位，并自动放大1.4倍
/// @param {Number} $px - 设计稿中的像素值
/// @return {String} - 转换后的vw单位值
@function font-vw($px) {
  $scaled-px: $px * 1.4;
  @return math.div($scaled-px, $designWidth) * 100vw;
}

// 字体大小转为vh的函数（放大1.4倍）
/// 将像素值转换为vh单位，并自动放大1.4倍
/// @param {Number} $px - 设计稿中的像素值
/// @return {String} - 转换后的vh单位值
@function font-vh($px) {
  $scaled-px: $px * 1.4;
  @return math.div($scaled-px, $designHeight) * 100vh;
}
// 字体大小声明mixin（默认使用vw单位）
/// 声明字体大小，自动应用1.4倍放大
/// @param {Number} $px - 设计稿中的像素值
/// @param {String} $unit - 单位类型，可选'vw'或'vh'，默认'vw'
@mixin font-size($px, $unit: vw) {
  @if $unit == vw {
    font-size: font-vw($px);
  } @else if $unit == vh {
    font-size: font-vh($px);
  } @else {
    @error "Unsupported unit: #{$unit}. Use 'vw' or 'vh'.";
  }
}
// 通用放大函数
/// 将值按指定比例放大
/// @param {Number} $value - 原始值
/// @param {Number} $factor - 放大系数，默认1.4
/// @return {Number} - 放大后的值
@function scale($value, $factor: 1.4) {
  @return $value * $factor;
}