// Name:            Drop
// Description:     Component to position any element next to any other element.
//
// Component:       `uk-drop`
//
// Modifiers:       `uk-drop-top-*`
//                  `uk-drop-bottom-*`
//                  `uk-drop-left-*`
//                  `uk-drop-right-*`
//                  `uk-drop-stack`
//                  `uk-drop-grid`
//
// States:          `uk-open`
//
// Uses:            Animation
//
// ========================================================================


// Variables
// ========================================================================

$drop-z-index:                               $global-z-index + 20 !default;
$drop-width:                                 300px !default;
$drop-margin:                                $global-margin !default;


/* ========================================================================
   Component: Drop
 ========================================================================== */

/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 */

.uk-drop {
    /* 1 */
    display: none;
    /* 2 */
    position: absolute;
    z-index: $drop-z-index;
    /* 3 */
    box-sizing: border-box;
    width: $drop-width;
}

/* Show */
.uk-drop.uk-open { display: block; }


/* Direction / Alignment modifiers
 ========================================================================== */

/* Direction */
[class*='uk-drop-top'] { margin-top: (-$drop-margin); }
[class*='uk-drop-bottom'] { margin-top: $drop-margin; }
[class*='uk-drop-left'] { margin-left: (-$drop-margin); }
[class*='uk-drop-right'] { margin-left: $drop-margin; }


/* Grid modifiers
 ========================================================================== */

.uk-drop-stack .uk-drop-grid > * { width: 100% !important; }


// Hooks
// ========================================================================

@if(mixin-exists(hook-drop-misc)) {@include hook-drop-misc();}

// @mixin hook-drop-misc(){}