_dropdown.scss 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. @include media-breakpoint-up(lg) {
  2. .dropdown,
  3. .dropup,
  4. .dropstart,
  5. .dropend {
  6. .dropdown-menu {
  7. box-shadow: $dropdown-box-shadow;
  8. cursor: pointer;
  9. }
  10. .dropdown-toggle {
  11. &:after,
  12. &:before{
  13. font: normal normal normal 14px/1 FontAwesome;
  14. border: none;
  15. vertical-align: middle;
  16. font-weight: $font-weight-bold;
  17. }
  18. &.show{
  19. &:after,
  20. &:before{
  21. transform: $dropdown-toggle-arrow-transform;
  22. }
  23. }
  24. &:after,
  25. &:before{
  26. transition: $dropdown-toggle-arrow-transition;
  27. }
  28. }
  29. }
  30. .dropdown,
  31. .dropup{
  32. .dropdown-menu{
  33. transition: $dropdown-transition;
  34. }
  35. .dropdown-toggle {
  36. &:after{
  37. content: "\f107";
  38. }
  39. }
  40. }
  41. .dropstart{
  42. .dropdown-toggle {
  43. &:before{
  44. content: "\f104";
  45. }
  46. }
  47. }
  48. .dropend{
  49. .dropdown-toggle {
  50. &:after{
  51. content: "\f105";
  52. }
  53. }
  54. }
  55. .dropdown {
  56. &.dropdown-hover .dropdown-menu,
  57. .dropdown-menu {
  58. display: block;
  59. opacity: 0;
  60. top: 0;
  61. transform-origin: $dropdown-transform-origin;
  62. pointer-events: none;
  63. transform: $dropdown-transform;
  64. -webkit-backface-visibility: hidden;
  65. backface-visibility: hidden;
  66. will-change: transform,box-shadow;
  67. }
  68. &.dropdown-hover:hover > .dropdown-menu,
  69. .dropdown-menu.show {
  70. opacity: 1;
  71. pointer-events: auto;
  72. visibility: visible;
  73. transform: $dropdown-transform-show;
  74. }
  75. &.dropdown-hover:hover > .dropdown-menu:before,
  76. .dropdown-menu.show:before {
  77. top: $dropdown-hover-arrow-active-top;
  78. }
  79. &.dropdown-hover {
  80. &:after {
  81. content: '';
  82. position: absolute;
  83. left: 0;
  84. bottom: $dropdown-hover-after-bottom-pos;
  85. width: 100%;
  86. height: 100%;
  87. }
  88. }
  89. &:not(.dropdown-hover) .dropdown-menu {
  90. margin-top: $dropdown-mt !important;
  91. }
  92. .dropdown-menu {
  93. &:before {
  94. font-family: "FontAwesome";
  95. content: "\f0d8";
  96. position: absolute;
  97. top: 0;
  98. left: $dropdown-animation-arrow-left-position;
  99. right: auto;
  100. font-size: $dropdown-animation-arrow-font-size;
  101. color: $white;
  102. transition: $dropdown-animation-arrow-transition;
  103. }
  104. }
  105. .dropdown-item .arrow {
  106. transform: $dropdown-subitem-arrow-rotate;
  107. }
  108. }
  109. .dropdown-item {
  110. transition: background-color $dropdown-transition-time, color $dropdown-transition-time;
  111. }
  112. }
  113. @include media-breakpoint-down(lg) {
  114. .navbar-toggler + .navbar-collapse {
  115. .dropdown:not(.nav-item) {
  116. .dropdown-menu {
  117. display: block;
  118. opacity: 0;
  119. top: 0;
  120. transform-origin: $dropdown-transform-origin;
  121. pointer-events: none;
  122. transform: $dropdown-transform;
  123. transition: $dropdown-transition;
  124. -webkit-backface-visibility: hidden;
  125. backface-visibility: hidden;
  126. will-change: transform,box-shadow;
  127. box-shadow: $dropdown-box-shadow;
  128. &:before {
  129. font-family: "FontAwesome";
  130. content: "\f0d8";
  131. position: absolute;
  132. top: 0;
  133. left: $dropdown-animation-arrow-left-position;
  134. right: auto;
  135. font-size: $dropdown-animation-arrow-font-size;
  136. color: $white;
  137. transition: $dropdown-animation-arrow-transition;
  138. }
  139. }
  140. &:not(.dropdown-hover) .dropdown-menu {
  141. margin-top: $dropdown-mt !important;
  142. }
  143. .dropdown-menu.show {
  144. opacity: 1;
  145. pointer-events: auto;
  146. visibility: visible;
  147. transform: $dropdown-transform-show;
  148. &:before {
  149. top: $dropdown-hover-arrow-active-top;
  150. }
  151. }
  152. }
  153. .dropdown.nav-item .dropdown-menu {
  154. background-color: transparent;
  155. overflow: scroll;
  156. position: relative;
  157. transform: none !important;
  158. box-shadow: none !important;
  159. }
  160. }
  161. :not(.navbar) .dropdown {
  162. .dropdown-menu {
  163. opacity: 0;
  164. top: 0;
  165. transform-origin: $dropdown-transform-origin;
  166. pointer-events: none;
  167. transform: $dropdown-transform;
  168. transition: $dropdown-transition;
  169. -webkit-backface-visibility: hidden;
  170. backface-visibility: hidden;
  171. will-change: transform,box-shadow;
  172. box-shadow: $dropdown-box-shadow;
  173. &:before {
  174. font-family: "FontAwesome";
  175. content: "\f0d8";
  176. position: absolute;
  177. top: 0;
  178. left: $dropdown-animation-arrow-left-position;
  179. right: auto;
  180. font-size: $dropdown-animation-arrow-font-size;
  181. color: $white;
  182. transition: $dropdown-animation-arrow-transition;
  183. }
  184. }
  185. &:not(.dropdown-hover) .dropdown-menu {
  186. margin-top: $dropdown-mt !important;
  187. }
  188. .dropdown-menu.show {
  189. opacity: 1;
  190. pointer-events: auto;
  191. visibility: visible;
  192. &:before {
  193. top: $dropdown-hover-arrow-active-top;
  194. }
  195. }
  196. &.nav-item {
  197. .dropdown-menu {
  198. position: absolute;
  199. }
  200. }
  201. }
  202. .dropdown.nav-item .dropdown-menu-animation {
  203. display: block;
  204. height: 0;
  205. transition: all .35s ease;
  206. padding-top: 0 !important;
  207. padding-bottom: 0 !important;
  208. opacity: 0;
  209. &.show {
  210. height: 250px;
  211. opacity: 1;
  212. }
  213. }
  214. .navbar.blur {
  215. .dropdown {
  216. .dropdown-menu.show {
  217. transform: $dropdown-transform-responsive-show;
  218. box-shadow: none;
  219. margin-bottom: 1rem;
  220. }
  221. }
  222. }
  223. }
  224. // MultiLevel Dropdown Style
  225. .dropdown-menu li {
  226. position: relative;
  227. }
  228. .dropdown {
  229. &.dropdown-subitem:after {
  230. left: 100%;
  231. bottom: 0;
  232. width: 50%;
  233. }
  234. .dropdown-menu {
  235. .dropdown-item + .dropdown-menu:before {
  236. transform: $dropdown-subitem-arrow-rotate;
  237. left: 0;
  238. top: 0;
  239. z-index: -1;
  240. transition: left .35s ease;
  241. }
  242. &.dropdown-menu-end{
  243. right: 0 !important;
  244. left: auto !important;
  245. &:before{
  246. right: $dropdown-animation-arrow-left-position;
  247. left: auto;
  248. }
  249. }
  250. }
  251. &.dropdown-subitem:hover .dropdown-item + .dropdown-menu:before {
  252. left: $dropdown-subitem-left-hover;
  253. }
  254. & > .dropdown-menu {
  255. .dropdown-item + .dropdown-menu {
  256. transform: $dropdown-multilevel-transform-show;
  257. }
  258. }
  259. }
  260. .dropdown .dropdown-menu .dropdown-item+.dropdown-menu {
  261. right: $dropdown-subitem-position-right;
  262. left: auto;
  263. top: 0;
  264. }
  265. // End MultiLevel Dropdown Style
  266. .dropdown-image {
  267. background-size: cover;
  268. }
  269. @include media-breakpoint-up(lg) {
  270. .dropdown-xl {
  271. min-width: $dropdown-xl-min-width;
  272. }
  273. .dropdown-lg {
  274. min-width: $dropdown-lg-min-width;
  275. }
  276. .dropdown-md {
  277. min-width: $dropdown-md-min-width;
  278. }
  279. }
  280. @include media-breakpoint-down(xl) {
  281. .dropdown-lg-responsive {
  282. min-width: $dropdown-lg-width-responsive;
  283. }
  284. }