Skip to content

Instantly share code, notes, and snippets.

@Skitionek
Last active March 11, 2021 00:11
Show Gist options
  • Save Skitionek/41caa49f029122944fd8bfbb6f17eb23 to your computer and use it in GitHub Desktop.
Save Skitionek/41caa49f029122944fd8bfbb6f17eb23 to your computer and use it in GitHub Desktop.
Styles for bootstrap tooltip on tilted (rotated) text
.rotatedTooltip {
display: none;
&.show {
display: block;
}
.arrow {
position: absolute;
display: block;
width: $tooltip-arrow-width;
height: $tooltip-arrow-height;
&::before {
position: absolute;
content: "";
border-style: solid;
}
}
&.bs-tooltip-top-left, &.bs-tooltip-left-top {
padding: $tooltip-arrow-height 0;
.tooltip-inner {
border-bottom-right-radius: 0;
transform-origin: 50% 100%;
transform: translateX(-50%) rotate(
$column-header-angle
) translate(2*$tooltip-arrow-height, 2*$tooltip-arrow-height);
}
.arrow {
display: none;
}
}
&.bs-tooltip-bottom-right, &.bs-tooltip-right-bottom {
padding: $tooltip-arrow-height 0;
.tooltip-inner {
border-top-left-radius: 0;
transform-origin: 50% 0;
transform: translateX(50%) rotate(
$column-header-angle
) translate(2*$tooltip-arrow-height, 2*$tooltip-arrow-height);
}
.arrow {
display: none;
}
}
&.bs-tooltip-top-right, &.bs-tooltip-right-top {
padding: $tooltip-arrow-height 0;
transform: none !important;
left: unset;
right: 0;
.tooltip-inner {
border-bottom-left-radius: 0;
transform-origin: 100% 0;
transform: rotate($column-header-angle) translate(100%, -100%);
}
.arrow {
display: none;
}
}
&.bs-tooltip-bottom-left, &.bs-tooltip-left-bottom {
padding: $tooltip-arrow-height 0;
transform: none !important;
.tooltip-inner {
border-top-right-radius: 0;
transform-origin: 0 0;
transform: rotate(
$column-header-angle
) translate(-100%, 0);
}
.arrow {
display: none;
}
}
&.bs-tooltip-top {
padding: $tooltip-arrow-height 0;
&:not(.bs-tooltip-top-right):not(.bs-tooltip-right-top) {
transform-origin: 50% 50%;
transform: translateY(-50%) rotate(
$column-header-angle
) translateY(-50%) !important;
}
.arrow {
bottom: 0;
&::before {
top: 0;
border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
}
}
}
&.bs-tooltip-right {
padding: 0 $tooltip-arrow-height;
.tooltip-inner, .arrow {
transform-origin: 0 50%;
transform: rotate($column-header-angle) translateX(-2*$tooltip-arrow-height);
}
.arrow {
left: 0;
width: $tooltip-arrow-height;
height: $tooltip-arrow-width;
&::before {
right: 0;
border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
}
}
}
&.bs-tooltip-bottom {
padding: $tooltip-arrow-height 0;
&:not(.bs-tooltip-bottom-right):not(.bs-tooltip-right-bottom):not(.bs-tooltip-bottom-left):not(.bs-tooltip-left-bottom) {
transform-origin: 50% 0;
transform: rotate(
$column-header-angle
) translateY(100%) !important;
}
.arrow {
top: 0;
&::before {
bottom: 0;
border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
}
}
}
&.bs-tooltip-left {
padding: 0 $tooltip-arrow-height;
.tooltip-inner, .arrow {
transform-origin: 100% 50%;
transform: rotate($column-header-angle) translateX(2*$tooltip-arrow-height);
}
.arrow {
right: 0;
width: $tooltip-arrow-height;
height: $tooltip-arrow-width;
&::before {
left: 0;
border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
}
}
}
.bs-tooltip-auto {
&[x-placement^="top"] {
@extend .bs-tooltip-top;
}
&[x-placement^="right"] {
@extend .bs-tooltip-right;
}
&[x-placement^="bottom"] {
@extend .bs-tooltip-bottom;
}
&[x-placement^="left"] {
@extend .bs-tooltip-left;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment