@import "/imports/ui/stylesheets/variables/_all"; @import "/imports/ui/stylesheets/mixins/_scrollable"; $dropdown-bg: $color-white; $dropdown-color: $color-text; $caret-shadow-color: $color-gray; $dropdown-caret-width: 12px; $dropdown-caret-height: 8px; .dropdown { position: relative; } .content { position: absolute; background: $dropdown-bg; border-radius: $border-radius; box-shadow: 0 6px 12px rgba(0, 0, 0, .175); border: 1px solid rgba(0, 0, 0, .15); padding: $line-height-computed / 2; z-index: 1000; &:after, &:before { content: ''; position: absolute; width: 0; height: 0; } &[aria-expanded="false"] { display: none; } &[aria-expanded="true"] { display: block; } @include mq($small-only) { z-index: 1015; border-radius: 0; background-color: #fff; box-shadow: none; position: fixed; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; border: 0 !important; padding: 0 !important; margin: 0 0 $line-height-computed * 5.25 0 !important; transform: translateX(0) translateY(0) !important; &:after, &:before { display: none !important; } } } .scrollable { @include mq($small-only) { @include scrollbox-vertical(); position: absolute; top: 0; left: 0; right: 0; bottom: 0; } } .trigger {} .close { display: none; position: fixed; bottom: 1rem; z-index: 1011; font-size: $font-size-large * 1.1; width: calc(100% - #{($line-height-computed * 2)}); left: $line-height-computed; box-shadow: 0 0 0 2rem #fff; @include mq($small-only) { display: block; } } /* Placements * ========== */ %down-caret { bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: $dropdown-caret-height * 1.25; &:before, &:after { border-left: $dropdown-caret-width solid transparent; border-right: $dropdown-caret-width solid transparent; border-top: $dropdown-caret-height solid $dropdown-bg; bottom: 0; margin-bottom: -($dropdown-caret-height); } &:before { border-top: $dropdown-caret-height solid $caret-shadow-color; } } %up-caret { top: 100%; left: 50%; transform: translateX(-50%); margin-top: $dropdown-caret-height * 1.25; &:before, &:after { border-left: $dropdown-caret-width solid transparent; border-right: $dropdown-caret-width solid transparent; border-bottom: $dropdown-caret-height solid $dropdown-bg; margin-top: -($dropdown-caret-height); top: 0; } &:before { border-bottom: $dropdown-caret-height solid $caret-shadow-color; } } %right-caret { top: 50%; transform: translateX(-100%) translateY(-50%); left: -($dropdown-caret-height * 1.25); &:before, &:after{ border-top: $dropdown-caret-width solid transparent; border-bottom: $dropdown-caret-width solid transparent; border-left: $dropdown-caret-height solid $dropdown-bg; margin-right: -($dropdown-caret-height); top: 50%; right: 0; } &:before { border-left: $dropdown-caret-height solid $caret-shadow-color; } } %left-caret { top: 50%; transform: translateX(100%) translateY(-50%); right: -($dropdown-caret-height * 1.25); &:before, &:after { border-top: $dropdown-caret-width solid transparent; border-bottom: $dropdown-caret-width solid transparent; border-right: $dropdown-caret-height solid $dropdown-bg; margin-left: -($dropdown-caret-height); top: 50%; left: 0; } &:before { border-right: $dropdown-caret-height solid $caret-shadow-color; } } %horz-center-caret { &:after, &:before { left: 50%; margin-left: -($dropdown-caret-width); } } %horz-left-caret { transform: translateX(-100%); left: 100%; &:after, &:before { right: $dropdown-caret-width / 2; } } %horz-right-caret { transform: translateX(100%); right: 100%; left: auto; &:after, &:before { left: $dropdown-caret-width / 2; } } %vert-center-caret { &:after, &:before { margin-top: -($dropdown-caret-width); } } %vert-top-caret { top: 0; &:after, &:before { top: 0; margin-top: $dropdown-caret-width / 2; } } %vert-bottom-caret { top: auto; bottom: 0; &:after, &:before { top: auto; bottom: $dropdown-caret-width / 2; } } .top { @extend %down-caret; @extend %horz-center-caret; } .top-left { @extend %down-caret; @extend %horz-right-caret; } .top-right { @extend %down-caret; @extend %horz-left-caret; } .bottom { @extend %up-caret; @extend %horz-center-caret; } .bottom-left { @extend %up-caret; @extend %horz-right-caret; } .bottom-right { @extend %up-caret; @extend %horz-left-caret; } .left { @extend %right-caret; @extend %vert-center-caret; } .left-top { @extend %right-caret; @extend %vert-top-caret; transform: translateX(-100%) translateY(0); } .left-bottom { @extend %right-caret; @extend %vert-bottom-caret; transform: translateX(-100%) translateY(0); } .right { @extend %left-caret; @extend %vert-center-caret; } .right-top { @extend %left-caret; @extend %vert-top-caret; transform: translateX(100%) translateY(0); } .right-bottom { @extend %left-caret; @extend %vert-bottom-caret; transform: translateX(100%) translateY(0); }