// Name: Popover // // Component: `popover` // // Modifiers: `popover-primary` // `popover-success` // `popover-info` // `popover-warning` // `popover-danger` // `popover-rotate` // `popover-scale` // // Markup: // // //
//
//

//
//
// // ======================================================================== // Variables // ======================================================================== $popover-primary-color : $inverse !default; $popover-primary-bg : $brand-primary !default; $popover-primary-border : $brand-primary !default; $popover-success-color : $inverse !default; $popover-success-bg : $brand-success !default; $popover-success-border : $brand-success !default; $popover-info-color : $inverse !default; $popover-info-bg : $brand-info !default; $popover-info-border : $brand-info !default; $popover-warning-color : $inverse !default; $popover-warning-bg : $brand-warning !default; $popover-warning-border : $brand-warning !default; $popover-danger-color : $inverse !default; $popover-danger-bg : $brand-danger !default; $popover-danger-border : $brand-danger !default; // Component: Popover // ======================================================================== .popover { padding: 0; box-shadow: $popover-shadow; &.bs-popover-top { margin-bottom: $popover-arrow-width; .arrow { left: 50%; bottom: 0; } .arrow::before, .arrow::after { border-bottom-width: 0; } .arrow::before { bottom: -$popover-arrow-width; margin-left: -$popover-arrow-width; border-top-color: $popover-arrow-outer-color; } .arrow::after { bottom: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1); margin-left: -$popover-arrow-width; border-top-color: $popover-arrow-color; } } &.bs-popover-right { margin-left: $popover-arrow-width; .arrow { top: 50%; left: 0; } .arrow::before, .arrow::after { margin-top: -$popover-arrow-width; border-left-width: 0; } .arrow::before { left: -$popover-arrow-width; border-right-color: $popover-arrow-outer-color; } .arrow::after { left: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1); border-right-color: $popover-arrow-color; } } &.bs-popover-bottom { margin-top: $popover-arrow-width; .arrow { top: 0; left: 50%; } .arrow::before, .arrow::after { margin-left: -$popover-arrow-width; border-top-width: 0; } .arrow::before { top: -$popover-arrow-width; border-bottom-color: $popover-arrow-outer-color; } .arrow::after { top: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1); border-bottom-color: $popover-header-bg; } // This will remove the popover-header's border just below the arrow .popover-header::before { position: absolute; top: 0; left: 50%; display: block; width: 20px; margin-left: -10px; content: ""; border-bottom: $popover-border-width solid $popover-header-bg; } } &.bs-popover-left { margin-right: $popover-arrow-width; .arrow { top: 50%; right: 0; } .arrow::before, .arrow::after { margin-top: -$popover-arrow-width; border-right-width: 0; } .arrow::before { right: -$popover-arrow-width; border-left-color: $popover-arrow-outer-color; } .arrow::after { right: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1); border-left-color: $popover-arrow-color; } } &.popover-top { @extend .bs-popover-top; } &.popover-bottom { @extend .bs-popover-bottom; } &.popover-left { @extend .bs-popover-left; } &.popover-right { @extend .bs-popover-right; } &.popover-auto { &[x-placement^="top"] { @extend .bs-popover-top; } &[x-placement^="right"] { @extend .bs-popover-right; } &[x-placement^="bottom"] { @extend .bs-popover-bottom; } &[x-placement^="left"] { @extend .bs-popover-left; } } } .popover-header { margin: 0; } // Color Modifier // ======================================================================== // Modifier: `popover-primary` // ------------------------- .popover-primary { @include popover-variant($popover-primary-color, $popover-primary-bg, $popover-primary-border); } // Modifier: `popover-success` // ------------------------- .popover-success { @include popover-variant($popover-success-color, $popover-success-bg, $popover-success-border); } // Modifier: `popover-info` // ------------------------- .popover-info { @include popover-variant($popover-info-color, $popover-info-bg, $popover-info-border); } // Modifier: `popover-warning` // ------------------------- .popover-warning { @include popover-variant($popover-warning-color, $popover-warning-bg, $popover-warning-border); } // Modifier: `popover-danger` // ------------------------- .popover-danger { @include popover-variant($popover-danger-color, $popover-danger-bg, $popover-danger-border); }