_menu.scss 15.9 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
.layout-wrapper {
    .layout-menu-container {
        list-style-type: none;
        padding: 0;
        margin: 0;
    }
    .overlay-menu-button {
        display: none;
        top: 105px;
        left: 30px;
        position: absolute;
        z-index: 1011;
        width: 45px;
        height: 45px;
        cursor:pointer;
        border: solid 5px transparent;
        border-radius: 50%;
        background-color: $actionBarBgColor;

        .overlay-menu-button-bars {
            position:absolute;
            height:100%;
            width:100%;

            span {
                width:25px;
                height:4px;
                position: relative;
                top:2px;
                left:5px;
                margin:5px 0;

                &:nth-child(1){
                    transition-delay:.3s;
                }

                &:nth-child(2){
                    transition-delay:.4s;
                }

                &:nth-child(3){
                    transition-delay:.45s;
                }
            }
        }

        .overlay-menu-button-times {
            position:absolute;
            height:100%;
            width:100%;
            transform:rotate(45deg);

            span{
                &:nth-child(1){
                    height:0%;
                    width:4px;
                    position:absolute;
                    top:10%;
                    left:16px;
                    transition-delay:0s;
                }

                &:nth-child(2){
                    width:0%;
                    height:4px;
                    position:absolute;
                    left:10%;
                    top:16px;
                    transition-delay:.01s;
                }
            }
        }

        span {
            display:block;
            background: $overlayMenuButtonColor;
            border-radius:2px;
            transition: ease-in-out .1s;
        }
    }

    .layout-menu {
        margin: 0;
        padding: 0;
        list-style-type: none;

        li {
            margin: .5em 0 0;

            a {
                display: block;
                position: relative;
                padding: .5em;
                color: $overlayMenuItemTextColor;
                border-radius: $overlayMenuItemBorderRadius;
                transition: background-color $transitionDuration;

                .layout-menuitem-text {
                    display: inline-block;
                }

                .layout-menuitem-icon {
                    margin-right: .5em;
                }

                .layout-submenu-toggler {
                    position: absolute;
                    right: 4px;
                    font-size: 16px;
                    vertical-align: bottom;
                    transition: transform $transitionDuration;
                }

                .p-badge {
                    float: right;
                }

                &:hover {
                    background-color: $overlayMenuItemHoverBgColor;
                }

                &.rotated-icon {
                    .layout-menuitem-icon {
                        transform: rotate(90deg);
                    }
                }
            }

            &.active-menuitem {
                > a {
                    color: $overlayMenuItemActiveTextColor;

                    .layout-submenu-toggler {
                        transform: rotate(-180deg);
                    }
                }
            }

            ul {
                list-style-type: none;
                margin: 0;
                padding: 0;
                overflow: hidden;

                &.layout-submenu-container-enter-from,
                &.layout-submenu-container-leave-to {
                    max-height: 0;
                }

                &.layout-submenu-container-enter-to,
                &.layout-submenu-container-leave-from {
                    max-height: 1000px;
                }

                &.layout-submenu-container-leave-active {
                    overflow: hidden;
                    transition: max-height 0.4s cubic-bezier(0.86, 0, 0.07, 1);
                }

                &.layout-submenu-container-enter-active {
                    overflow: hidden;
                    transition: max-height 0.4s cubic-bezier(0.86, 0, 0.07, 1);
                }
            }
        }
    }
}

