UNPKG

@exadel/esl

Version:

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

229 lines (228 loc) 4.87 kB
.esl-select { display: inline-block; position: relative; min-width: 150px; max-width: 100%; } .esl-select [esl-select-target] { /* Visually hidden */ position: absolute; border: 0; padding: 0; overflow: hidden; opacity: 0; clip: rect(0, 0, 0, 0); width: 100%; height: 100%; pointer-events: none; } .esl-select[disabled] { pointer-events: none; color: #aaa; } .esl-select[disabled] .esl-select-text, .esl-select[disabled] .esl-select-renderer::after { color: #aaa; } .esl-select[disabled] .esl-select-clear-btn { display: none; } .esl-select .esl-select-renderer::after { content: '\2BC6'; display: inline-block; flex: 0 0 auto; width: 20px; height: 27px; z-index: 1; padding: 0; pointer-events: none; color: #0097e7; vertical-align: middle; text-align: center; font-weight: bold !important; transition: transform 0.2s linear; transform-origin: center center; } .esl-select[open] .esl-select-renderer::after { transform: rotateX(180deg); } .esl-select [esl-select-target]:invalid + .esl-select-renderer { border: 1px solid #b22; } esl-select-renderer.esl-select-renderer.esl-select-renderer { display: flex; align-items: center; } esl-select-renderer::before { content: attr(empty-text); color: #aaa; } esl-select-renderer[has-value]::before { display: none; } esl-select-renderer .esl-select-text { display: inline-block; white-space: nowrap; max-height: 100%; } esl-select-renderer .esl-select-text + .esl-select-text { margin-left: 10px; } esl-select-renderer .esl-select-text-container { display: block; flex: 1 1 auto; white-space: nowrap; overflow: hidden; } esl-select-renderer .esl-select-clear-btn { flex: 0 0 auto; width: 15px; height: 15px; padding: 0; margin: 0 10px; font-size: 14px; line-height: 14px; border: none; background: transparent; } esl-select-renderer .esl-select-clear-btn::before { content: '\2715'; } esl-select-renderer:not([multiple]) .esl-select-clear-btn { display: none; } .esl-select-dropdown { display: block; position: absolute; top: 0; z-index: 100; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity 0.25s linear, visibility 0s linear 0.25s; } .esl-select-dropdown[open] { visibility: visible; pointer-events: all; opacity: 1; transition: opacity 0.25s linear, visibility 0s linear 0s; } .esl-select-dropdown .esl-select-list { max-height: 50vh; box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.2); } .esl-select-dropdown .esl-select-list .esl-select-list-container { margin-right: 20px; } .esl-select-dropdown .esl-select-list esl-scrollbar { top: 6px; bottom: 6px; right: 2px; } .esl-select-dropdown .esl-select-list[multiple] esl-scrollbar { top: 56px; } esl-select-item { display: block; cursor: pointer; position: relative; padding: 15px 15px 15px 45px; line-height: 20px; vertical-align: middle; } esl-select-item::before { content: ''; cursor: pointer; position: absolute; top: 15px; left: 15px; width: 20px; height: 20px; border: 2px solid #0097e7; border-radius: 4px; background-color: #fff; } esl-select-item::after { content: ''; cursor: pointer; position: absolute; top: 20px; left: 19px; width: 12px; height: 6px; border: 2px solid #fff; border-top: none; border-right: none; transform: rotate(-45deg); opacity: 0; transition: opacity 0.4s ease-in; } esl-select-item[selected]::before { background-color: #0097e7; } esl-select-item[selected]::after { opacity: 1; } esl-select-item.last-in-group:not(:last-of-type) { border-bottom: 1px solid #ccc; } esl-select-item[disabled], [disabled] esl-select-item { pointer-events: none; color: #aaa; } esl-select-item[disabled]::before, [disabled] esl-select-item::before { border-color: #aaa; } esl-select-item[disabled][selected]::before, [disabled] esl-select-item[selected]::before { background-color: #aaa; } .esl-select-list { display: flex; flex-flow: column; position: relative; overflow: hidden; background: #fff; border: 1px solid #ccc; min-height: 50px; height: auto; max-height: 400px; } .esl-select-list > [esl-select-target] { /* Visually hidden */ position: absolute; width: 0; height: 0; border: 0; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); } .esl-select-list esl-scrollbar { top: 5px; bottom: 5px; right: 10px; } .esl-select-list[multiple] esl-scrollbar { top: 60px; } .esl-select-list .esl-select-list-container { flex: 1 1 auto; height: 100%; margin-right: 16px; } .esl-select-list .esl-select-item.esl-select-all-item { flex: 0 0 auto; border-bottom: 1px solid #ccc; } .esl-select-list:not([multiple]) .esl-select-all-item { display: none; } /* stylelint-disable */ _:-ms-fullscreen, :root .esl-select-list { height: 400px; } /* stylelint-enable */