UNPKG

bootstrap-less-port

Version:
176 lines (151 loc) 4.88 kB
.popover { position: absolute; top: 0; left: 0; z-index: @zindex-popover; display: block; max-width: @popover-max-width; // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. // So reset our font and text properties to avoid inheriting weird values. #reset-text(); #font-size(@popover-font-size); // Allow breaking very long words so they don't overflow the popover's bounds word-wrap: break-word; background-color: @popover-bg; background-clip: padding-box; border: @popover-border-width solid @popover-border-color; #border-radius(@popover-border-radius); #box-shadow(@popover-box-shadow); .arrow { position: absolute; display: block; width: @popover-arrow-width; height: @popover-arrow-height; margin: 0 @popover-border-radius; &::before, &::after { position: absolute; display: block; content: ""; border-color: transparent; border-style: solid; } } } .bs-popover-top { margin-bottom: @popover-arrow-height; > .arrow { //bottom: calc((@popover-arrow-height + @popover-border-width) * -1); bottom: subtract(-@popover-arrow-height, @popover-border-width); &::before { bottom: 0; border-width: @popover-arrow-height (@popover-arrow-width / 2) 0; border-top-color: @popover-arrow-outer-color; } &::after { bottom: @popover-border-width; border-width: @popover-arrow-height (@popover-arrow-width / 2) 0; border-top-color: @popover-arrow-color; } } } .bs-popover-right { margin-left: @popover-arrow-height; > .arrow { //left: calc((@popover-arrow-height + @popover-border-width) * -1); left: subtract(-@popover-arrow-height, @popover-border-width); width: @popover-arrow-height; height: @popover-arrow-width; margin: @popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners &::before { left: 0; border-width: (@popover-arrow-width / 2) @popover-arrow-height (@popover-arrow-width / 2) 0; border-right-color: @popover-arrow-outer-color; } &::after { left: @popover-border-width; border-width: (@popover-arrow-width / 2) @popover-arrow-height (@popover-arrow-width / 2) 0; border-right-color: @popover-arrow-color; } } } .bs-popover-bottom { margin-top: @popover-arrow-height; > .arrow { //top: calc((@popover-arrow-height + @popover-border-width) * -1); top: subtract(-@popover-arrow-height, @popover-border-width); &::before { top: 0; border-width: 0 (@popover-arrow-width / 2) @popover-arrow-height (@popover-arrow-width / 2); border-bottom-color: @popover-arrow-outer-color; } &::after { top: @popover-border-width; border-width: 0 (@popover-arrow-width / 2) @popover-arrow-height (@popover-arrow-width / 2); border-bottom-color: @popover-arrow-color; } } // This will remove the popover-header's border just below the arrow .popover-header::before { position: absolute; top: 0; left: 50%; display: block; width: @popover-arrow-width; margin-left: (-@popover-arrow-width / 2); content: ""; border-bottom: @popover-border-width solid @popover-header-bg; } } .bs-popover-left { margin-right: @popover-arrow-height; > .arrow { //right: calc((@popover-arrow-height + @popover-border-width) * -1); right: subtract(-@popover-arrow-height, @popover-border-width); width: @popover-arrow-height; height: @popover-arrow-width; margin: @popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners &::before { right: 0; border-width: (@popover-arrow-width / 2) 0 (@popover-arrow-width / 2) @popover-arrow-height; border-left-color: @popover-arrow-outer-color; } &::after { right: @popover-border-width; border-width: (@popover-arrow-width / 2) 0 (@popover-arrow-width / 2) @popover-arrow-height; border-left-color: @popover-arrow-color; } } } .bs-popover-auto { &[x-placement^="top"] { &:extend(.bs-popover-top all); } &[x-placement^="right"] { &:extend(.bs-popover-right all); } &[x-placement^="bottom"] { &:extend(.bs-popover-bottom all); } &[x-placement^="left"] { &:extend(.bs-popover-left all); } } // Offset the popover to account for the popover arrow .popover-header { padding: @popover-header-padding-y @popover-header-padding-x; margin-bottom: 0; // Reset the default from Reboot #font-size(@font-size-base); // LESS PORT: Less doesn’t strip “empty” property values so we have to check for a value first. & when not (@popover-header-color = ~"") { color: @popover-header-color; } background-color: @popover-header-bg; border-bottom: @popover-border-width solid darken(@popover-header-bg, 5%); #border-top-radius(@popover-inner-border-radius); &:empty { display: none; } } .popover-body { padding: @popover-body-padding-y @popover-body-padding-x; color: @popover-body-color; }