@media screen and (min-width: $responsiveLayoutBreakpoint + 1) {
    .layout-wrapper {
        &.layout-menu-horizontal {
            .layout-menu {
                > li {
                    display: inline-block;
                    width: auto;
                    padding: 0;
                    position: relative;
                    text-transform: uppercase;
                    margin: 0 .5em 0 0;

                    > a {
                        padding: .8em 1.15em;
                        margin-bottom: -3.5px;
                        font-weight: 700;
                        color: $horizontalMenuItemTextColor;
                        background-color: $horizontalMenuItemBgColor;
                        transition: background-color $transitionDuration, box-shadow $transitionDuration;
                        @include border-radius-top($borderRadius);
                        @include border-radius-bottom(0);

                        .layout-menuitem-text {
                            letter-spacing: 0.5px;
                            font-size: 15px;
                        }

                        .layout-menuitem-icon {
                            margin-right: .5em;
                            width: auto;
                        }

                        .layout-submenu-toggler {
                            position: static;
                            margin-left: .4em;
                            font-size: 15px;
                        }
                    }

                    > ul {
                        position: absolute;
                        min-width: 200px;
                        overflow: auto;
                        max-height: 450px;
                        padding: 0 .5em;
                        margin-top: 3px;
                        padding-bottom: .5em;
                        z-index: 999;
                        background-color: $overlayMenuBgColor;
                        text-transform: capitalize;
                        box-shadow: $overlayMenuShadow;

                        &.layout-submenu-container-enter-from,
                        &.layout-submenu-container-leave-to,
                        &.layout-submenu-container-enter-to,
                        &.layout-submenu-container-leave-from {
                            max-height: 500px;
                        }

                        &.layout-submenu-container-enter-active ,
                        &.layout-submenu-container-leave-active {
                            overflow: auto;
                            transition: none;
                        }

                        li {
                            a {
                                padding-left: .5em;
                            }
                            li {
                                a {
                                    padding-left: 1.5em;
                                }
                                li {
                                    a {
                                        padding-left: 3em;
                                    }
                                    li {
                                        a {
                                            padding-left: 4.5em;
                                        }
                                        li {
                                            a {
                                                padding-left: 6em;
                                            }
                                            li {
                                                a {
                                                    padding-left: 7.5em;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    &.active-rootmenuitem, &:hover {
                        > a {
                            color: $horizontalMenuItemHoverTextColor;
                            background-color: $horizontalMenuItemHoverBgColor;

                            .layout-submenu-toggler {
                                transform: rotate(0deg);
                            }
                        }
                    }

                    &.active-menuitem {
                        > a {
                            color: $horizontalMenuItemActiveTextColor;
                            background-color: $horizontalMenuItemActiveBgColor;

                            .layout-submenu-toggler {
                                transform: rotate(0deg);
                            }
                        }

                        &.active-rootmenuitem {
                            > a {
                                .layout-submenu-toggler {
                                    transform: rotate(-180deg);
                                }
                            }
                        }
                    }
                }
            }
        }

        &.layout-menu-overlay {
            .overlay-menu-button {
                display: block;
                transition: background-color $transitionDuration;

                &:hover {
                    background-color: $overlayMenuButtonHoverBgColor;
                }
            }

            .layout-menu-wrapper {
                display: none;
                position: absolute;
                top: 124px;
                z-index: 999;
                min-width: 250px;
                animation-duration: .5s;
                background-color: $overlayMenuBgColor;
                box-shadow: $overlayMenuShadow;
            }

            &.layout-menu-overlay-active {
                .overlay-menu-button{
                    .overlay-menu-button-bars {
                        span {
                            width:0%;

                            &:nth-child(1){
                                transition-delay:0s;
                            }

                            &:nth-child(2){
                                transition-delay:.125s;
                            }

                            &:nth-child(3){
                                transition-delay:.25s;
                            }
                        }
                    }

                    .overlay-menu-button-times {
                        span {
                            &:nth-child(1){
                                height:80%;
                                transition-delay:.425s;
                            }
                        }

                        span {
                            &:nth-child(2){
                                width:80%;
                                transition-delay:.375s;
                            }
                        }
                    }
                }

                .layout-menu-wrapper {
                    display: block;
                }
            }

            .layout-menu {
                padding: 1.45em 1em;

                li {
                    a {
                        padding-left: .5em;
                    }
                    li {
                        a {
                            padding-left: 1.5em;
                        }
                        li {
                            a {
                                padding-left: 3em;
                            }
                            li {
                                a {
                                    padding-left: 4.5em;
                                }
                                li {
                                    a {
                                        padding-left: 6em;
                                    }
                                    li {
                                        a {
                                            padding-left: 7.5em;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

@media screen and (max-width: $responsiveLayoutBreakpoint )  {
    .layout-wrapper {
        &.layout-fullwidth {
            .layout-menu-container {
                width: 100%;
            }
        }

        .layout-menu-container {
            position: absolute;
            width: calc(100% - 30px);
            top: 85px;
            display: none;
            z-index: 10000000;
            background-color: $mobileMenuBgColor;
            padding: 1em;
            overflow: auto;
            max-height:calc(100% - 85px);
        }

        .layout-menu {
            > li {
                margin-bottom: .5em;
                border-radius: $overlayMenuItemBorderRadius;
                background-color: $mobileMenuItemBgColor;

                > a {
                    padding: 1em;
                    text-transform: uppercase;
                    letter-spacing: .5;
                    font-weight: 700;
                    color: $mobileMenuItemTextColor;

                    &:hover {
                        background-color:$mobileMenuItemHoverBgColor;
                    }
                }

                &.active-menuitem,
                &.active-rootmenuitem {
                    background-color: $mobileMenuItemActiveBgColor;

                    > a {
                        color: $mobileMenuItemActiveTextColor;
                    }

                    > ul:last-child {
                        padding-bottom: .5em;
                    }
                }

                a {
                    .layout-submenu-toggler {
                        right: 1em;
                    }
                }

                li {
                    a {
                        padding-left: 2em;
                    }

                    li {
                        a {
                            padding-left: 3em;
                        }
                        li {
                            a {
                                padding-left: 4em;
                            }
                            li {
                                a {
                                    padding-left: 5em;
                                }
                                li {
                                    a {
                                        padding-left: 6em;
                                    }
                                    li {
                                        a {
                                            padding-left: 7em;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        &.layout-mobile-active {
            &.layout-menu-horizontal {
                .layout-menu {
                    > li {
                        &.active-menuitem {
                            &:not(.active-rootmenuitem) {
                                background-color: $mobileMenuItemBgColor;

                                > a {
                                    color: $mobileMenuItemTextColor;

                                    .layout-submenu-toggler {
                                        transform: rotate(0deg);
                                    }
                                }
                            }
                        }
                    }
                }
            }

            .layout-menu-container {
                display: block;
            }

            .layout-mask {
                display: block;
            }
        }
    }
}