UNPKG

@skem9/dselect

Version:

Dropdown select box for bootstrap 5 with search, multiple, tag and image support

334 lines (321 loc) 10.7 kB
.dselect-wrapper { position: relative; } .dselect-wrapper .form-select { padding-left: 0.75rem; display: flex; align-items: center; flex-wrap: wrap; gap: 0.25rem; text-align: left; background-color: var(--bs-body-bg, #fff); border: 1px solid var(--bs-border-color, var(--bs-border-color)); min-height: calc(1.5 * 1em + 0.75rem + 2px); } .dselect-wrapper .form-select.show { border-color: rgb(134, 182.5, 254); outline: 0; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } .dselect-wrapper .form-select.dselect-clearable { padding-right: 3.25rem; } .dselect-wrapper .form-select.form-select-sm { padding-left: 0.5rem; min-height: calc(1.5 * 1em + 0.5rem + 2px); } .dselect-wrapper .form-select.form-select-sm.dselect-clearable { padding-right: 3.125rem; } .dselect-wrapper .form-select.form-select-lg { padding-left: 1rem; min-height: calc(1.5 * 1em + 1rem + 2px); } .dselect-wrapper .form-select.form-select-lg.dselect-clearable { padding-right: 3.375rem; } .dselect-wrapper .dropdown-menu { padding: 0.375rem; width: 100%; max-width: 100%; background-color: var(--bs-dropdown-bg, var(--bs-body-bg)); border: var(--bs-border-width) solid var(--bs-dropdown-border-color, var(--bs-border-color-translucent)); border-radius: var(--bs-border-radius); position: absolute; top: 100%; left: 0; z-index: 1000; min-width: 10rem; margin: 0.125rem 0 0; color: var(--bs-dropdown-color, var(--bs-body-color)); } .dselect-wrapper .dropdown-menu > .d-flex.flex-column { gap: 0.375rem; } .dselect-wrapper .form-select-sm + .dropdown-menu { padding: 0.25rem; font-size: 0.875rem; } .dselect-wrapper .form-select-lg + .dropdown-menu { padding: 0.5rem; font-size: 1.25rem; } .dselect-wrapper .dropdown-item, .dselect-wrapper .dropdown-header { padding: 0.25rem 0.375rem; background-color: transparent; border: none; color: var(--bs-dropdown-link-color, var(--bs-body-color)); text-decoration: none; white-space: nowrap; width: 100%; text-align: left; } .dselect-wrapper .dropdown-item:hover, .dselect-wrapper .dropdown-item:focus, .dselect-wrapper .dropdown-header:hover, .dselect-wrapper .dropdown-header:focus { background-color: var(--bs-dropdown-link-hover-bg, var(--bs-tertiary-bg)); color: var(--bs-dropdown-link-hover-color, var(--bs-body-color)); } .dselect-wrapper .dropdown-item.active, .dselect-wrapper .dropdown-header.active { background-color: var(--bs-dropdown-link-active-bg, #0d6efd); color: var(--bs-dropdown-link-active-color, #fff); } .dselect-wrapper .dropdown-item.dselect-highlighted, .dselect-wrapper .dropdown-header.dselect-highlighted { background-color: var(--bs-dropdown-link-hover-bg, var(--bs-tertiary-bg)); color: var(--bs-dropdown-link-hover-color, var(--bs-body-color)); outline: 2px solid var(--bs-primary, #0d6efd); outline-offset: -2px; } .dselect-wrapper .dropdown-item:disabled, .dselect-wrapper .dropdown-header:disabled { color: var(--bs-dropdown-link-disabled-color, var(--bs-tertiary-color)); pointer-events: none; background-color: transparent; } .dselect-wrapper .form-select-sm + .dropdown-menu .dropdown-item, .dselect-wrapper .form-select-sm + .dropdown-menu .dropdown-header { padding: calc(0.25rem - 1px) 0.25rem; } .dselect-wrapper .form-select-lg + .dropdown-menu .dropdown-item, .dselect-wrapper .form-select-lg + .dropdown-menu .dropdown-header { padding: 0.25rem 0.5rem; } .dselect-wrapper .form-control { border-radius: calc(0.375rem - 1px); box-shadow: 0 0 0 0.005rem rgba(13, 110, 253, 0.25) !important; border-color: var(--bs-border-color, var(--bs-border-color)) !important; background-color: var(--bs-body-bg, var(--bs-body-bg)); color: var(--bs-body-color, var(--bs-body-color)); padding: 0.25rem calc(0.375rem - 1px); font-size: inherit; } .dselect-wrapper .form-control:focus { border-color: rgb(134, 182.5, 254); } .dselect-wrapper .form-select-sm + .dropdown-menu .form-control { padding: calc(0.25rem - 1px) calc(0.25rem - 1px); } .dselect-wrapper .form-select-lg + .dropdown-menu .form-control { padding: 0.25rem calc(0.5rem - 1px); } .dselect-wrapper .dselect-no-results { padding: 0.25rem 0.375rem; color: var(--bs-secondary-color, var(--bs-secondary-color)); font-style: italic; text-align: center; } .dselect-wrapper .form-select-sm + .dropdown-menu .dselect-no-results { padding: calc(0.25rem - 1px) 0.25rem; } .dselect-wrapper .form-select-lg + .dropdown-menu .dselect-no-results { padding: 0.25rem 0.5rem; } .dselect-wrapper .dselect-tag { background-color: var(--bs-secondary, #6c757d); color: var(--bs-white, #fff); padding-left: calc(0.5rem + 14px); padding-right: 0.5rem; padding-top: 0.125rem; padding-bottom: 0.125rem; border-radius: 0.375rem; height: calc(1.5 * 1rem); line-height: calc(1.5 * 1rem - 1px); position: relative; opacity: 0.8; display: inline-flex; align-items: center; font-size: 0.875rem; transition: opacity 0.3s ease; } @media (prefers-reduced-motion: reduce) { .dselect-wrapper .dselect-tag { transition: none; } } .dselect-wrapper .dselect-tag:hover { opacity: 1; } .dselect-wrapper .form-select-sm .dselect-tag { height: auto; line-height: inherit; font-size: multiply(0.875rem, 0.85); padding-left: calc(0.375rem + 12px); padding-right: 0.375rem; } .dselect-wrapper .form-select-lg .dselect-tag { height: calc(1.5 * 1.25rem); line-height: calc(1.5 * 1.25rem); font-size: 1rem; } .dselect-wrapper .dselect-tag-remove { position: absolute; left: 0.25rem; top: 50%; margin-top: -7px; color: rgba(255, 255, 255, 0.35); cursor: pointer; transition: color 0.15s ease-in-out; } @media (prefers-reduced-motion: reduce) { .dselect-wrapper .dselect-tag-remove { transition: none; } } .dselect-wrapper .dselect-tag-remove:hover { color: #fff; } .dselect-wrapper .dselect-placeholder { color: var(--bs-secondary-color, var(--bs-secondary-color)); font-style: italic; } .dselect-wrapper .dropdown-header ~ .dropdown-item { padding-left: 0.75rem; padding-right: 0.75rem; } .dselect-wrapper .form-select-sm + .dropdown-menu .dropdown-header { font-size: 0.85em; } .dselect-wrapper .form-select-sm + .dropdown-menu .dropdown-header ~ .dropdown-item { padding-left: 0.5rem; padding-right: 0.5rem; } .dselect-wrapper .form-select-lg + .dropdown-menu .dropdown-header { font-size: 0.85em; } .dselect-wrapper .form-select-lg + .dropdown-menu .dropdown-header ~ .dropdown-item { padding-left: 1rem; padding-right: 1rem; } .dselect-wrapper .dselect-clear { position: absolute; padding: 0; border: 0; box-shadow: none; background: transparent; top: 0; bottom: 0; right: 2.25rem; display: flex; align-items: center; color: var(--bs-secondary-color, var(--bs-secondary-color)); cursor: pointer; z-index: 3; } .dselect-wrapper .dselect-clear:hover { color: var(--bs-body-color, #212529); } .dselect-wrapper .dselect-clear svg { width: 0.625rem; height: 0.625rem; } .dselect-wrapper [data-dselect-text=""] ~ .dselect-clear { display: none; } .was-validated .form-select:invalid + .dselect-wrapper .form-select, .form-select.is-invalid + .dselect-wrapper .form-select { border-color: #dc3545; } .was-validated .form-select:invalid + .dselect-wrapper .form-select.show, .was-validated .form-select:invalid + .dselect-wrapper .form-select:focus, .form-select.is-invalid + .dselect-wrapper .form-select.show, .form-select.is-invalid + .dselect-wrapper .form-select:focus { box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); } .was-validated .form-select:valid + .dselect-wrapper .form-select, .form-select.is-valid + .dselect-wrapper .form-select { border-color: #198754; } .was-validated .form-select:valid + .dselect-wrapper .form-select.show, .was-validated .form-select:valid + .dselect-wrapper .form-select:focus, .form-select.is-valid + .dselect-wrapper .form-select.show, .form-select.is-valid + .dselect-wrapper .form-select:focus { box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); } .dselect-wrapper .dropdown-item:focus-visible, .dselect-wrapper .dropdown-item:focus-within { color: var(--bs-dropdown-link-active-color, #fff); text-decoration: none; background-color: var(--bs-dropdown-link-active-bg, #0d6efd); outline: none !important; border-style: none !important; border-color: transparent !important; } .dselect-wrapper .dselect-items { max-height: 360px; overflow-y: auto; overflow-x: hidden; } .input-group-lg > .dselect-wrapper > .form-select { padding: 0.5rem 1rem; font-size: 1.25rem; border-radius: var(--bs-border-radius-lg); } .input-group-sm > .dselect-wrapper > .form-select { padding: 0.25rem 0.5rem; font-size: 0.875rem; border-radius: var(--bs-border-radius-sm); } .input-group-lg > .dselect-wrapper > .form-select, .input-group-sm > .dselect-wrapper > .form-select { padding-right: 3rem; } .input-group > .dselect-wrapper { position: relative; flex: 1 1 auto; width: 1%; min-width: 0; } .input-group > .dselect-wrapper:focus { z-index: 5; } .input-group > .dselect-wrapper:last-child > .form-select { border-top-left-radius: 0; border-bottom-left-radius: 0; } .input-group > .dselect-wrapper:nth-last-child(n+3) > .form-select { border-top-right-radius: 0; border-bottom-right-radius: 0; } .input-group > .form-select:first-child + .dselect-wrapper:not(:last-child) > .form-select { border-top-right-radius: 0; border-bottom-right-radius: 0; } .input-group.has-validation > .dselect-wrapper:nth-last-child(n+4) > .form-select { border-top-right-radius: 0; border-bottom-right-radius: 0; } .input-group.has-validation > .dselect-wrapper:not(:nth-last-child(n+4)) > .form-select { border-top-right-radius: 0.375rem; border-bottom-right-radius: 0.375rem; border-top-left-radius: 0; border-bottom-left-radius: 0; } .dselect-wrapper .d-none { display: none !important; } /* .input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, .input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select, .input-group.has-validation > :nth-last-child(n+3):not(.dselect-wrapper) + .form-selct .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), .input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, .input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select */ /*# sourceMappingURL=dselect.css.map */