/*!
 * # Fomantic-UI - Dimmer
 * http://github.com/fomantic/Fomantic-UI/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */

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

@type    : 'module';
@element : 'dimmer';

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

/*******************************
            Dimmer
*******************************/

.dimmable:not(body) {
  position: @dimmablePosition;
}

.ui.dimmer {
  display: none;
  position: @dimmerPosition;
  top: 0 !important;
  left: 0 !important;

  width: 100%;
  height: 100%;

  text-align: @textAlign;
  vertical-align: @verticalAlign;
  padding: @padding;

  background-color: @backgroundColor;
  opacity: @hiddenOpacity;
  line-height: @lineHeight;

  animation-fill-mode: both;
  animation-duration: @duration;
  transition: @transition;

  flex-direction: column;
  align-items: center;
  justify-content: center;

  user-select: none;
  will-change: opacity;
  z-index: @zIndex;
}

/* Dimmer Content */
.ui.dimmer > .content {
  user-select: text;
  color: @textColor;
}


/* Loose Coupling */
.ui.segment > .ui.dimmer {
  border-radius: inherit !important;
}

/* Scrollbars */
.addScrollbars() when (@useCustomScrollbars) {
  .ui.dimmer:not(.inverted)::-webkit-scrollbar-track {
    background: @trackInvertedBackground;
  }
  .ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb {
    background: @thumbInvertedBackground;
  }
  .ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive {
    background: @thumbInvertedInactiveBackground;
  }
  .ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover {
    background: @thumbInvertedHoverBackground;
  }
}
.addScrollbars();

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

/* Animating */
.animating.dimmable:not(body),
.dimmed.dimmable:not(body) {
  overflow: @overflow;
}

/* Animating / Active / Visible */
.dimmed.dimmable > .ui.animating.dimmer,
.dimmed.dimmable > .ui.visible.dimmer,
.ui.active.dimmer {
  display: flex;
  opacity: @visibleOpacity;
}

/* Disabled */
.ui.disabled.dimmer {
  width: 0 !important;
  height: 0 !important;
}


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


/*--------------
    Legacy
---------------*/

/* Animating / Active / Visible */
.dimmed.dimmable > .ui.animating.legacy.dimmer,
.dimmed.dimmable > .ui.visible.legacy.dimmer,
.ui.active.legacy.dimmer {
  display: block;
}

/*--------------
    Alignment
---------------*/

.ui[class*="top aligned"].dimmer {
  justify-content: flex-start;
}
.ui[class*="bottom aligned"].dimmer {
  justify-content: flex-end;
}

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

.ui.page.dimmer {
  position: @pageDimmerPosition;
  transform-style: @transformStyle;
  perspective: @perspective;
  transform-origin: center center;
}

body.animating.in.dimmable,
body.dimmed.dimmable {
  overflow: hidden;
}

body.dimmable > .dimmer {
  position: fixed;
}

/*--------------
    Blurring
---------------*/

.blurring.dimmable > :not(.dimmer) {
  filter: @blurredStartFilter;
  transition: @blurredTransition;
}
.blurring.dimmed.dimmable > :not(.dimmer):not(.popup) {
  filter: @blurredEndFilter;
}

/* Dimmer Color */
.blurring.dimmable > .dimmer {
  background-color: @blurredBackgroundColor;
}
.blurring.dimmable > .inverted.dimmer {
  background-color: @blurredInvertedBackgroundColor;
}

/*--------------
    Aligned
---------------*/

.ui.dimmer > .top.aligned.content > * {
  vertical-align: top;
}
.ui.dimmer > .bottom.aligned.content > * {
  vertical-align: bottom;
}

/*--------------
    Shades
---------------*/

.medium.medium.medium.medium.medium.dimmer {
  background-color: @mediumBackgroundColor;
}
.light.light.light.light.light.dimmer {
  background-color: @lightBackgroundColor;
}
.very.light.light.light.light.dimmer {
  background-color: @veryLightBackgroundColor;
}

/*--------------
    Inverted
---------------*/

