Skip to content
Snippets Groups Projects
nav.sass 4.68 KiB
Newer Older
@keyframes showIn
    0%
        opacity: 0
    100%
        opacity: 1
    0%
        opacity: 0

alexisben's avatar
alexisben committed
.menu
Olivia206's avatar
Olivia206 committed
    @include media-breakpoint-down(md)
        -webkit-flex-basis: 100vw
        display: none
        flex-basis: 100vw
        margin-top: 1.875rem
        max-height: 70vh
        overflow: auto

alexisben's avatar
alexisben committed
    a,
    a:hover,
    a:focus,
    a:active
        color: $header-color
    ul
        display: flex
        list-style: none
        margin: 0
        padding: 0
    a,
    span
        font-size: px2rem(18)
        line-height: px2rem(26)
        color: $header-color
alexisben's avatar
alexisben committed
        cursor: pointer
        transition: text-decoration 0.15s
        &:not(:hover)
            text-decoration-color: transparent
        &[aria-expanded]
            @include icon('caret', 'after')
                font-size: px2rem(6)
                margin-left: px2rem(5)
                transition: transform  0.15s
            &[aria-expanded="true"]
                &::after
                    transform: rotate(180deg)

Olivia206's avatar
Olivia206 committed
        @include media-breakpoint-up(md)
            a:hover,
            a:focus
                color: $header-hover-color
alexisben's avatar
alexisben committed

    .dropdown-menu
        display: none
        background: $header-background-color
alexisben's avatar
alexisben committed
        padding-bottom: $spacing1
        padding-top: $spacing1
Olivia206's avatar
Olivia206 committed
        @include media-breakpoint-up(md)
            inset: 100% 0 auto 0
            position: absolute
alexisben's avatar
alexisben committed

    .nav-level-1
        display: flex
Olivia206's avatar
Olivia206 committed
        @include media-breakpoint-down(md)
            @include grid(1)
alexisben's avatar
alexisben committed
        > li
alexisben's avatar
alexisben committed
            > a, span
alexisben's avatar
alexisben committed
                display: block
alexisben's avatar
alexisben committed
                padding: $spacing1
alexisben's avatar
alexisben committed
            &:last-child a
                padding-right: 0
alexisben's avatar
alexisben committed
        li.has-children
alexisben's avatar
alexisben committed
            [aria-expanded="true"] + .dropdown-menu
alexisben's avatar
alexisben committed
                display: block
                animation-duration: $header-dropdown-transition
                animation-fill-mode: both
                animation-name: showIn
alexisben's avatar
alexisben committed

    .nav-level-2
Olivia206's avatar
Olivia206 committed
        @include grid(1)
alexisben's avatar
alexisben committed
        @include media-breakpoint-up(md)
            @include container
            @include grid(4, md)
alexisben's avatar
alexisben committed
        > li
alexisben's avatar
alexisben committed
            > a,
            > span
alexisben's avatar
alexisben committed
                font-size: px2rem(16)
                line-height: px2rem(26)
                @include media-breakpoint-up(lg)
                    font-size: px2rem(18)

    .nav-level-3
        a,
        span
            font-size: px2rem(14)
alexisben's avatar
alexisben committed

    @include media-breakpoint-down(md)
        &.is-opened
            display: block
alexisben's avatar
alexisben committed
        a, span
            text-decoration: none
        .nav-level-1
            display: block
            li 
                a, span
                    padding: 1rem 0
            > li:not(:last-child) 
                border-bottom: 1px solid #adb5bd
            li.has-children
                [role="button"]
                    align-items: center
                    display: flex
                    justify-content: space-between
                    @include icon("caret-bottom", after)
                    &::after
                        font-size: .375rem
                        line-height: 1
                .dropdown-menu
                    display: none
                    padding-top: 0
                [aria-expanded=true] + .dropdown-menu
                    display: block
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
// TODO : Est-ce au bon endroit ?
alexisben's avatar
alexisben committed
        @include inset(0)
        background-color: $body-overlay-color
        content: ""
alexisben's avatar
alexisben committed
        pointer-events: none
        position: fixed
alexisben's avatar
alexisben committed
        opacity: 0
        visibility: hidden
        transition: opacity $header-transition
        z-index: $zindex-body-overlay
alexisben's avatar
alexisben committed

    html.has-menu-opened &
        &::after
            display: block
alexisben's avatar
alexisben committed
            opacity: 1
            pointer-events: inherit
            visibility: inherit

    html.is-animating:not(.has-menu-opened) &
        &::after
            display: block
            visibility: inherit
            opacity: 0
alexisben's avatar
alexisben committed
.share
    display: flex
    list-style: none
    margin: 0
    padding: 0

    li:not(:last-child)
        margin-right: 1rem

    a
        font-size: px2rem(13)
        text-decoration: none
        padding: 0.75rem
        &:hover
            opacity: 0.7
        &::after
            content: none
        &:last-child
            margin-right: -0.75rem

    span
        display: none
        vertical-align: middle

// .dropdown-share
//     @extend .dropdown
//     > button
//         @extend .btn
//         @extend .btn-lg
//         @extend .btn-outline-light
//         &::after
//             @include icon
//             content: map-get($icons, "social")
//             margin-left: px2rem(10)
//     .dropdown-menu
//         padding: 0
//         .share
//             li
//                 margin: 0
//         a
//             @extend .dropdown-item
//             color: $body-color