wix-style-react
Version:
wix-style-react
164 lines (134 loc) • 4.57 kB
CSS
@st-import [
--wds-popover-border,
--wds-shadow-surface-overlay,
--wds-color-fill-surface-overlay,
--wds-color-fill-surface-overlay-dark,
--wds-color-text-standard-primary,
--wds-color-text-standard-primary-light,
--wds-font-size-body-small,
--wds-font-line-height-body-small,
] from '@wix/design-system-tokens/all.st.css';
@st-import [D10, D80] from "../Foundation/stylable/colors.st.css";
@st-import [shadow30] from "../Foundation/stylable/shadows.st.css";
@st-import [ease-3, ease-4] from "../Foundation/stylable/easing.st.css";
@st-import calc from "./PopoverCore/utils/calc";
:vars {
contentArrowSize: 8px;
}
.root {
-st-states: fluid, skin(enum(light, dark));
position: relative;
display: inline-block;
}
.root:fluid {
display: block;
width: 100%;
}
.content {
-st-states: placement(enum(top, top-start, top-end, bottom, bottom-start, bottom-end, left, left-start, left-end, right, right-start, right-end)), skin(enum(light, dark)), hasArrow;
border: none;
border-radius: var(--wds-popover-border, 8px);
box-sizing: border-box;
box-shadow: var(--wds-shadow-surface-overlay, value(shadow30));
font-size: var(--wds-font-size-body-small, 14px);
line-height: var(--wds-font-line-height-body-small, 18px);
}
.content:skin(light) {
color: var(--wds-color-text-standard-primary, value(D10));
background: var(--wds-color-fill-surface-overlay, white);
}
.content:skin(dark) {
color: var(--wds-color-text-standard-primary-light, value(D80));
background: var(--wds-color-fill-surface-overlay-dark, value(D10));
}
.content:hasArrow:placement(right),
.content:hasArrow:placement(right-start),
.content:hasArrow:placement(right-end) {
margin-left: calc(value(contentArrowSize) - 2px);
}
.content:hasArrow:placement(left),
.content:hasArrow:placement(left-start),
.content:hasArrow:placement(left-end) {
margin-right: calc(value(contentArrowSize) - 2px);
}
.content:hasArrow:placement(top),
.content:hasArrow:placement(top-start),
.content:hasArrow:placement(top-end) {
margin-bottom: calc(value(contentArrowSize) - 2px);
}
.content:hasArrow:placement(bottom),
.content:hasArrow:placement(bottom-start),
.content:hasArrow:placement(bottom-end) {
margin-top: calc(value(contentArrowSize) - 2px);
}
.arrow {
-st-states: skin(enum(light, dark)), placement(enum(top, top-start, top-end, bottom, bottom-start, bottom-end, left, left-start, left-end, right, right-start, right-end));
position: absolute;
width: value(contentArrowSize);
height: value(contentArrowSize);
background: transparent;
box-sizing: border-box;
transform: rotateZ(45deg);
border-style: solid;
box-shadow: 3px 3px 6px rgba(0, 0, 0, .1);
border-width: calc(value(contentArrowSize) / 2);
margin: 0;
}
.arrow:skin(light) {
border-color: transparent var(--wds-color-text-standard-primary-light, value(D80)) var(--wds-color-text-standard-primary-light, value(D80)) transparent;
}
.arrow:skin(dark) {
border-color: transparent var(--wds-color-fill-surface-overlay-dark, value(D10)) var(--wds-color-fill-surface-overlay-dark, value(D10)) transparent;
}
.arrow:placement(right),
.arrow:placement(right-start),
.arrow:placement(right-end) {
transform: rotateZ(135deg);
left: calc(value(contentArrowSize) / 2 - 2px);
margin-top: value(contentArrowSize);
margin-bottom: value(contentArrowSize);
}
.arrow:placement(left),
.arrow:placement(left-start),
.arrow:placement(left-end) {
transform: rotateZ(-45deg);
right: calc(value(contentArrowSize) / 2 - 2px);
margin-top: value(contentArrowSize);
margin-bottom: value(contentArrowSize);
}
.arrow:placement(top),
.arrow:placement(top-start),
.arrow:placement(top-end) {
transform: rotateZ(45deg);
bottom: calc(value(contentArrowSize) / 2 - 2px);
margin-left: value(contentArrowSize);
margin-right: value(contentArrowSize);
}
.arrow:placement(bottom),
.arrow:placement(bottom-start),
.arrow:placement(bottom-end) {
transform: rotateZ(-135deg);
top: calc(value(contentArrowSize) / 2 - 2px);
margin-left: value(contentArrowSize);
margin-right: value(contentArrowSize);
}
.element {}
.animationEnter {
opacity: 0;
transform: scale(0.9);
}
.animationEnterActive {
opacity: 1;
transform: scale(1);
transition: opacity 150ms value(ease-3), transform 150ms value(ease-3);
}
.animationExit {
opacity: 1;
transform: scale(1);
}
.animationExitActive {
opacity: 0;
transform: scale(0.9);
transition: opacity 100ms value(ease-4), transform 100ms value(ease-4);
}
/* st-namespace-reference="../../../src/Popover/Popover.st.css" */