ctf-server
old server for hosting capture-the-flag
git clone https://9o.is/git/ctf-server.git
dropdowns.less
(5695B)
1 //
2 // Dropdown menus
3 // --------------------------------------------------
4
5
6 // Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
7 .dropup,
8 .dropdown {
9 position: relative;
10 }
11 .dropdown-toggle {
12 // The caret makes the toggle a bit too tall in IE7
13 *margin-bottom: -3px;
14 }
15 .dropdown-toggle:active,
16 .open .dropdown-toggle {
17 outline: 0;
18 }
19
20 // Dropdown arrow/caret
21 // --------------------
22 .caret {
23 display: inline-block;
24 width: 0;
25 height: 0;
26 vertical-align: top;
27 border-top: 4px solid @black;
28 border-right: 4px solid transparent;
29 border-left: 4px solid transparent;
30 content: "";
31 }
32
33 // Place the caret
34 .dropdown .caret {
35 margin-top: 8px;
36 margin-left: 2px;
37 }
38
39 // The dropdown menu (ul)
40 // ----------------------
41 .dropdown-menu {
42 position: absolute;
43 top: 100%;
44 left: 0;
45 z-index: @zindexDropdown;
46 display: none; // none by default, but block on "open" of the menu
47 float: left;
48 min-width: 160px;
49 padding: 5px 0;
50 margin: 2px 0 0; // override default ul
51 list-style: none;
52 background-color: @dropdownBackground;
53 border: 1px solid #ccc; // Fallback for IE7-8
54 border: 1px solid @dropdownBorder;
55 *border-right-width: 2px;
56 *border-bottom-width: 2px;
57 .border-radius(6px);
58 .box-shadow(0 5px 10px rgba(0,0,0,.2));
59 -webkit-background-clip: padding-box;
60 -moz-background-clip: padding;
61 background-clip: padding-box;
62
63 // Aligns the dropdown menu to right
64 &.pull-right {
65 right: 0;
66 left: auto;
67 }
68
69 // Dividers (basically an hr) within the dropdown
70 .divider {
71 .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);
72 }
73
74 // Links within the dropdown menu
75 > li > a {
76 display: block;
77 padding: 3px 20px;
78 clear: both;
79 font-weight: normal;
80 line-height: @baseLineHeight;
81 color: @dropdownLinkColor;
82 white-space: nowrap;
83 }
84 }
85
86 // Hover/Focus state
87 // -----------
88 .dropdown-menu > li > a:hover,
89 .dropdown-menu > li > a:focus,
90 .dropdown-submenu:hover > a,
91 .dropdown-submenu:focus > a {
92 text-decoration: none;
93 color: @dropdownLinkColorHover;
94 #gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%));
95 }
96
97 // Active state
98 // ------------
99 .dropdown-menu > .active > a,
100 .dropdown-menu > .active > a:hover,
101 .dropdown-menu > .active > a:focus {
102 color: @dropdownLinkColorActive;
103 text-decoration: none;
104 outline: 0;
105 #gradient > .vertical(@dropdownLinkBackgroundActive, darken(@dropdownLinkBackgroundActive, 5%));
106 }
107
108 // Disabled state
109 // --------------
110 // Gray out text and ensure the hover/focus state remains gray
111 .dropdown-menu > .disabled > a,
112 .dropdown-menu > .disabled > a:hover,
113 .dropdown-menu > .disabled > a:focus {
114 color: @grayLight;
115 }
116 // Nuke hover/focus effects
117 .dropdown-menu > .disabled > a:hover,
118 .dropdown-menu > .disabled > a:focus {
119 text-decoration: none;
120 background-color: transparent;
121 background-image: none; // Remove CSS gradient
122 .reset-filter();
123 cursor: default;
124 }
125
126 // Open state for the dropdown
127 // ---------------------------
128 .open {
129 // IE7's z-index only goes to the nearest positioned ancestor, which would
130 // make the menu appear below buttons that appeared later on the page
131 *z-index: @zindexDropdown;
132
133 & > .dropdown-menu {
134 display: block;
135 }
136 }
137
138 // Backdrop to catch body clicks on mobile, etc.
139 // ---------------------------
140 .dropdown-backdrop {
141 position: fixed;
142 left: 0;
143 right: 0;
144 bottom: 0;
145 top: 0;
146 z-index: @zindexDropdown - 10;
147 }
148
149 // Right aligned dropdowns
150 // ---------------------------
151 .pull-right > .dropdown-menu {
152 right: 0;
153 left: auto;
154 }
155
156 // Allow for dropdowns to go bottom up (aka, dropup-menu)
157 // ------------------------------------------------------
158 // Just add .dropup after the standard .dropdown class and you're set, bro.
159 // TODO: abstract this so that the navbar fixed styles are not placed here?
160 .dropup,
161 .navbar-fixed-bottom .dropdown {
162 // Reverse the caret
163 .caret {
164 border-top: 0;
165 border-bottom: 4px solid @black;
166 content: "";
167 }
168 // Different positioning for bottom up menu
169 .dropdown-menu {
170 top: auto;
171 bottom: 100%;
172 margin-bottom: 1px;
173 }
174 }
175
176 // Sub menus
177 // ---------------------------
178 .dropdown-submenu {
179 position: relative;
180 }
181 // Default dropdowns
182 .dropdown-submenu > .dropdown-menu {
183 top: 0;
184 left: 100%;
185 margin-top: -6px;
186 margin-left: -1px;
187 .border-radius(0 6px 6px 6px);
188 }
189 .dropdown-submenu:hover > .dropdown-menu {
190 display: block;
191 }
192
193 // Dropups
194 .dropup .dropdown-submenu > .dropdown-menu {
195 top: auto;
196 bottom: 0;
197 margin-top: 0;
198 margin-bottom: -2px;
199 .border-radius(5px 5px 5px 0);
200 }
201
202 // Caret to indicate there is a submenu
203 .dropdown-submenu > a:after {
204 display: block;
205 content: " ";
206 float: right;
207 width: 0;
208 height: 0;
209 border-color: transparent;
210 border-style: solid;
211 border-width: 5px 0 5px 5px;
212 border-left-color: darken(@dropdownBackground, 20%);
213 margin-top: 5px;
214 margin-right: -10px;
215 }
216 .dropdown-submenu:hover > a:after {
217 border-left-color: @dropdownLinkColorHover;
218 }
219
220 // Left aligned submenus
221 .dropdown-submenu.pull-left {
222 // Undo the float
223 // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.
224 float: none;
225
226 // Positioning the submenu
227 > .dropdown-menu {
228 left: -100%;
229 margin-left: 10px;
230 .border-radius(6px 0 6px 6px);
231 }
232 }
233
234 // Tweak nav headers
235 // -----------------
236 // Increase padding from 15px to 20px on sides
237 .dropdown .dropdown-menu .nav-header {
238 padding-left: 20px;
239 padding-right: 20px;
240 }
241
242 // Typeahead
243 // ---------
244 .typeahead {
245 z-index: 1051;
246 margin-top: 2px; // give it some space to breathe
247 .border-radius(@baseBorderRadius);
248 }