UNPKG

wix-style-react

Version:
164 lines (134 loc) 4.57 kB
@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" */