@bardoui/vpopper
Version:
PopperJs powered popup for vue 3
195 lines (185 loc) • 4.11 kB
CSS
.v-popper-container {
display: block;
box-sizing: border-box;
max-width: 100%;
z-index: 1;
padding: 1px;
}
.v-popper-container[data-popper-placement^=top] {
padding-bottom: 7px;
}
.v-popper-container[data-popper-placement^=bottom] {
padding-top: 7px;
}
.v-popper-container[data-popper-placement^=left] {
padding-right: 7px;
}
.v-popper-container[data-popper-placement^=right] {
padding-left: 7px;
}
.v-popup {
display: block;
position: relative;
box-sizing: border-box;
padding: 1em;
color: #081e30;
background: #ffffff;
border-radius: 3px;
border: 1px solid #e1e6ea;
box-shadow: 0 3px 6px 0px rgba(141, 153, 174, 0.3), 0 6px 18px -6px rgba(141, 153, 174, 0.15);
}
.v-popup > .arrow {
position: absolute;
box-sizing: border-box;
border-style: solid;
border-color: transparent;
border-width: 5px;
z-index: -1;
}
[data-popper-placement^=top] .v-popup > .arrow {
border-bottom-width: 0;
border-top-color: #8d99ae;
top: 100%;
}
[data-popper-placement^=bottom] .v-popup > .arrow {
border-top-width: 0;
border-bottom-color: #8d99ae;
bottom: 100%;
}
[data-popper-placement^=left] .v-popup > .arrow {
border-right-width: 0;
border-left-color: #8d99ae;
left: 100%;
}
[data-popper-placement^=right] .v-popup > .arrow {
border-left-width: 0;
border-right-color: #8d99ae;
right: 100%;
}
.v-popup > .separator {
display: block;
box-sizing: border-box;
height: 1px;
background: #e1e6ea;
margin: 0 -1em;
}
.v-popup > .attachment {
display: block;
box-sizing: border-box;
margin: 0 -1em;
padding: 1em;
}
.v-popup > .attachment:first-child, .v-popup > .attachment.is-header {
margin-top: -1em;
}
.v-popup > .attachment:last-child, .v-popup > .attachment.is-footer {
margin-bottom: -1em;
}
.v-popup > .attachment.is-secondary {
background: #f8f9fa;
}
.v-popup.is-loading {
position: relative;
z-index: 0;
position: relative;
z-index: 0;
}
.v-popup.is-loading::before {
content: " ";
position: absolute;
z-index: 1;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.75);
}
.v-popup.is-loading::after {
text-rendering: optimizeLegibility;
display: block;
position: absolute;
box-sizing: border-box;
content: " ";
width: 2rem;
height: 2rem;
border: 2px solid #8d99ae;
border-top-color: transparent;
border-right-color: transparent;
border-radius: 50%;
animation: spin 500ms infinite linear;
left: 50%;
top: 50%;
transform: translate3d(-50%, -50%, 0);
z-index: 2;
}
.v-tooltip {
display: block;
position: relative;
box-sizing: border-box;
color: white;
background: rgba(0, 0, 0, 0.9);
padding: 0.5rem 1rem;
border-radius: 3px;
box-shadow: 0 3px 6px 0px rgba(141, 153, 174, 0.3), 0 6px 18px -6px rgba(141, 153, 174, 0.15);
}
.v-tooltip > .arrow {
position: absolute;
box-sizing: border-box;
border-style: solid;
border-color: transparent;
border-width: 4px;
}
[data-popper-placement^=top] .v-tooltip > .arrow {
border-bottom-width: 0;
border-top-color: black;
top: 100%;
}
[data-popper-placement^=bottom] .v-tooltip > .arrow {
border-top-width: 0;
border-bottom-color: black;
bottom: 100%;
}
[data-popper-placement^=left] .v-tooltip > .arrow {
border-right-width: 0;
border-left-color: black;
left: 100%;
}
[data-popper-placement^=right] .v-tooltip > .arrow {
border-left-width: 0;
border-right-color: black;
right: 100%;
}
.v-tooltip.is-loading {
position: relative;
z-index: 0;
position: relative;
z-index: 0;
}
.v-tooltip.is-loading::before {
content: " ";
position: absolute;
z-index: 1;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: black;
}
.v-tooltip.is-loading::after {
text-rendering: optimizeLegibility;
display: block;
position: absolute;
box-sizing: border-box;
content: " ";
width: 1em;
height: 1em;
border: 2px solid white;
border-top-color: transparent;
border-right-color: transparent;
border-radius: 50%;
animation: spin 500ms infinite linear;
left: 50%;
top: 50%;
transform: translate3d(-50%, -50%, 0);
z-index: 2;
}