UNPKG

funda-ui

Version:

React components using pure Bootstrap 5+ which does not contain any external style and script libraries.

246 lines (244 loc) 7.13 kB
/* ====================================================== <!-- Cascading Select --> /* ====================================================== */ .casc-menu__wrapper { --casc-menu-arrow-fill: #a5a5a5; --casc-menu-result-arrow-fill: #a5a5a5; --casc-menu-result-font-size: 1rem; --casc-menu-result-padding-x: 0.75rem; --casc-menu-result-padding-y: 0.375rem; } .casc-menu__wrapper .casc-menu__result { position: absolute; left: auto; z-index: 1; top: 0; padding: var(--casc-menu-result-padding-y) var(--casc-menu-result-padding-x); font-size: var(--casc-menu-result-font-size); font-weight: 400; line-height: 1.5; color: inherit; /* text */ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: calc(100% - 20px); /* required */ display: flex; } .casc-menu__wrapper .casc-menu__result div { /* required */ display: flex; } .casc-menu__wrapper .casc-menu__result span { padding: 3px; } .casc-menu__wrapper .casc-menu__result svg { margin: 0 0.3rem; } .casc-menu__wrapper .casc-menu__result svg path { fill: var(--casc-menu-result-arrow-fill); } .casc-menu__wrapper .casc-menu__closemask { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0); user-select: none; } .casc-menu__wrapper .casc-menu__trigger { position: relative; z-index: 0; } .casc-menu__wrapper .casc-menu__val { position: relative; } .casc-menu__wrapper .casc-menu__val:not(.inputable) input { cursor: pointer; color: transparent !important; } .casc-menu__wrapper .casc-menu__val:not(.inputable) input:focus { color: transparent !important; } .casc-menu__wrapper .casc-menu__val .arrow { position: absolute; top: 50%; transform: translateY(-50%); right: 0.5rem; } .casc-menu__wrapper .casc-menu__val .arrow svg .arrow-fill-g { fill: var(--casc-menu-arrow-fill); } /*------ List ------*/ .casc-menu__items-wrapper { --casc-menu-scrollbar-color: rgba(0, 0, 0, 0.2); --casc-menu-scrollbar-track: rgba(0, 0, 0, 0); --casc-menu-scrollbar-h: 3px; --casc-menu-scrollbar-w: 3px; --casc-menu-per-col-maxheight: 300px; --casc-menu-opt-font-size: 0.875rem; --casc-menu-opt-padding-x: .4rem; --casc-menu-opt-padding-y: .3rem; --casc-menu-opt-header-border-color: rgba(1, 1, 1, .2); --casc-menu-opt-header-text-color: #999; --casc-menu-opt-hover-bg: #f7f7f7; --casc-menu-opt-active-bg: #eeeeee; --casc-menu-items-box-shadow: 0 5px 15px 5px rgba(80, 102, 224, 0.08); --casc-menu-items-bg: #fff; --casc-menu-items-color: inherit; --casc-menu-items-border-color: rgba(0, 0, 0, .1); --casc-menu-items-li-border-color: #eee; --casc-menu-loader-color: #000000; --casc-menu-clean-btn-color: #b5b5b5; --casc-menu-searchbox-border-color: #ddd; box-shadow: var(--casc-menu-items-box-shadow); position: absolute; left: auto; border: 1px solid var(--casc-menu-items-border-color); background: var(--casc-menu-items-bg); padding: 10px; box-sizing: border-box; top: 2.3rem; border-radius: 5px; width: max-content; /* required -> the content will not wrap at all even if it causes overflows*/ color: var(--casc-menu-items-color); display: none; z-index: 1055; /* --bs-modal-zindex */ /* each item */ /* Column */ /* Searchbox */ /* Options */ } .casc-menu__items-wrapper.active { display: block !important; } .casc-menu__items-wrapper ul, .casc-menu__items-wrapper li { list-style: none; margin: 0; padding: 0; } .casc-menu__items-wrapper .casc-menu__items-loader { position: absolute; pointer-events: none; left: 0; top: 0; margin-left: 5px; z-index: 1; width: 12px; height: 12px; text-align: center; transform-origin: center; transform: translate(2px, 5px) rotate(0); animation: 1s linear infinite casc-menu__spinner; } .casc-menu__items-wrapper .casc-menu__items-loader svg { vertical-align: top; } .casc-menu__items-wrapper .casc-menu__items-loader svg path { fill: var(--casc-menu-loader-color); } @keyframes casc-menu__spinner { to { transform: translate(2px, 5px) rotate(-360deg); } } .casc-menu__items-wrapper .casc-menu__close svg { opacity: 0.4; } .casc-menu__items-wrapper .casc-menu__close:hover svg { transition: 0.2s ease-out; opacity: 0.7; } .casc-menu__items-wrapper ul { transition: 0.2s ease-out; min-width: 8px; min-height: 9px; } .casc-menu__items-wrapper ul > li { position: relative; cursor: pointer; float: left; padding: 0 10px; margin-right: 15px; border-right: 1px dotted var(--casc-menu-items-li-border-color); transition: 0.2s ease-out; } .casc-menu__items-wrapper ul > li.hide-col { display: none; } .casc-menu__items-wrapper ul > li:last-child { margin-right: 0; border-right: none; } .casc-menu__items-wrapper .casc-menu__items-col { max-height: var(--casc-menu-per-col-maxheight); overflow-y: auto; } .casc-menu__items-wrapper .casc-menu__items-col::-webkit-scrollbar { width: var(--casc-menu-scrollbar-w); } .casc-menu__items-wrapper .casc-menu__items-col::-webkit-scrollbar-thumb { background: var(--casc-menu-scrollbar-color); } .casc-menu__items-wrapper .casc-menu__items-col::-webkit-scrollbar-track { background: var(--casc-menu-scrollbar-track); } .casc-menu__items-wrapper .casc-menu__items-col-searchbox input { border: 1px solid var(--casc-menu-searchbox-border-color); border-radius: 0.15rem; width: 100%; background: transparent; font-size: 0.75rem; } .casc-menu__items-wrapper .casc-menu__opt { padding: var(--casc-menu-opt-padding-y) var(--casc-menu-opt-padding-x); font-size: var(--casc-menu-opt-font-size); border-radius: 2px; } .casc-menu__items-wrapper .casc-menu__opt:hover { background: var(--casc-menu-opt-hover-bg); } .casc-menu__items-wrapper .casc-menu__opt.active { background: var(--casc-menu-opt-active-bg); } .casc-menu__items-wrapper .casc-menu__opt-header { padding: var(--casc-menu-opt-padding-y) var(--casc-menu-opt-padding-x); font-size: var(--casc-menu-opt-font-size); border-bottom: 1px dotted var(--casc-menu-opt-header-border-color); border-radius: 2px; position: sticky; top: 0; background: var(--casc-menu-items-bg); color: var(--casc-menu-opt-header-text-color); display: flex; align-items: center; } .casc-menu__items-wrapper .casc-menu__opt-header > span { cursor: default; } .casc-menu__items-wrapper .casc-menu__opt-header:hover { background: var(--casc-menu-opt-hover-bg); } .casc-menu__items-wrapper .casc-menu__opt-header.active { background: var(--casc-menu-opt-active-bg); } .casc-menu__items-wrapper .casc-menu__opt-header .casc-menu__opt-header__clean { display: inline-block; margin-left: 0.2rem; padding: 0.1rem; } .casc-menu__items-wrapper .casc-menu__opt-header .casc-menu__opt-header__clean:hover { transform: scale(1.1); } .casc-menu__items-wrapper .casc-menu__opt-header .casc-menu__opt-header__clean svg { border: 1px var(--casc-menu-clean-btn-color) solid; border-radius: 50%; } .casc-menu__items-wrapper .casc-menu__opt-header .casc-menu__opt-header__clean svg path { fill: var(--casc-menu-clean-btn-color); }