UNPKG

shineout

Version:

Shein 前端组件库

170 lines (140 loc) 3.97 kB
@import '../../styles/variables.less'; @import '../../styles/themes/@{so-theme}.less'; @tooltip-prefix: ~'@{so-prefix}-tooltip'; @arrowOffset: (-@tooltip-arrow-width + 1px); .@{tooltip-prefix} { @keyframe-opacity: ~'@{tooltip-prefix}-kf-opacity'; @keyframe-top: ~'@{tooltip-prefix}-kf-top'; @keyframe-right: ~'@{tooltip-prefix}-kf-right'; @keyframe-bottom: ~'@{tooltip-prefix}-kf-bottom'; @keyframe-left: ~'@{tooltip-prefix}-kf-left'; @keyframes @keyframe-opacity { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes @keyframe-top { 0% { margin-top: 0; } 100% { margin-top: -@tooltip-margin - @tooltip-arrow-width; } } @keyframes @keyframe-bottom { 0% { margin-top: 0; } 100% { margin-top: @tooltip-margin + @tooltip-arrow-width; } } @keyframes @keyframe-left { 0% { margin-left: 0; } 100% { margin-left: -@tooltip-margin - @tooltip-arrow-width; } } @keyframes @keyframe-right { 0% { margin-left: 0; } 100% { margin-left: @tooltip-margin + @tooltip-arrow-width; } } position: absolute; z-index: @zindex-tooltip; display: block; font-size: @font-size-small; word-wrap: break-word; pointer-events: none; &-animation { transition: opacity 0.3 ease, transform 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); } &-disabled-wrapper { display: inline-block; } &-arrow { position: absolute; z-index: 1; display: inline-block; width: 0; height: 0; } &-inner { position: relative; z-index: 2; max-width: @tooltip-max-width; padding: @tooltip-padding-y @tooltip-padding-x; background-color: @tooltip-bg; border-radius: 4px; color: @tooltip-color; text-align: center; } &-top { margin-top: -@tooltip-margin - @tooltip-arrow-width; transform: translate(-50%, -100%); .@{tooltip-prefix}-arrow { bottom: @arrowOffset; left: 50%; border-top: @tooltip-arrow-width solid @tooltip-bg; border-right: @tooltip-arrow-width solid transparent; border-left: @tooltip-arrow-width solid transparent; transform: translate(-50%, 0); } } &-top&-animation { animation: @keyframe-opacity 0.3s ease, @keyframe-top 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); } &-right { margin-left: @tooltip-margin + @tooltip-arrow-width; transform: translate(0, -50%); .@{tooltip-prefix}-arrow { top: 50%; left: @arrowOffset; border-top: @tooltip-arrow-width solid transparent; border-right: @tooltip-arrow-width solid @tooltip-bg; border-bottom: @tooltip-arrow-width solid transparent; transform: translateY(-50%); } } &-right&-animation { animation: @keyframe-opacity 0.3s ease, @keyframe-right 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); } &-left { margin-left: -@tooltip-margin - @tooltip-arrow-width; transform: translate(-100%, -50%); .@{tooltip-prefix}-arrow { top: 50%; right: @arrowOffset; border-top: @tooltip-arrow-width solid transparent; border-bottom: @tooltip-arrow-width solid transparent; border-left: @tooltip-arrow-width solid @tooltip-bg; transform: translateY(-50%); } } &-left&-animation { animation: @keyframe-opacity 0.3s ease, @keyframe-left 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); } &-bottom { margin-top: @tooltip-margin + @tooltip-arrow-width; transform: translateX(-50%); .@{tooltip-prefix}-arrow { top: @arrowOffset; left: 50%; border-right: @tooltip-arrow-width solid transparent; border-bottom: @tooltip-arrow-width solid @tooltip-bg; border-left: @tooltip-arrow-width solid transparent; transform: translate(-50%, 0); } } &-bottom&-animation { animation: @keyframe-opacity 0.3s ease, @keyframe-bottom 0.3s cubic-bezier(0.71, 1.7, 0.77, 1.24); } }