Skip to content
Snippets Groups Projects
nav.sass 5.08 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
Olivia206's avatar
Olivia206 committed
        @include link($header-color)
alexisben's avatar
alexisben committed
    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]
alexisben's avatar
alexisben committed
            @include icon(caret, after)
alexisben's avatar
alexisben committed
                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
alexisben's avatar
alexisben committed
        display: block
alexisben's avatar
alexisben committed
        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
alexisben's avatar
alexisben committed
        padding: $spacing0
        &::before
            font-size: px2rem(13)
alexisben's avatar
alexisben committed
        &:hover
            opacity: 0.7
        &::after
            content: none

    span
        display: none
        vertical-align: middle

alexisben's avatar
alexisben committed
.dropdown-share
alexisben's avatar
alexisben committed
    position: relative
alexisben's avatar
alexisben committed
    > button
alexisben's avatar
alexisben committed
        @include button-icon(social)
alexisben's avatar
alexisben committed
        color: $hero-color
alexisben's avatar
alexisben committed
        border-color: $hero-color
alexisben's avatar
alexisben committed
        font-size: $program-share-font-size
        @include media-breakpoint-up(md)
            font-size: $program-share-font-size-md
alexisben's avatar
alexisben committed
    .dropdown-menu
alexisben's avatar
alexisben committed
        background: invert($hero-background-color)
alexisben's avatar
alexisben committed
        padding: 0
alexisben's avatar
alexisben committed
        position: absolute
        width: 100%
        bottom: 100%
alexisben's avatar
alexisben committed
        .share
alexisben's avatar
alexisben committed
            display: flex
alexisben's avatar
alexisben committed
            li
                margin: 0
alexisben's avatar
alexisben committed
                flex: 1 1
                text-align: center
alexisben's avatar
alexisben committed
        a
            display: block
alexisben's avatar
alexisben committed
            color: invert($hero-color)


[aria-expanded="false"] + .dropdown-menu
    display: none
[aria-expanded="true"] + .dropdown-menu
    display: block
    animation-duration: 0.3s
    animation-fill-mode: both
    animation-name: showIn