1
|
// Name: Dropdown
|
2
|
// Description: Component to create dropdown menus
|
3
|
//
|
4
|
// Component: `uk-dropdown`
|
5
|
//
|
6
|
// Adopted: `uk-dropdown-nav`
|
7
|
//
|
8
|
// Modifiers: `uk-dropdown-top-*`
|
9
|
// `uk-dropdown-bottom-*`
|
10
|
// `uk-dropdown-left-*`
|
11
|
// `uk-dropdown-right-*`
|
12
|
// `uk-dropdown-stack`
|
13
|
// `uk-dropdown-grid`
|
14
|
//
|
15
|
// ========================================================================
|
16
|
|
17
|
|
18
|
// Variables
|
19
|
// ========================================================================
|
20
|
|
21
|
$dropdown-z-index: $global-z-index + 20 !default;
|
22
|
$dropdown-min-width: 200px !default;
|
23
|
$dropdown-padding: 15px !default;
|
24
|
$dropdown-background: $global-muted-background !default;
|
25
|
$dropdown-color: $global-color !default;
|
26
|
$dropdown-margin: $global-small-margin !default;
|
27
|
|
28
|
$dropdown-nav-item-color: $global-muted-color !default;
|
29
|
$dropdown-nav-item-hover-color: $global-color !default;
|
30
|
$dropdown-nav-header-color: $global-emphasis-color !default;
|
31
|
$dropdown-nav-divider-border-width: $global-border-width !default;
|
32
|
$dropdown-nav-divider-border: $global-border !default;
|
33
|
$dropdown-nav-sublist-item-color: $global-muted-color !default;
|
34
|
$dropdown-nav-sublist-item-hover-color: $global-color !default;
|
35
|
|
36
|
|
37
|
/* ========================================================================
|
38
|
Component: Dropdown
|
39
|
========================================================================== */
|
40
|
|
41
|
/*
|
42
|
* 1. Hide by default
|
43
|
* 2. Set position
|
44
|
* 3. Set a default width
|
45
|
* 4. Style
|
46
|
*/
|
47
|
|
48
|
.uk-dropdown {
|
49
|
/* 1 */
|
50
|
display: none;
|
51
|
/* 2 */
|
52
|
position: absolute;
|
53
|
z-index: $dropdown-z-index;
|
54
|
/* 3 */
|
55
|
box-sizing: border-box;
|
56
|
min-width: $dropdown-min-width;
|
57
|
/* 4 */
|
58
|
padding: $dropdown-padding;
|
59
|
background: $dropdown-background;
|
60
|
color: $dropdown-color;
|
61
|
@if(mixin-exists(hook-dropdown)) {@include hook-dropdown();}
|
62
|
}
|
63
|
|
64
|
/* Show */
|
65
|
.uk-dropdown.uk-open { display: block; }
|
66
|
|
67
|
|
68
|
/* Nav
|
69
|
* Adopts `uk-nav`
|
70
|
========================================================================== */
|
71
|
|
72
|
.uk-dropdown-nav {
|
73
|
white-space: nowrap;
|
74
|
@if(mixin-exists(hook-dropdown-nav)) {@include hook-dropdown-nav();}
|
75
|
}
|
76
|
|
77
|
/*
|
78
|
* Items
|
79
|
*/
|
80
|
|
81
|
.uk-dropdown-nav > li > a {
|
82
|
color: $dropdown-nav-item-color;
|
83
|
@if(mixin-exists(hook-dropdown-nav-item)) {@include hook-dropdown-nav-item();}
|
84
|
}
|
85
|
|
86
|
/* Hover + Focus + Active */
|
87
|
.uk-dropdown-nav > li > a:hover,
|
88
|
.uk-dropdown-nav > li > a:focus,
|
89
|
.uk-dropdown-nav > li.uk-active > a {
|
90
|
color: $dropdown-nav-item-hover-color;
|
91
|
@if(mixin-exists(hook-dropdown-nav-item-hover)) {@include hook-dropdown-nav-item-hover();}
|
92
|
}
|
93
|
|
94
|
/*
|
95
|
* Header
|
96
|
*/
|
97
|
|
98
|
.uk-dropdown-nav .uk-nav-header {
|
99
|
color: $dropdown-nav-header-color;
|
100
|
@if(mixin-exists(hook-dropdown-nav-header)) {@include hook-dropdown-nav-header();}
|
101
|
}
|
102
|
|
103
|
/*
|
104
|
* Divider
|
105
|
*/
|
106
|
|
107
|
.uk-dropdown-nav .uk-nav-divider {
|
108
|
border-top: $dropdown-nav-divider-border-width solid $dropdown-nav-divider-border;
|
109
|
@if(mixin-exists(hook-dropdown-nav-divider)) {@include hook-dropdown-nav-divider();}
|
110
|
}
|
111
|
|
112
|
/*
|
113
|
* Sublists
|
114
|
*/
|
115
|
|
116
|
.uk-dropdown-nav .uk-nav-sub a { color: $dropdown-nav-sublist-item-color; }
|
117
|
|
118
|
.uk-dropdown-nav .uk-nav-sub a:hover,
|
119
|
.uk-dropdown-nav .uk-nav-sub a:focus { color: $dropdown-nav-sublist-item-hover-color; }
|
120
|
|
121
|
|
122
|
/* Direction / Alignment modifiers
|
123
|
========================================================================== */
|
124
|
|
125
|
/* Direction */
|
126
|
[class*='uk-dropdown-top'] { margin-top: (-$dropdown-margin); }
|
127
|
[class*='uk-dropdown-bottom'] { margin-top: $dropdown-margin; }
|
128
|
[class*='uk-dropdown-left'] { margin-left: (-$dropdown-margin); }
|
129
|
[class*='uk-dropdown-right'] { margin-left: $dropdown-margin; }
|
130
|
|
131
|
|
132
|
/* Grid modifiers
|
133
|
========================================================================== */
|
134
|
|
135
|
.uk-dropdown-stack .uk-dropdown-grid > * { width: 100% !important; }
|
136
|
|
137
|
|
138
|
|
139
|
// Hooks
|
140
|
// ========================================================================
|
141
|
|
142
|
@if(mixin-exists(hook-dropdown-misc)) {@include hook-dropdown-misc();}
|
143
|
|
144
|
// @mixin hook-dropdown(){}
|
145
|
// @mixin hook-dropdown-nav(){}
|
146
|
// @mixin hook-dropdown-nav-item(){}
|
147
|
// @mixin hook-dropdown-nav-item-hover(){}
|
148
|
// @mixin hook-dropdown-nav-header(){}
|
149
|
// @mixin hook-dropdown-nav-divider(){}
|
150
|
// @mixin hook-dropdown-misc(){}
|