Files
radicall/resources/css/Client/ui/input-dropdown.css
T

228 lines
5.0 KiB
CSS

.ui-input-dropdown-wrapper {
@apply relative overflow-visible w-full;
}
.ui-input-prefix-dropdown-button {
@apply flex items-center px-3 py-2 pr-2 text-sm font-medium bg-transparent border-0 cursor-pointer transition-all duration-300 gap-1;
pointer-events: auto;
}
.ui-input-prefix-icon {
@apply text-base w-5 h-4;
}
.ui-input-prefix-text {
@apply font-normal text-dominant-700 text-[13px];
direction: ltr
}
.ui-input-dropdown-menu {
@apply absolute bg-white h-[16rem] overflow-y-hidden border border-dominant-100 rounded-xl z-[9999] overflow-visible w-full;
transform-origin: top center;
backdrop-filter: blur(8px);
}
@keyframes dropdownSlideIn {
from {
opacity: 0;
transform: translateY(-8px) scale(0.96);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
@keyframes dropdownSlideOut {
from {
opacity: 1;
transform: translateY(0) scale(1);
}
to {
opacity: 0;
transform: translateY(-4px) scale(0.98);
}
}
.dropdown-enter-active {
animation: dropdownSlideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.dropdown-leave-active {
animation: dropdownSlideOut 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.dropdown-enter-from,
.dropdown-leave-to {
opacity: 0;
transform: translateY(-4px) scale(0.98);
}
.ui-input-dropdown-menu--bottom {
@apply top-full mt-3;
}
.ui-input-dropdown-menu--top {
@apply bottom-full mb-3;
}
.ui-input-dropdown--rtl {
direction: rtl;
}
.ui-input-dropdown--ltr {
direction: ltr;
}
.ui-input-dropdown-search {
@apply p-3;
}
.ui-input-dropdown-search-input {
@apply w-full text-sm !font-normal border border-dominant-200 rounded px-3 !h-[2.2rem] !pb-2.5 focus:outline-none focus:ring-2 focus:ring-dominant-500 focus:border-transparent placeholder:!text-dominant-200;
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
animation: searchInputSlideIn 0.5s ease-out;
}
@keyframes searchInputSlideIn {
from {
opacity: 0;
transform: translateY(-3px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.ui-input-dropdown-list {
@apply max-h-60 overflow-y-auto relative pl-4 pr-2;
scrollbar-width: thin;
scrollbar-color: #d1d5db transparent;
}
.ui-input-dropdown-list::-webkit-scrollbar {
width: 6px;
}
.ui-input-dropdown-list::-webkit-scrollbar-track {
background: transparent;
border-radius: 3px;
}
.ui-input-dropdown-list::-webkit-scrollbar-thumb {
background: #d1d5db;
border-radius: 3px;
transition: background 0.2s ease;
}
.ui-input-dropdown-list::-webkit-scrollbar-thumb:hover {
background: #9ca3af;
}
.ui-input-dropdown-item {
@apply w-full flex items-center content-center gap-1 text-sm bg-transparent border-0 cursor-pointer transition-all duration-300 mb-3 relative;
animation: itemFadeIn 0.3s ease-out;
animation-fill-mode: both;
}
.ui-input-dropdown-item:nth-child(1) { animation-delay: 0.05s; }
.ui-input-dropdown-item:nth-child(2) { animation-delay: 0.1s; }
.ui-input-dropdown-item:nth-child(3) { animation-delay: 0.15s; }
.ui-input-dropdown-item:nth-child(4) { animation-delay: 0.2s; }
.ui-input-dropdown-item:nth-child(5) { animation-delay: 0.25s; }
.ui-input-dropdown-item:nth-child(6) { animation-delay: 0.3s; }
.ui-input-dropdown-item:nth-child(7) { animation-delay: 0.35s; }
.ui-input-dropdown-item:nth-child(8) { animation-delay: 0.4s; }
.ui-input-dropdown-item:nth-child(9) { animation-delay: 0.45s; }
.ui-input-dropdown-item:nth-child(10) { animation-delay: 0.5s; }
@keyframes itemFadeIn {
from {
opacity: 0;
transform: translateX(-5px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
.ui-input-dropdown-item-selected {
@apply text-dominant-700 relative flex items-center content-center h-[1.8rem];
animation: selectedItemPulse 0.3s ease-out;
}
@keyframes selectedItemPulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.02);
}
100% {
transform: scale(1);
}
}
.ui-input-dropdown-item-selected::before {
content: '';
@apply rounded-l-2xl flex items-center justify-center w-1 h-[1.6rem] bg-dominant-500;
z-index: 1;
}
.ui-input-dropdown-item-selected::after {
content: '';
@apply absolute top-1/2 !right-0 w-2 h-2 bg-dominant-500 rounded-full;
transform: translateY(-50%);
z-index: 2;
}
.ui-input-dropdown-item-icon {
@apply text-base flex-shrink-0 w-5 h-4;
}
.ui-input-dropdown-item-prefix {
@apply font-normal text-dominant-600 flex-shrink-0 mt-0.5;
}
.ui-input-dropdown-item-label {
@apply text-gray-700 mt-0.5;
}
.ui-input-dropdown-item-en-label {
@apply text-gray-500 text-xs mt-0.5;
}
.ui-input-dropdown-loading {
@apply flex items-center justify-center py-8;
animation: loadingPulse 1.5s ease-in-out infinite;
}
@keyframes loadingPulse {
0%, 100% {
opacity: 0.6;
}
50% {
opacity: 1;
}
}
.ui-input-dropdown-empty {
@apply flex items-center justify-center py-8 text-gray-500 text-sm;
animation: emptyStateFadeIn 0.5s ease-out;
}
@keyframes emptyStateFadeIn {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}