dropdown.less 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. /*
  2. * Component: Dropdown menus
  3. * -------------------------
  4. */
  5. /*Dropdowns in general*/
  6. .dropdown-menu {
  7. border:none;
  8. > li > a {
  9. /*color: #777;*/
  10. }
  11. > li > a > .glyphicon,
  12. > li > a > .fa,
  13. > li > a > .ion {
  14. margin-right: 10px;
  15. }
  16. > li > a:hover {
  17. background-color: lighten(@gray, 5%);
  18. color: #333;
  19. }
  20. > .divider {
  21. background-color: #eee;
  22. }
  23. }
  24. //Navbar custom dropdown menu
  25. .navbar-nav > .notifications-menu,
  26. .navbar-nav > .messages-menu,
  27. .navbar-nav > .tasks-menu {
  28. //fix width and padding
  29. > .dropdown-menu {
  30. > li {
  31. position: relative;
  32. }
  33. width: 280px;
  34. //Remove padding and margins
  35. padding: 0 0 0 0;
  36. margin: 0;
  37. top: 100%;
  38. }
  39. //Define header class
  40. > .dropdown-menu > li.header {
  41. .border-radius(4px; 4px; 0; 0);
  42. background-color: #ffffff;
  43. padding: 7px 10px;
  44. border-bottom: 1px solid #f4f4f4;
  45. color: #444444;
  46. font-size: 14px;
  47. }
  48. //Define footer class
  49. > .dropdown-menu > li.footer > a {
  50. .border-radius(0; 0; 4px; 4px);
  51. font-size: 12px;
  52. background-color: #fff;
  53. padding: 7px 10px;
  54. border-bottom: 1px solid #eeeeee;
  55. color: #444 !important;
  56. @media (max-width: @screen-sm-max) {
  57. background: #fff !important;
  58. color: #444 !important;
  59. }
  60. text-align: center;
  61. //Hover state
  62. &:hover {
  63. text-decoration: none;
  64. font-weight: normal;
  65. }
  66. }
  67. //Clear inner menu padding and margins
  68. > .dropdown-menu > li .menu {
  69. max-height: 200px;
  70. margin: 0;
  71. padding: 0;
  72. list-style: none;
  73. overflow-x: hidden;
  74. > li > a {
  75. display: block;
  76. white-space: nowrap; /* Prevent text from breaking */
  77. border-bottom: 1px solid #f4f4f4;
  78. // Hove state
  79. &:hover {
  80. background: #f4f4f4;
  81. text-decoration: none;
  82. }
  83. }
  84. }
  85. }
  86. //Notifications menu
  87. .navbar-nav > .notifications-menu {
  88. > .dropdown-menu > li .menu {
  89. // Links inside the menu
  90. > li > a {
  91. color: #444444;
  92. overflow: hidden;
  93. text-overflow: ellipsis;
  94. padding: 10px;
  95. // Icons inside the menu
  96. > .glyphicon,
  97. > .fa,
  98. > .ion {
  99. width: 20px;
  100. }
  101. }
  102. }
  103. }
  104. //Messages menu
  105. .navbar-nav > .messages-menu {
  106. //Inner menu
  107. > .dropdown-menu > li .menu {
  108. // Messages menu item
  109. > li > a {
  110. margin: 0;
  111. //line-height: 20px;
  112. padding: 10px 10px;
  113. // User image
  114. > div > img {
  115. margin: auto 10px auto auto;
  116. width: 40px;
  117. height: 40px;
  118. }
  119. // Message heading
  120. > h4 {
  121. padding: 0;
  122. margin: 0 0 0 45px;
  123. color: #444444;
  124. font-size: 15px;
  125. position: relative;
  126. // Small for message time display
  127. > small {
  128. color: #999999;
  129. font-size: 10px;
  130. position: absolute;
  131. top: 0;
  132. right: 0;
  133. }
  134. }
  135. > p {
  136. margin: 0 0 0 45px;
  137. font-size: 12px;
  138. color: #888888;
  139. }
  140. .clearfix();
  141. }
  142. }
  143. }
  144. //Tasks menu
  145. .navbar-nav > .tasks-menu {
  146. > .dropdown-menu > li .menu {
  147. > li > a {
  148. padding: 10px;
  149. > h3 {
  150. font-size: 14px;
  151. padding: 0;
  152. margin: 0 0 10px 0;
  153. color: #666666;
  154. }
  155. > .progress {
  156. padding: 0;
  157. margin: 0;
  158. }
  159. }
  160. }
  161. }
  162. //User menu
  163. .navbar-nav > .user-menu {
  164. > .dropdown-menu {
  165. .border-top-radius(0);
  166. padding: 1px 0 0 0;
  167. border-top-width: 0;
  168. width: 280px;
  169. &,
  170. > .user-body {
  171. .border-bottom-radius(4px);
  172. }
  173. // Header menu
  174. > li.user-header {
  175. height: 175px;
  176. padding: 10px;
  177. text-align: center;
  178. // User image
  179. > img {
  180. z-index: 5;
  181. height: 90px;
  182. width: 90px;
  183. border: 3px solid;
  184. border-color: transparent;
  185. border-color: rgba(255, 255, 255, 0.2);
  186. }
  187. > p {
  188. z-index: 5;
  189. color: #fff;
  190. color: rgba(255, 255, 255, 0.8);
  191. font-size: 17px;
  192. //text-shadow: 2px 2px 3px #333333;
  193. margin-top: 10px;
  194. > small {
  195. display: block;
  196. font-size: 12px;
  197. }
  198. }
  199. }
  200. // Menu Body
  201. > .user-body {
  202. padding: 15px;
  203. border-bottom: 1px solid #f4f4f4;
  204. border-top: 1px solid #dddddd;
  205. .clearfix();
  206. a {
  207. color: #444 !important;
  208. @media (max-width: @screen-sm-max) {
  209. background: #fff !important;
  210. color: #444 !important;
  211. }
  212. }
  213. }
  214. // Menu Footer
  215. > .user-footer {
  216. background-color: #f9f9f9;
  217. padding: 10px;
  218. .clearfix();
  219. .btn-default {
  220. color: #666666;
  221. &:hover {
  222. @media (max-width: @screen-sm-max) {
  223. background-color: #f9f9f9;
  224. }
  225. }
  226. }
  227. }
  228. }
  229. .user-image {
  230. float: left;
  231. width: 25px;
  232. height: 25px;
  233. border-radius: 50%;
  234. margin-right: 10px;
  235. margin-top: -2px;
  236. @media (max-width: @screen-xs-max) {
  237. float: none;
  238. margin-right: 0;
  239. margin-top: -8px;
  240. line-height: 10px;
  241. }
  242. }
  243. }
  244. /* Add fade animation to dropdown menus by appending
  245. the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)*/
  246. .open:not(.dropup) > .animated-dropdown-menu {
  247. backface-visibility: visible !important;
  248. .animation(flipInX .7s both);
  249. }
  250. @keyframes flipInX {
  251. 0% {
  252. transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
  253. transition-timing-function: ease-in;
  254. opacity: 0;
  255. }
  256. 40% {
  257. transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
  258. transition-timing-function: ease-in;
  259. }
  260. 60% {
  261. transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
  262. opacity: 1;
  263. }
  264. 80% {
  265. transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  266. }
  267. 100% {
  268. transform: perspective(400px);
  269. }
  270. }
  271. @-webkit-keyframes flipInX {
  272. 0% {
  273. -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
  274. -webkit-transition-timing-function: ease-in;
  275. opacity: 0;
  276. }
  277. 40% {
  278. -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
  279. -webkit-transition-timing-function: ease-in;
  280. }
  281. 60% {
  282. -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
  283. opacity: 1;
  284. }
  285. 80% {
  286. -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  287. }
  288. 100% {
  289. -webkit-transform: perspective(400px);
  290. }
  291. }
  292. /* Fix dropdown menu in navbars */
  293. .navbar-custom-menu > .navbar-nav {
  294. > li {
  295. position: relative;
  296. > .dropdown-menu {
  297. position: absolute;
  298. right: 0;
  299. left: auto;
  300. }
  301. }
  302. }
  303. @media (max-width: @screen-sm-max) {
  304. .navbar-custom-menu > .navbar-nav {
  305. float: right;
  306. > li {
  307. position: static;
  308. > .dropdown-menu {
  309. position: absolute;
  310. right: 5%;
  311. left: auto;
  312. border: 1px solid #ddd;
  313. background: #fff;
  314. }
  315. }
  316. }
  317. }
  318. .dropdown-submenu {
  319. position: relative;
  320. >.dropdown-menu {
  321. top: 0;
  322. left: 100%;
  323. margin-top: -6px;
  324. margin-left: -1px;
  325. .border-radius(3px 0 3px 3px);
  326. }
  327. &:hover{
  328. >.dropdown-menu {
  329. display: block;
  330. }
  331. >a:after {
  332. border-left-color: #fff;
  333. }
  334. }
  335. >a:after {
  336. display: block;
  337. content: " ";
  338. float: right;
  339. width: 0;
  340. height: 0;
  341. border-color: transparent;
  342. border-style: solid;
  343. border-width: 5px 0 5px 5px;
  344. border-left-color: #ccc;
  345. margin-top: 5px;
  346. margin-right: -10px;
  347. }
  348. &.pull-left {
  349. float: none;
  350. >.dropdown-menu {
  351. left: -100%;
  352. margin-left: 10px;
  353. .border-radius(3px 0 3px 3px);
  354. }
  355. }
  356. }