123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- .popover {
- // scss-docs-start popover-css-vars
- --#{$prefix}popover-zindex: #{$zindex-popover};
- --#{$prefix}popover-max-width: #{$popover-max-width};
- @include rfs($popover-font-size, --#{$prefix}popover-font-size);
- --#{$prefix}popover-bg: #{$popover-bg};
- --#{$prefix}popover-border-width: #{$popover-border-width};
- --#{$prefix}popover-border-color: #{$popover-border-color};
- --#{$prefix}popover-border-radius: #{$popover-border-radius};
- --#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};
- --#{$prefix}popover-box-shadow: #{$popover-box-shadow};
- --#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};
- --#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};
- @include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);
- --#{$prefix}popover-header-color: #{$popover-header-color};
- --#{$prefix}popover-header-bg: #{$popover-header-bg};
- --#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};
- --#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};
- --#{$prefix}popover-body-color: #{$popover-body-color};
- --#{$prefix}popover-arrow-width: #{$popover-arrow-width};
- --#{$prefix}popover-arrow-height: #{$popover-arrow-height};
- --#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);
- // scss-docs-end popover-css-vars
-
- z-index: var(--#{$prefix}popover-zindex);
- display: block;
- max-width: var(--#{$prefix}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.
- @include reset-text();
- @include font-size(var(--#{$prefix}popover-font-size));
- // Allow breaking very long words so they don't overflow the popover's bounds
- word-wrap: break-word;
- background-color: var(--#{$prefix}popover-bg);
- background-clip: padding-box;
- border: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
- @include border-radius(var(--#{$prefix}popover-border-radius));
- @include box-shadow(var(--#{$prefix}popover-box-shadow));
-
- .popover-arrow {
- display: block;
- width: var(--#{$prefix}popover-arrow-width);
- height: var(--#{$prefix}popover-arrow-height);
-
- &::before,
- &::after {
- position: absolute;
- display: block;
- content: "";
- border-color: transparent;
- border-style: solid;
- border-width: 0;
- }
- }
- }
-
- .bs-popover-top {
- > .popover-arrow {
- bottom: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
-
- &::before,
- &::after {
- border-width: var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
- }
-
- &::before {
- bottom: 0;
- border-top-color: var(--#{$prefix}popover-arrow-border);
- }
-
- &::after {
- bottom: var(--#{$prefix}popover-border-width);
- border-top-color: var(--#{$prefix}popover-bg);
- }
- }
- }
-
- /* rtl:begin:ignore */
- .bs-popover-end {
- > .popover-arrow {
- left: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
- width: var(--#{$prefix}popover-arrow-height);
- height: var(--#{$prefix}popover-arrow-width);
-
- &::before,
- &::after {
- border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
- }
-
- &::before {
- left: 0;
- border-right-color: var(--#{$prefix}popover-arrow-border);
- }
-
- &::after {
- left: var(--#{$prefix}popover-border-width);
- border-right-color: var(--#{$prefix}popover-bg);
- }
- }
- }
-
- /* rtl:end:ignore */
-
- .bs-popover-bottom {
- > .popover-arrow {
- top: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
-
- &::before,
- &::after {
- border-width: 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
- }
-
- &::before {
- top: 0;
- border-bottom-color: var(--#{$prefix}popover-arrow-border);
- }
-
- &::after {
- top: var(--#{$prefix}popover-border-width);
- border-bottom-color: var(--#{$prefix}popover-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: var(--#{$prefix}popover-arrow-width);
- margin-left: calc(-.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list
- content: "";
- border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg);
- }
- }
-
- /* rtl:begin:ignore */
- .bs-popover-start {
- > .popover-arrow {
- right: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
- width: var(--#{$prefix}popover-arrow-height);
- height: var(--#{$prefix}popover-arrow-width);
-
- &::before,
- &::after {
- border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
- }
-
- &::before {
- right: 0;
- border-left-color: var(--#{$prefix}popover-arrow-border);
- }
-
- &::after {
- right: var(--#{$prefix}popover-border-width);
- border-left-color: var(--#{$prefix}popover-bg);
- }
- }
- }
-
- /* rtl:end:ignore */
-
- .bs-popover-auto {
- &[data-popper-placement^="top"] {
- @extend .bs-popover-top;
- }
- &[data-popper-placement^="right"] {
- @extend .bs-popover-end;
- }
- &[data-popper-placement^="bottom"] {
- @extend .bs-popover-bottom;
- }
- &[data-popper-placement^="left"] {
- @extend .bs-popover-start;
- }
- }
-
- // Offset the popover to account for the popover arrow
- .popover-header {
- padding: var(--#{$prefix}popover-header-padding-y) var(--#{$prefix}popover-header-padding-x);
- margin-bottom: 0; // Reset the default from Reboot
- @include font-size(var(--#{$prefix}popover-header-font-size));
- color: var(--#{$prefix}popover-header-color);
- background-color: var(--#{$prefix}popover-header-bg);
- border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
- @include border-top-radius(var(--#{$prefix}popover-inner-border-radius));
-
- &:empty {
- display: none;
- }
- }
-
- .popover-body {
- padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);
- color: var(--#{$prefix}popover-body-color);
- }
|