$font-family-data: (
  base: unquote("BlinkMacSystemFont,-apple-system,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Fira Sans','Droid Sans','Helvetica Neue',Helvetica,Arial,sans-serif"),
  brand: unquote("BrownPro,BlinkMacSystemFont,-apple-system,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Fira Sans','Droid Sans','Helvetica Neue',Helvetica,Arial,sans-serif"),
  monospace: unquote("Consolas,'Liberation Mono',Menlo,Courier,monospace")
);

$text-variants-data: (
  title-extralarge: (
    remToPx(2rem)
      125%
  ),
  title-large: (
    remToPx(1.5rem)
      125%
  ),
  title: (
    remToPx(1.25rem)
      125%
  ),
  title-small: (
    remToPx(1rem)
      125%
  ),
  title-tiny: (
    remToPx(1rem)
      125%
  ),
  body-large: (
    remToPx(1.125rem)
      1.5rem
  ),
  body: (
    remToPx(1rem)
      1.5rem
  ),
  body-small: (
    remToPx(0.75rem)
      1rem
  ),
  caption: (
    14px 20px
  ),
  section-header: (
    14px 24px
  )
);

@function font-family($name: base) {
  $fetched-value: map-get($font-family-data, $name);

  @if $fetched-value == null {
    @error "Font family `#{$name}` not found.";
  }

  @return $fetched-value;
}

@function font-styles($name) {
  $fetched-styles: map-get($text-variants-data, $name);

  @if $fetched-styles == null {
    @error "Font style variant `#{$name}` not found.";
  }

  @return $fetched-styles;
}

@function font-size($name) {
  @return nth(font-styles($name), 1);
}

@function line-height($name) {
  @return nth(font-styles($name), 2);
}
