@mixin notification($color)
    color: $color

    .sniffle__notification-time
        background-color: $color
    
.notifications
    margin: 0
    padding: 0

    width: 450px
    height: auto

    position: fixed
    top: 0.3rem
    right: 0.3rem

    display: flex
    flex-direction: column

    z-index: 621

.sniffle__notification
    margin: 0 0 0.3rem 0
    padding: 0

    width: 450px
    height: auto
    max-height: 100px

    display: flex
    flex-direction: row

    position: relative

    background-color: $black
    border-radius: $rad-inner
    color: $white
    opacity: 0
    transform: scale(0.8)

    box-sizing: border-box
    overflow: hidden

    transition: all 0.25s ease-in-out, opacity 0.2s ease-in-out, transform 0.2s cubic-bezier(.68,-0.55,.27,1.55)

.sniffle__notification-icon
    margin: 0
    padding: 1rem

    width: auto
    height: auto

    display: flex
    justify-content: center
    align-items: center

    background-color: $black2

    svg
        width: 1.25rem
        height: 1.25rem

.sniffle__notification-text
    margin: 0
    padding: 1rem

    width: auto
    height: auto

    display: flex
    flex-direction: column
    justify-self: center
    align-self: center

    font-size: 1rem
    font-weight: 600
    line-height: 1
    text-align: left

.sniffle__notification-time
    margin: 0
    padding: 0

    width: 450px
    height: 3px

    position: absolute
    bottom: 0px
    left: 0px

    background-color: $white

    animation: notificationTimeout 5.1s linear

@each $name, $colour in (success: $succes, error: $critical, warning: $warning, info: $info)
    .sniffle__notification--#{$name}
        @include notification($colour)

.sniffle__notification-show
    opacity: 1
    transform: scale(1)

.sniffle__notification--hide
    margin: 0
    max-height: 0

    opacity: 0
    transform: translateX(100%)

    transition: all 0.4s ease-in-out, max-height 0.2s ease-in-out

@media (max-width: $breakpoint)
    .notifications
        width: calc(100vw - 0.6rem)
        height: auto

    .sniffle__notification
        width: 100%
    
    .sniffle__notification-time
        width: 100%

    .sniffle__notification--hide
        opacity: 0
        transform: translateY(-5rem)