/*!
 * # Semantic UI - Sidebar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Copyright 2015 Contributors
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */



/*******************************
            Theme
*******************************/

@type    : 'module';
@element : 'sidebar';

@import (multiple) '../../theme.config';

/*******************************
            Sidebar
*******************************/

/* Sidebar Menu */
.ui.sidebar {
  position: fixed;
  top: 0;
  left: 0;

  backface-visibility: hidden;
  transition: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  visibility: hidden;
  -webkit-overflow-scrolling: touch;

  height: 100% !important;
  max-height: 100%;
  border-radius: 0em !important;
  margin: 0em !important;
  overflow-y: auto !important;
  z-index: @topLayer;
}

/* GPU Layers for Child Elements */
.ui.sidebar > * {
  backface-visibility: hidden;
  transform: rotateZ(0deg);
}


/*--------------
   Direction
---------------*/

.ui.left.sidebar {
  right: auto;
  left: 0px;
  transform: translate3d(-100%, 0, 0);
}
.ui.right.sidebar {
  right: 0px !important;
  left: auto !important;
  transform: translate3d(100%, 0%, 0);
}

.ui.top.sidebar,
.ui.bottom.sidebar {
  width: 100% !important;
  height: auto !important;
}
.ui.top.sidebar {
  top: 0px !important;
  bottom: auto !important;
  transform: translate3d(0, -100%, 0);
}
.ui.bottom.sidebar {
  top: auto !important;
  bottom: 0px !important;
  transform: translate3d(0, 100%, 0);
}


/*--------------
     Pushable
---------------*/

.pushable {
  height: 100%;
  overflow-x: hidden;
  padding: 0em !important;
}

/* Whole Page */
body.pushable {
  background: @canvasBackground !important;
}

/* Page Context */
.pushable:not(body) {
  transform: translate3d(0, 0, 0);
}
.pushable:not(body) > .ui.sidebar,
.pushable:not(body) > .fixed,
.pushable:not(body) > .pusher:after {
  position: absolute;
}


/*--------------
     Fixed
---------------*/

.pushable > .fixed {
  position: fixed;
  backface-visibility: hidden;

  transition: transform @duration @easing;
  will-change: transform;
  z-index: @fixedLayer;
}

/*--------------
     Page
---------------*/

.pushable > .pusher {
  position: relative;
  backface-visibility: hidden;
  overflow: hidden;
  min-height: 100%;
  transition: transform @duration @easing;
  z-index: @middleLayer;
}

body.pushable > .pusher {
  background: @pageBackground;
}

/* Pusher should inherit background from context */
.pushable > .pusher {
  background: inherit;
}

/*--------------
     Dimmer
---------------*/

.pushable > .pusher:after {
  position: fixed;
  top: 0px;
  right: 0px;
  content: '';
  background-color: @dimmerColor;
  overflow: hidden;
  opacity: 0;
  transition: @dimmerTransition;
  will-change: opacity;
  z-index: @dimmerLayer;
}

/*--------------
    Coupling
---------------*/

.ui.sidebar.menu .item {
  border-radius: 0em !important;
}

/*******************************
            States
*******************************/

/*--------------
     Dimmed
---------------*/

.pushable > .pusher.dimmed:after {
  width: 100% !important;
  height: 100% !important;
  opacity: 1 !important;
}

/*--------------
    Animating
---------------*/

.ui.animating.sidebar {
  visibility: visible;
}

/*--------------
     Visible
---------------*/

.ui.visible.sidebar {
  visibility: visible;
  transform: translate3d(0, 0, 0);
}

/* Shadow Direction */
.ui.left.visible.sidebar,
.ui.right.visible.sidebar {
  box-shadow: @horizontalBoxShadow;
}
.ui.top.visible.sidebar,
.ui.bottom.visible.sidebar {
  box-shadow: @verticalBoxShadow;
}

/* Visible On Load */
.ui.visible.left.sidebar ~ .fixed,
.ui.visible.left.sidebar ~ .pusher {
  transform: translate3d(@width, 0, 0);
}
.ui.visible.right.sidebar ~ .fixed,
.ui.visible.right.sidebar ~ .pusher {
  transform: translate3d(-@width, 0, 0);
}
.ui.visible.top.sidebar ~ .fixed,
.ui.visible.top.sidebar ~ .pusher {
  transform: translate3d(0, @height, 0);
}
.ui.visible.bottom.sidebar ~ .fixed,
.ui.visible.bottom.sidebar ~ .pusher {
  transform: translate3d(0, -@height, 0);
}

