////
/// (c) hidoo | MIT License
/// @group Default settings
////

@use "sass:math";

/// Default font family.
/// |Name|Description|
/// |:--|:--|
/// |`system-ui`|Use system ui font as a primary font family in macOS.|
/// |`-apple-system`|Use "San Francisco" as a secondary font family in macOS.|
/// |`BlinkMacSystemFont`|Use "San Francisco" as a primary font family in chrome on macOS.|
/// |`Helvetica Neue`|Use as a fallback font family in macOS.|
/// |`Arial`|Use as a primary font family in Windows.|
/// |`Hiragino Sans`|Use as a primary japanese font family in macOS.|
/// |`Hiragino Kaku Gothic ProN`|Use as a fallback of Hiragino Sans in macOS.|
/// |`Noto Sans JP`|Use as a primary japanese font family in Windows.|
/// |`BIZ UDPGothic`|Use as a secondary japanese font family in Windows.|
/// |`Meiryo`|Use as a fallback japanese font family in Windows.|
/// @type List
///
$family: (
  system-ui,
  -apple-system,
  BlinkMacSystemFont,
  "Helvetica Neue",
  Arial,
  "Hiragino Sans",
  "Hiragino Kaku Gothic ProN",
  "Noto Sans JP",
  "BIZ UDPGothic",
  Meiryo,
  sans-serif
) !default;

/// Default monospace font family.
/// |Name|Description|
/// |:--|:--|
/// |`Consolas`|Use as a primary monospace font family in Windows. (Use it if installed in macOS)|
/// |`Monaco`|Use as a primary monospace font family in macOS.|
/// |`Menlo`|Use as a secondary monospace font family in macOS.|
/// |`Courier`|Use as a secondary monospace font family in Windows.|
/// @type List
///
$family-monospace: (
  // stylelint-disable value-keyword-case
  Consolas,
  Monaco,
  Menlo,
  Courier,
  monospace // stylelint-enable value-keyword-case
) !default;

/// Default font family presets
/// @type Map
/// @prop {String} sans-serif [$family] - Sans-serif font family
/// @prop {String} monospace [$family-monospace] - Monospace font family
///
$family-presets: (
  "sans-serif": $family,
  "monospace": $family-monospace
) !default;

/// Default font size.
/// (default: `14px`)
/// @type Number
///
$size: 14px !default;

/// Default base font size.
/// (default: `16px`)
/// this use if `$enable-relative-size` is `true`
/// @type Number
///
$base-size: 16px !default;

/// Default font size presets
/// @type Map
/// @prop {Number} xsmall [0.625] - <span style="font-size: 0.625rem;">Lorem ipsum dolor sit amet.</span> (= `10px`)
/// @prop {Number} small [0.75] - <span style="font-size: 0.75rem;">Lorem ipsum dolor sit amet.</span> (= `12px`)
/// @prop {Number} medium [0.875] - s<span style="font-size: 0.875rem;">Lorem ipsum dolor sit amet.</span> (= `14px`)
/// @prop {Number} large [1] - <span style="font-size: 1rem;">Lorem ipsum dolor sit amet.</span> (= `16px`)
/// @prop {Number} xlarge [1.125] - <span style="font-size: 1.125rem;">Lorem ipsum dolor sit amet.</span> (= `18px`)
/// @prop {Number} 2xlarge [1.25] - <span style="font-size: 1.25rem;">Lorem ipsum dolor sit amet.</span> (= `20px`)
/// @prop {Number} 3xlarge [1.375] - <span style="font-size: 1.375rem;">Lorem ipsum dolor sit amet.</span> (= `22px`)
/// @prop {Number} 4xlarge [1.5] - <span style="font-size: 1.5rem;">Lorem ipsum dolor sit amet.</span> (= `24px`)
///
$size-presets: (
  "xsmall": math.div(10px, $base-size),
  "small": math.div(12px, $base-size),
  "medium": math.div($size, $base-size),
  "large": math.div(16px, $base-size),
  "xlarge": math.div(18px, $base-size),
  "2xlarge": math.div(20px, $base-size),
  "3xlarge": math.div(22px, $base-size),
  "4xlarge": math.div(24px, $base-size)
) !default;

/// Default font weight.
/// (default: `400`)
/// @type Number
///
$weight: 400 !default;

/// Font weight presets
/// @type Map
/// @prop {Number} thin [100] - <span style="font-weight: 100;">Lorem ipsum dolor sit amet.</span> (= `100`)
/// @prop {Number} extra-light [200] - <span style="font-weight: 200;">Lorem ipsum dolor sit amet.</span> (= `200`)
/// @prop {Number} light [300] - <span style="font-weight: 300;">Lorem ipsum dolor sit amet.</span> (= `300`)
/// @prop {Number} regular [400] - <span style="font-weight: 400;">Lorem ipsum dolor sit amet.</span> (= `400`)
/// @prop {Number} medium [500] - <span style="font-weight: 500;">Lorem ipsum dolor sit amet.</span> (= `500`)
/// @prop {Number} semi-bold [600] - <span style="font-weight: 600;">Lorem ipsum dolor sit amet.</span> (= `600`)
/// @prop {Number} bold [700] - <span style="font-weight: 700;">Lorem ipsum dolor sit amet.</span> (= `700`)
/// @prop {Number} extra-bold [800] - <span style="font-weight: 800;">Lorem ipsum dolor sit amet.</span> (= `800`)
/// @prop {Number} black [900] - <span style="font-weight: 900;">Lorem ipsum dolor sit amet.</span> (= `900`)
///
$weight-presets: (
  "thin": 100,
  "extra-light": 200,
  "light": 300,
  "regular": 400,
  "medium": 500,
  "semi-bold": 600,
  "bold": 700,
  "extra-bold": 800,
  "black": 900
) !default;

/// Default font variant
/// (default: (common-ligatures))
/// @type List
///
$variant: (common-ligatures) !default;

/// Default font feature settings
/// (default: ('"palt"' 1))
/// @type List
///
$feature-settings: ('"palt"' 1) !default;

/// Default font smoothing
/// (webkit: antialiased, moz-osx: grayscale)
/// @type Map
/// @prop {Number} webkit [antialiased] - For browsers macOS
/// @prop {Number} moz-osx [grayscale] - For firefox on macOS
///
$smoothing: (
  "webkit": antialiased,
  "moz-osx": grayscale
) !default;

/// enable relative font size specify.
/// override base size settings of font
/// (default: `true`)
/// @type Boolean
///
$enable-relative-size: true !default;

/// Default list of units that applying font
/// @access private
/// @type List
///
$applying-units: (
  "icon",
  "text",
  "pict",
  "button",
  "table",
  "document",
  "input",
  "toggle",
  "select"
) !default;
