/* ------------------------------------------------------------------------ *\
   mixins.element.text
\* ------------------------------------------------------------------------ */


/**
 * [text description]
 * @return {[type]} [description]
 */
e-text()
  font-family: nix.typography.family
  font-weight: nix.typography.weight
  color: nix.skin.color.black
  line-height: nix.typography.line-height
  -moz-osx-font-smoothing: grayscale
  -webkit-font-smoothing: antialiased
  text-rendering: optimizeLegibility


/**
 * [ellipsis description]
 * @param  {[type]}  no-wrap =             true [description]
 * @return {Boolean}         [description]
 */
e-text--ellipsis(no-wrap = true)
  overflow: hidden
  text-overflow: ellipsis
  if no-wrap
    white-space: nowrap


/**
 * [hide description]
 * @return {[type]} [description]
 */
e-text--hide()
  overflow: hidden
  text-indent: 110%
  white-space: nowrap


/**
 * [direction description]
 * @param  {[type]} direction [description]
 * @return {[type]}           [description]
 */
e-text--direction(direction)
  text-align: direction


/**
 * [mono description]
 * @return {[type]} [description]
 */
e-text--mono()
  font-family: nix.text.family.mono


/**
 * [highlight description]
 * @return {[type]} [description]
 */
e-text--highlight()
  u-padding(nix.sizes.sm nix.sizes.xs  nix.sizes.xs)
  margin: 0 -(nix.sizes.xxs)
  background-color: saturate(nix.skin.color.selection, 30%)
  color: nix.colors.black


/**
 * [quiet description]
 * @return {[type]} [description]
 */
e-text--quiet()
  color: nix.skin.color.default


/**
 * [loud description]
 * @return {[type]} [description]
 */
e-text--loud()
  font-weight: nix.text.font.weight--heavy


/**
 * [help description]
 * @return {[type]} [description]
 */
e-text--help()
  cursor: help
  border-bottom: 1px dashed nix.skin.color.gray--dark


/**
 * [xxxl description]
 * @return {[type]} [description]
 */
e-text--size--xxxl()
  font-size: nix.text.font.size * 4


/**
 * [xxl description]
 * @return {[type]} [description]
 */
e-text--size--xxl()
  font-size: nix.text.font.size * 3


/**
 * [xl description]
 * @return {[type]} [description]
 */
e-text--size--xl()
  font-size: nix.text.font.size * 2


/**
 * [lg description]
 * @return {[type]} [description]
 */
e-text--size--lg()
  font-size: nix.text.font.size * 1.5


/**
 * [md description]
 * @return {[type]} [description]
 */
e-text--size--md()
  font-size: nix.text.font.size


/**
 * [sm description]
 * @return {[type]} [description]
 */
e-text--size--sm()
  font-size: nix.text.font.size * .9


/**
 * [xs description]
 * @return {[type]} [description]
 */
e-text--size--xs()
  font-size: nix.text.font.size * .7


/**
 * [xs description]
 * @return {[type]} [description]
 */
e-text--size--xxs()
  font-size: nix.text.font.size * .6


/**
 * [xs description]
 * @return {[type]} [description]
 */
e-text--size--xxxs()
  font-size: nix.text.font.size * .5


/**
 * [paragraph description]
 * @return {[type]} [description]
 */
e-text--paragraph()
  display: block
  padding: nix.sizes.sm 0
  margin: 0
  font-style: normal


/**
 * [code description]
 * @return {[type]} [description]
 */
e-text--code()
  e-text--highlight()
  display: inline
  background-color: nix.skin.color.gray--light
  font-family: nix.text.family.mono
  font-weight: nix.text.font.weight


/**
 * [multiline description]
 * @return {[type]} [description]
 */
e-text--code--multiline()
  display: block
  white-space: pre
  padding: nix.sizes.sm nix.sizes.md
  overflow-x: auto
  border-radius: nix.borders.radius


/**
 * [keys description]
 * @return {[type]} [description]
 */
e-text--keyboard-keys()
  e-text--code()
  background-color: nix.skin.color.primary
  color: nix.skin.color.white
  border-radius: 4px
  border-bottom: 2px solid darken(nix.skin.color.primary, 20%)


/**
 * [quotation description]
 * @return {[type]} [description]
 */
e-text--quotation()
  display: block
  margin: 0
  padding: nix.sizes.md nix.sizes.lg
  border-left: 5px solid nix.skin.color.gray
  font-family: nix.text.family.primary


/**
 * [quotation__body description]
 * @return {[type]} [description]
 */
e-text--quotation__body()
  e-text--paragraph()
  font-size: nix.text.font.size * 1.3


/**
 * [quotation__footer description]
 * @return {[type]} [description]
 */
e-text--quotation__footer()
  e-text--paragraph()
  e-text--quiet()
  font-style: italic


/**
 * [create description]
 * @param  {[type]} selector [description]
 * @return {[type]}          [description]
 */
e-text--create(selector)
  for size in nix.text.sizes
    [{selector}~=\"--{size}\"]
      font-size: nix.text.sizes[size]
