216 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			216 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
| @use "sass:map";
 | |
| @use "../settings" as *;
 | |
| 
 | |
| @if map.get($modules, "components/tooltip") {
 | |
|   /**
 | |
|    * Tooltip ([data-tooltip])
 | |
|    */
 | |
| 
 | |
|   #{$parent-selector} [data-tooltip] {
 | |
|     position: relative;
 | |
| 
 | |
|     &:not(a, button, input) {
 | |
|       border-bottom: 1px dotted;
 | |
|       text-decoration: none;
 | |
|       cursor: help;
 | |
|     }
 | |
| 
 | |
|     &[data-placement="top"]::before,
 | |
|     &[data-placement="top"]::after,
 | |
|     &::before,
 | |
|     &::after {
 | |
|       display: block;
 | |
|       z-index: 99;
 | |
|       position: absolute;
 | |
|       bottom: 100%;
 | |
|       left: 50%;
 | |
|       padding: 0.25rem 0.5rem;
 | |
|       overflow: hidden;
 | |
|       transform: translate(-50%, -0.25rem);
 | |
|       border-radius: var(#{$css-var-prefix}border-radius);
 | |
|       background: var(#{$css-var-prefix}tooltip-background-color);
 | |
|       content: attr(data-tooltip);
 | |
|       color: var(#{$css-var-prefix}tooltip-color);
 | |
|       font-style: normal;
 | |
|       font-weight: var(#{$css-var-prefix}font-weight);
 | |
|       font-size: 0.875rem;
 | |
|       text-decoration: none;
 | |
|       text-overflow: ellipsis;
 | |
|       white-space: nowrap;
 | |
|       opacity: 0;
 | |
|       pointer-events: none;
 | |
|     }
 | |
| 
 | |
|     // Caret
 | |
|     &[data-placement="top"]::after,
 | |
|     &::after {
 | |
|       padding: 0;
 | |
|       transform: translate(-50%, 0rem);
 | |
|       border-top: 0.3rem solid;
 | |
|       border-right: 0.3rem solid transparent;
 | |
|       border-left: 0.3rem solid transparent;
 | |
|       border-radius: 0;
 | |
|       background-color: transparent;
 | |
|       content: "";
 | |
|       color: var(#{$css-var-prefix}tooltip-background-color);
 | |
|     }
 | |
| 
 | |
|     &[data-placement="bottom"] {
 | |
|       &::before,
 | |
|       &::after {
 | |
|         top: 100%;
 | |
|         bottom: auto;
 | |
|         transform: translate(-50%, 0.25rem);
 | |
|       }
 | |
| 
 | |
|       &:after {
 | |
|         transform: translate(-50%, -0.3rem);
 | |
|         border: 0.3rem solid transparent;
 | |
|         border-bottom: 0.3rem solid;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     &[data-placement="left"] {
 | |
|       &::before,
 | |
|       &::after {
 | |
|         top: 50%;
 | |
|         right: 100%;
 | |
|         bottom: auto;
 | |
|         left: auto;
 | |
|         transform: translate(-0.25rem, -50%);
 | |
|       }
 | |
| 
 | |
|       &:after {
 | |
|         transform: translate(0.3rem, -50%);
 | |
|         border: 0.3rem solid transparent;
 | |
|         border-left: 0.3rem solid;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     &[data-placement="right"] {
 | |
|       &::before,
 | |
|       &::after {
 | |
|         top: 50%;
 | |
|         right: auto;
 | |
|         bottom: auto;
 | |
|         left: 100%;
 | |
|         transform: translate(0.25rem, -50%);
 | |
|       }
 | |
| 
 | |
|       &:after {
 | |
|         transform: translate(-0.3rem, -50%);
 | |
|         border: 0.3rem solid transparent;
 | |
|         border-right: 0.3rem solid;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // Display
 | |
|     &:focus,
 | |
|     &:hover {
 | |
|       &::before,
 | |
|       &::after {
 | |
|         opacity: 1;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     @if $enable-transitions {
 | |
|       // Animations, excluding touch devices
 | |
|       @media (hover: hover) and (pointer: fine) {
 | |
|         // Default (top)
 | |
|         &:focus,
 | |
|         &:hover {
 | |
|           &::before,
 | |
|           &::after {
 | |
|             #{$css-var-prefix}tooltip-slide-to: translate(-50%, -0.25rem);
 | |
|             transform: translate(-50%, 0.75rem);
 | |
|             animation-duration: 0.2s;
 | |
|             animation-fill-mode: forwards;
 | |
|             animation-name: tooltip-slide;
 | |
|             opacity: 0;
 | |
|           }
 | |
| 
 | |
|           &::after {
 | |
|             #{$css-var-prefix}tooltip-caret-slide-to: translate(-50%, 0rem);
 | |
|             transform: translate(-50%, -0.25rem);
 | |
|             animation-name: tooltip-caret-slide;
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         // Bottom
 | |
|         &[data-placement="bottom"] {
 | |
|           &:focus,
 | |
|           &:hover {
 | |
|             &::before,
 | |
|             &::after {
 | |
|               #{$css-var-prefix}tooltip-slide-to: translate(-50%, 0.25rem);
 | |
|               transform: translate(-50%, -0.75rem);
 | |
|               animation-name: tooltip-slide;
 | |
|             }
 | |
| 
 | |
|             &::after {
 | |
|               #{$css-var-prefix}tooltip-caret-slide-to: translate(-50%, -0.3rem);
 | |
|               transform: translate(-50%, -0.5rem);
 | |
|               animation-name: tooltip-caret-slide;
 | |
|             }
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         // Left
 | |
|         &[data-placement="left"] {
 | |
|           &:focus,
 | |
|           &:hover {
 | |
|             &::before,
 | |
|             &::after {
 | |
|               #{$css-var-prefix}tooltip-slide-to: translate(-0.25rem, -50%);
 | |
|               transform: translate(0.75rem, -50%);
 | |
|               animation-name: tooltip-slide;
 | |
|             }
 | |
| 
 | |
|             &::after {
 | |
|               #{$css-var-prefix}tooltip-caret-slide-to: translate(0.3rem, -50%);
 | |
|               transform: translate(0.05rem, -50%);
 | |
|               animation-name: tooltip-caret-slide;
 | |
|             }
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         // Right
 | |
|         &[data-placement="right"] {
 | |
|           &:focus,
 | |
|           &:hover {
 | |
|             &::before,
 | |
|             &::after {
 | |
|               #{$css-var-prefix}tooltip-slide-to: translate(0.25rem, -50%);
 | |
|               transform: translate(-0.75rem, -50%);
 | |
|               animation-name: tooltip-slide;
 | |
|             }
 | |
| 
 | |
|             &::after {
 | |
|               #{$css-var-prefix}tooltip-caret-slide-to: translate(-0.3rem, -50%);
 | |
|               transform: translate(-0.05rem, -50%);
 | |
|               animation-name: tooltip-caret-slide;
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       @keyframes tooltip-slide {
 | |
|         to {
 | |
|           transform: var(#{$css-var-prefix}tooltip-slide-to);
 | |
|           opacity: 1;
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       @keyframes tooltip-caret-slide {
 | |
|         50% {
 | |
|           opacity: 0;
 | |
|         }
 | |
|         to {
 | |
|           transform: var(#{$css-var-prefix}tooltip-caret-slide-to);
 | |
|           opacity: 1;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | 