.ui.inverted.dimmer {
  background-color: @invertedBackgroundColor;
}
.ui.inverted.dimmer > .content,
.ui.inverted.dimmer > .content > * {
  color: @invertedTextColor;
}

/*--------------
 Inverted Shades
---------------*/

.medium.medium.medium.medium.medium.inverted.dimmer {
  background-color: @mediumInvertedBackgroundColor;
}
.light.light.light.light.light.inverted.dimmer {
  background-color: @lightInvertedBackgroundColor;
}
.very.light.light.light.light.inverted.dimmer {
  background-color: @veryLightInvertedBackgroundColor;
}

/*--------------
     Simple
---------------*/

/* Displays without javascript */
.ui.simple.dimmer {
  display: block;
  overflow: hidden;
  opacity: 0;
  width: 0;
  height: 0;
  z-index: -100;
  background-color: @simpleStartBackgroundColor;
}
.dimmed.dimmable > .ui.simple.dimmer {
  overflow: visible;
  opacity: 1;
  width: 100%;
  height: 100%;
  background-color: @simpleEndBackgroundColor;
  z-index: @simpleZIndex;
}

.ui.simple.inverted.dimmer {
  background-color: @simpleInvertedStartBackgroundColor;
}
.dimmed.dimmable > .ui.simple.inverted.dimmer {
  background-color: @simpleInvertedEndBackgroundColor;
}

/*--------------
     Partially
----------------*/

.ui[class*="top dimmer"],
.ui[class*="center dimmer"],
.ui[class*="bottom dimmer"] {
  height: auto;
}
.ui[class*="bottom dimmer"] {
  top: auto !important;
  bottom: 0;
}
.ui[class*="center dimmer"] {
  top:50% !important;
  transform: translateY(-50%);
  -webkit-transform: translateY(calc(-50% - .5px));
}

.ui.segment > .ui[class*="top dimmer"] {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.ui.segment > .ui[class*="center dimmer"] {
    border-radius: 0 !important;
}
.ui.segment > .ui[class*="bottom dimmer"] {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

.ui[class*="center dimmer"].transition[class*="fade up"].in {
  animation-name: fadeInUpCenter;
}
.ui[class*="center dimmer"].transition[class*="fade down"].in {
  animation-name: fadeInDownCenter;
}
.ui[class*="center dimmer"].transition[class*="fade up"].out {
  animation-name: fadeOutUpCenter;
}
.ui[class*="center dimmer"].transition[class*="fade down"].out {
  animation-name: fadeOutDownCenter;
}
.ui[class*="center dimmer"].bounce.transition {
  animation-name: bounceCenter;
}
@keyframes fadeInUpCenter {
  0% {
    opacity: 0;
    transform: translateY(-40%);
    -webkit-transform: translateY(calc(-40% - .5px));
  }
  100% {
    opacity: 1;
    transform: translateY(-50%);
    -webkit-transform: translateY(calc(-50% - .5px));
  }
}
@keyframes fadeInDownCenter {
  0% {
    opacity: 0;
    transform: translateY(-60%);
    -webkit-transform: translateY(calc(-60% - .5px));
  }
  100% {
    opacity: 1;
    transform: translateY(-50%);
    -webkit-transform: translateY(calc(-50% - .5px));
  }
}
@keyframes fadeOutUpCenter {
  0% {
    opacity: 1;
    transform: translateY(-50%);
    -webkit-transform: translateY(calc(-50% - .5px));
  }
  100% {
    opacity: 0;
    transform: translateY(-45%);
    -webkit-transform: translateY(calc(-45% - .5px));
  }
}
@keyframes fadeOutDownCenter {
  0% {
    opacity: 1;
    transform: translateY(-50%);
    -webkit-transform: translateY(calc(-50% - .5px));
  }
  100% {
    opacity: 0;
    transform: translateY(-55%);
    -webkit-transform: translateY(calc(-55% - .5px));
  }
}
@keyframes bounceCenter {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(-50%);
    -webkit-transform: translateY(calc(-50% - .5px));
  }
  40% {
    transform: translateY(calc(-50% - 30px));
  }
  60% {
    transform: translateY(calc(-50% - 15px));
  }
}

.loadUIOverrides();