/* opposite sides visible forces content overlay */
.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed,
.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher,
.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed,
.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher {
  transform: translate3d(0, 0, 0);
}

/*--------------
       iOS
---------------*/

/*
  iOS incorrectly sizes document when content
  is presented outside of view with 2Dtranslate
*/
html.ios {
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

html.ios,
html.ios body {
  height: initial !important;
}


/*******************************
          Variations
*******************************/

/*--------------
     Width
---------------*/

/* Left / Right */
.ui[class*="very thin"].left.sidebar,
.ui[class*="very thin"].right.sidebar {
  width: @veryThinWidth;
}
.ui.thin.left.sidebar,
.ui.thin.right.sidebar {
  width: @thinWidth;
}
.ui.left.sidebar,
.ui.right.sidebar {
  width: @width;
}
.ui.wide.left.sidebar,
.ui.wide.right.sidebar {
  width: @wideWidth;
}
.ui[class*="very wide"].left.sidebar,
.ui[class*="very wide"].right.sidebar {
  width: @veryWideWidth;
}

/* Left Visible */
.ui.visible[class*="very thin"].left.sidebar ~ .fixed,
.ui.visible[class*="very thin"].left.sidebar ~ .pusher {
  transform: translate3d(@veryThinWidth, 0, 0);
}
.ui.visible.thin.left.sidebar ~ .fixed,
.ui.visible.thin.left.sidebar ~ .pusher {
  transform: translate3d(@thinWidth, 0, 0);
}
.ui.visible.wide.left.sidebar ~ .fixed,
.ui.visible.wide.left.sidebar ~ .pusher {
  transform: translate3d(@wideWidth, 0, 0);
}
.ui.visible[class*="very wide"].left.sidebar ~ .fixed,
.ui.visible[class*="very wide"].left.sidebar ~ .pusher {
  transform: translate3d(@veryWideWidth, 0, 0);
}

/* Right Visible */
.ui.visible[class*="very thin"].right.sidebar ~ .fixed,
.ui.visible[class*="very thin"].right.sidebar ~ .pusher {
  transform: translate3d(-@veryThinWidth, 0, 0);
}
.ui.visible.thin.right.sidebar ~ .fixed,
.ui.visible.thin.right.sidebar ~ .pusher {
  transform: translate3d(-@thinWidth, 0, 0);
}
.ui.visible.wide.right.sidebar ~ .fixed,
.ui.visible.wide.right.sidebar ~ .pusher {
  transform: translate3d(-@wideWidth, 0, 0);
}
.ui.visible[class*="very wide"].right.sidebar ~ .fixed,
.ui.visible[class*="very wide"].right.sidebar ~ .pusher {
  transform: translate3d(-@veryWideWidth, 0, 0);
}



/*******************************
          Animations
*******************************/

/*--------------
    Overlay
---------------*/

/* Set-up */
.ui.overlay.sidebar {
  z-index: @topLayer;
}

/* Initial */
.ui.left.overlay.sidebar {
  transform: translate3d(-100%, 0%, 0);
}
.ui.right.overlay.sidebar {
  transform: translate3d(100%, 0%, 0);
}
.ui.top.overlay.sidebar {
  transform: translate3d(0%, -100%, 0);
}
.ui.bottom.overlay.sidebar {
  transform: translate3d(0%, 100%, 0);
}

/* Animation */
.animating.ui.overlay.sidebar,
.ui.visible.overlay.sidebar {
  transition: transform @duration @easing;
}

/* End - Sidebar */
.ui.visible.left.overlay.sidebar {
  transform: translate3d(0%, 0%, 0);
}
.ui.visible.right.overlay.sidebar {
  transform: translate3d(0%, 0%, 0);
}
.ui.visible.top.overlay.sidebar {
  transform: translate3d(0%, 0%, 0);
}
.ui.visible.bottom.overlay.sidebar {
  transform: translate3d(0%, 0%, 0);
}

/* End - Pusher */
.ui.visible.overlay.sidebar ~ .fixed,
.ui.visible.overlay.sidebar ~ .pusher {
  transform: none !important;
}



/*--------------
      Push
---------------*/

/* Initial */
.ui.push.sidebar {
  transition: transform @duration @easing;
  z-index: @topLayer;
}

/* Sidebar - Initial */
.ui.left.push.sidebar {
  transform: translate3d(-100%, 0, 0);
}
.ui.right.push.sidebar {
  transform: translate3d(100%, 0, 0);
}
.ui.top.push.sidebar {
  transform: translate3d(0%, -100%, 0);
}
.ui.bottom.push.sidebar {
  transform: translate3d(0%, 100%, 0);
}

/* End */
.ui.visible.push.sidebar {
  transform: translate3d(0%, 0, 0);
}


/*--------------
    Uncover
---------------*/

/* Initial */
.ui.uncover.sidebar {
  transform: translate3d(0, 0, 0);
  z-index: @bottomLayer;
}

/* End */
.ui.visible.uncover.sidebar {
  transform: translate3d(0, 0, 0);
  transition: transform @duration @easing;
}


/*--------------
   Slide Along
---------------*/

/* Initial */
.ui.slide.along.sidebar {
  z-index: @bottomLayer;
}

/* Sidebar - Initial */
.ui.left.slide.along.sidebar {
  transform: translate3d(-50%, 0, 0);
}
.ui.right.slide.along.sidebar {
  transform: translate3d(50%, 0, 0);
}
.ui.top.slide.along.sidebar {
  transform: translate3d(0, -50%, 0);
}
.ui.bottom.slide.along.sidebar {
  transform: translate3d(0%, 50%, 0);
}

/* Animation */
.ui.animating.slide.along.sidebar {
  transition: transform @duration @easing;
}

/* End */
.ui.visible.slide.along.sidebar {
  transform: translate3d(0%, 0, 0);
}


/*--------------
   Slide Out
---------------*/

/* Initial */
.ui.slide.out.sidebar {
  z-index: @bottomLayer;
}

/* Sidebar - Initial */
.ui.left.slide.out.sidebar {
  transform: translate3d(50%, 0, 0);
}
.ui.right.slide.out.sidebar {
  transform: translate3d(-50%, 0, 0);
}
.ui.top.slide.out.sidebar {
  transform: translate3d(0%, 50%, 0);
}
.ui.bottom.slide.out.sidebar {
  transform: translate3d(0%, -50%, 0);
}

/* Animation */
.ui.animating.slide.out.sidebar {
  transition: transform @duration @easing;
}

/* End */
.ui.visible.slide.out.sidebar {
  transform: translate3d(0%, 0, 0);
}

/*--------------
   Scale Down
---------------*/

/* Initial */
.ui.scale.down.sidebar {
  transition: transform @duration @easing;
  z-index: @topLayer;
}

/* Sidebar - Initial  */
.ui.left.scale.down.sidebar {
  transform: translate3d(-100%, 0, 0);
}
.ui.right.scale.down.sidebar {
  transform: translate3d(100%, 0, 0);
}
.ui.top.scale.down.sidebar {
  transform: translate3d(0%, -100%, 0);
}
.ui.bottom.scale.down.sidebar {
  transform: translate3d(0%, 100%, 0);
}

/* Pusher - Initial */
.ui.scale.down.left.sidebar ~ .pusher {
  transform-origin: 75% 50%;
}
.ui.scale.down.right.sidebar ~ .pusher {
  transform-origin: 25% 50%;
}
.ui.scale.down.top.sidebar ~ .pusher {
  transform-origin: 50% 75%;
}
.ui.scale.down.bottom.sidebar ~ .pusher {
  transform-origin: 50% 25%;
}

/* Animation */
.ui.animating.scale.down > .visible.ui.sidebar {
  transition: transform @duration @easing;
}
.ui.visible.scale.down.sidebar ~ .pusher,
.ui.animating.scale.down.sidebar ~ .pusher {
  display: block !important;
  width: 100%;
  height: 100%;
  overflow: hidden !important;
}

/* End */
.ui.visible.scale.down.sidebar {
  transform: translate3d(0, 0, 0);
}
.ui.visible.scale.down.sidebar ~ .pusher {
  transform: scale(0.75);
}

.loadUIOverrides();