/* ------------------------------------------------------------------------ *\
   mixins.util.align
\* ------------------------------------------------------------------------ */


/**
 * [block description]
 * @return {[type]} [description]
 */
u-align--block()
  position: relative
  transform-style: preserve-3d


/**
 * [block__content description]
 * @param  {[type]} direction =             "center" [description]
 * @return {[type]}           [description]
 */
u-align--block__content(direction = "center")
  position: absolute
  margin: 0

  if direction == "center"
    top: 50%
    left: 50%
    transform: translate3d(-50%, -50%, 0)

  else if direction == "vertical"
    transform: translateY(-50%)
    left: auto

  else if direction == "horizontal"
    transform: translateX(-50%)
    top: auto


/**
 * [flex description]
 * @return {[type]} [description]
 */
u-align--flex()
  display: flex
  align-items: center
  justify-content: center
  padding: 0


/**
 * [create description]
 * @param  {[type]} selector [description]
 * @return {[type]}          [description]
 */
u-align--create(selector)
  [{selector}~="block"]
    u-align--block()

  [{selector}~="block__content"]
    &[{selector}~="--center"]
      u-align--block__content("center")

    &[{selector}~="--vertical"]
      u-align--block__content("vertical")

    &[{selector}~="--horizontal"]
      u-align--block__content("horizontal")

    &[{selector}~="--flex"]
      u-align__target("flex")
