wix-style-react
Version:
wix-style-react
158 lines (124 loc) • 3.21 kB
CSS
:import {
-st-from: "wix-ui-core/src/mixins/calc";
-st-default: calc;
}
:import {
-st-from: "wix-ui-core/index.st.css";
-st-named: Popover;
}
:import {
-st-from: "wix-ui-backoffice/src/colors.st.css";
-st-named: D10, WHITE;
}
:import {
-st-from: "wix-ui-backoffice/src/shadows.st.css";
-st-named: shadow30;
}
:vars {
contentArrowSize: 8px;
}
.root {
-st-states: theme(string);
-st-extends: Popover;
}
.root[data-hook*="popover-portal"] {
/* This will cause the container's height to stay the same */
display: block;
}
/* Default styles with light theme */
.root::popoverContent {
border: none;
border-radius: 8px;
box-sizing: border-box;
box-shadow: value(shadow30);
-webkit-font-smoothing: antialiased;
font-size: 14px;
line-height: 18px;
/* Light theme specific stuff */
color: value(D10);
background: value(WHITE);
}
/* Overriding arrow definitions */
.root::popover::arrow {
width: value(contentArrowSize);
height: value(contentArrowSize);
background: transparent;
box-sizing: border-box;
/* Defaults for the top arrow */
transform: rotateZ(45deg);
box-shadow: 3px 3px 6px rgba(0, 0, 0, .1);
}
.root::popover[data-placement]::arrow {
border-width: calc(value(contentArrowSize) / 2);
border-color: transparent value(WHITE) value(WHITE) transparent;
margin: 0;
}
/*
* Right arrow
*/
.root::popover[data-placement*="right"].withArrow {
padding-left: calc(value(contentArrowSize) - 2);
}
.root::popover[data-placement*="right"]::arrow {
transform: rotateZ(135deg);
left: calc(value(contentArrowSize) / 2 - 2);
margin-top: value(contentArrowSize);
margin-bottom: value(contentArrowSize);
}
/*
* Left arrow
*/
.root::popover[data-placement*="left"].withArrow {
padding-right: calc(value(contentArrowSize) - 2);
}
.root::popover[data-placement*="left"]::arrow {
transform: rotateZ(-45deg);
right: calc(value(contentArrowSize) / 2 - 2);
margin-top: value(contentArrowSize);
margin-bottom: value(contentArrowSize);
}
/*
* Top arrow
*/
.root::popover[data-placement*="top"].withArrow {
padding-bottom: calc(value(contentArrowSize) - 2);
}
.root::popover[data-placement*="top"]::arrow {
transform: rotateZ(45deg);
bottom: calc(value(contentArrowSize) / 2 - 2);
margin-left: value(contentArrowSize);
margin-right: value(contentArrowSize);
}
/*
* Bottom arrow
*/
.root::popover[data-placement*="bottom"].withArrow {
padding-top: calc(value(contentArrowSize) - 2);
}
.root::popover[data-placement*="bottom"]::arrow {
transform: rotateZ(-135deg);
top: calc(value(contentArrowSize) / 2 - 2);
margin-left: value(contentArrowSize);
margin-right: value(contentArrowSize);
}
/* Dark theme */
.root:theme(dark)::popoverContent {
color: value(WHITE);
background: value(D10);
}
.root:theme(dark)::popover::arrow {
border-color: transparent value(D10) value(D10) transparent;
}
/*
* Entrance and exit animation
*/
.root::popoverAnimation-enter {
opacity: 0.85;
transform: scale(0.9);
}
.root::popoverAnimation-enter-active {
opacity: 1;
transform: scale(1);
transition: opacity 300ms cubic-bezier(0.23, 1, 0.32, 1),
transform 300ms cubic-bezier(0.23, 1, 0.32, 1);
}