UNPKG

@exadel/esl

Version:

Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components

66 lines (65 loc) 1.87 kB
esl-popup:not(.esl-popup) { display: none; } .esl-popup { --_border-width: var(--esl-popup-border-width, 1px); --_border: var(--_border-width) solid var(--esl-popup-border-color, #dbdbdb); position: absolute; left: 0; top: 0; display: block; opacity: 0; visibility: hidden; transition: visibility 0.5s 0.2s; box-sizing: border-box; box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2); border: var(--_border); background: var(--esl-popup-background-color, #fff); cursor: default; will-change: auto; } .esl-popup[open] { z-index: var(--esl-popup-z-index, 999); opacity: 1; visibility: visible; transition: opacity 0.15s, transform 0.2s; } .esl-popup:not([open]) { display: none; } .esl-popup .esl-popup-arrow { --_size: var(--esl-popup-arrow-size, 20px); --_half: calc(var(--_size) / 2); --_shift: calc(0.2071 * var(--_size) - var(--_border-width)); position: absolute; top: calc(-1 * var(--_half) - var(--_border-width)); bottom: 100%; z-index: -1; transform: rotate(45deg); width: var(--_size); height: var(--_size); margin-left: var(--_shift); border-left: var(--_border); border-top: var(--_border); background: inherit; } .esl-popup:is([placed-at='top'], [placed-at='bottom-inner']) .esl-popup-arrow { top: auto; bottom: calc(-1 * var(--_half) - var(--_border-width)); transform: rotate(225deg); } .esl-popup:is([placed-at='left'], [placed-at='right-inner']) .esl-popup-arrow { right: calc(-1 * var(--_half) - var(--_border-width)); left: auto; transform: rotate(135deg); margin-top: var(--_shift); } .esl-popup:is([placed-at='right'], [placed-at='left-inner']) .esl-popup-arrow { left: calc(-1 * var(--_half) - var(--_border-width) - var(--_shift)); right: auto; transform: rotate(315deg); margin-top: var(--_shift); } .esl-popup.disable-arrow .esl-popup-arrow { display: none; }