// Name: Nestable
// Description: Defines styles for nestable lists
//
// Component: `uk-nestable`
//
// Sub-objects: `uk-nestable-list`
// `uk-nestable-item`
// `uk-nestable-handle`
// `uk-nestable-moving`
// `uk-nestable-toggle`
// `uk-nestable-panel`
//
// Modifier: `uk-nestable-dragged`
// `uk-nestable-placeholder`
//
// States: `uk-parent`
// `uk-collapsed`
//
// Markup:
//
//
//
//
// ========================================================================
// Variables
// ========================================================================
$nestable-padding-left: 40px !default;
$nestable-item-margin: 10px !default;
$nestable-dragged-z-index: 1050 !default;
$nestable-placeholder-border: #ddd !default;
$nestable-empty-height: 30px !default;
$nestable-toggle-icon: "\f147" !default;
$nestable-toggle-collapsed-icon: "\f196" !default;
$nestable-panel-padding: 5px !default;
$nestable-panel-background: #f5f5f5 !default;
/* ========================================================================
Component: Nestable
========================================================================== */
.uk-nestable {
padding: 0;
list-style: none;
@include hook-nestable();
}
/*
* Disables the default callout shown when you touch and hold a touch target
* Currently only works in Webkit
*/
.uk-nestable a,
.uk-nestable img { -webkit-touch-callout: none; }
/* Sub-object `uk-nestable-list`
========================================================================== */
.uk-nestable-list {
margin: 0;
padding-left: $nestable-padding-left;
list-style: none;
}
/* Sub-modifier `uk-nestable-item`
========================================================================== */
/*
* 1. Deactivate browser touch actions in IE11
*/
.uk-nestable-item {
/* 1 */
touch-action: none;
@include hook-nestable-item();
}
.uk-nestable-item + .uk-nestable-item { margin-top: $nestable-item-margin; }
.uk-nestable-list:not(.uk-nestable-dragged) > .uk-nestable-item:first-child { margin-top: $nestable-item-margin; }
/* Sub-modifier `uk-nestable-dragged`
========================================================================== */
/*
* 1. Reset style
*/
.uk-nestable-dragged {
position: absolute;
z-index: $nestable-dragged-z-index;
pointer-events: none;
/* 1 */
padding-left: 0;
@include hook-nestable-dragged();
}
/* Sub-modifier `uk-nestable-placeholder`
========================================================================== */
.uk-nestable-placeholder { position: relative; }
.uk-nestable-placeholder > * { opacity: 0; }
.uk-nestable-placeholder:after {
content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
border: 1px dashed $nestable-placeholder-border;
opacity: 1;
@include hook-nestable-placeholder();
}
/* Empty List
========================================================================== */
.uk-nestable-empty {
min-height: $nestable-empty-height;
@include hook-nestable-empty();
}
/* Sub-object `uk-nestable-handle`
========================================================================== */
/*
* Deactivate browser touch actions in IE11
*/
.uk-nestable-handle { touch-action: none; }
/* Hover */
.uk-nestable-handle:hover { cursor: move; }
/* Sub-object `uk-nestable-moving`
========================================================================== */
.uk-nestable-moving,
/* Needed if moving over links or buttons */
.uk-nestable-moving * { cursor: move; }
/* Fixes dragging items over iframes */
.uk-nestable-moving iframe { pointer-events: none; }
/* [data-nestable-action='toggle']
========================================================================== */
/*
* 1. Makes text unselectable. Happens if double clicked by mistake
*/
[data-nestable-action='toggle'] {
cursor: pointer;
/* 1 */
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* Sub-object `.uk-nestable-toggle`
========================================================================== */
.uk-nestable-toggle {
display: inline-block;
visibility: hidden;
@include hook-nestable-toggle();
}
.uk-nestable-toggle:after {
content: $nestable-toggle-icon;
font-family: FontAwesome;
}
.uk-parent > :not(.uk-nestable-list) .uk-nestable-toggle { visibility: visible; }
/*
* Collapsed
*/
.uk-collapsed .uk-nestable-list { display: none; }
.uk-collapsed .uk-nestable-toggle:after { content: $nestable-toggle-collapsed-icon; }
/* Sub-object `uk-nestable-panel`
========================================================================== */
.uk-nestable-panel {
padding: $nestable-panel-padding;
background: $nestable-panel-background;
@include hook-nestable-panel();
}
// Hooks
// ========================================================================
@include hook-nestable-misc();
// @mixin hook-nestable(){}
// @mixin hook-nestable-item(){}
// @mixin hook-nestable-dragged(){}
// @mixin hook-nestable-placeholder(){}
// @mixin hook-nestable-empty(){}
// @mixin hook-nestable-handle(){}
// @mixin hook-nestable-toggle(){}
// @mixin hook-nestable-panel(){}
// @mixin hook-nestable-misc(){}