UNPKG

@ysx-libs/mobile-picker

Version:
79 lines (69 loc) 2.02 kB
.mobile-picker { --overlay-color: rgb(255 255 255 / 0.4), rgb(255 255 255 / 0.8); --spacing-xs: 6px; --picker-overlay-border-color: #e6ebf0; position: relative; height: clamp(120px, var(--picker-container-height, 273px), 100vmax); } .mobile-picker .mobile-picker-view-container { display: flex; height: inherit; } .mobile-picker .mobile-picker-view-container .mobile-picker-view { flex-grow: 1; position: relative; height: inherit; overflow: hidden; user-select: none; touch-action: none; --picker-transit-duration: 0; --picker-transit-y: 0ms; } .mobile-picker .mobile-picker-view-container .mobile-picker-view .mobile-picker-view-item-container { position: absolute; inset-inline: 0; top: calc(50% - var(--picker-item-height) / 2); transform: translateY(var(--picker-transit-y)); transition-timing-function: ease-out; transition-duration: var(--picker-transit-duration); transition-property: transform; will-change: transform; } .mobile-picker .mobile-picker-view-container .mobile-picker-view .mobile-picker-view-item-container .mobile-picker-view-item { overflow: hidden; white-space: nowrap; text-align: center; text-overflow: ellipsis; padding-block: var(--spacing-xs); } .mobile-picker .mobile-picker-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; pointer-events: none; } .mobile-picker .mobile-picker-overlay::before { content: ""; display: block; flex-grow: 1; background: linear-gradient(0, var(--overlay-color)); } .mobile-picker .mobile-picker-overlay::after { content: ""; display: block; flex-grow: 1; background: linear-gradient(180deg, var(--overlay-color)); } .mobile-picker .mobile-picker-overlay .mobile-picker-overlay-mid { height: var(--picker-item-height); border-top: 1px solid var(--picker-overlay-border-color); border-bottom: 1px solid var(--picker-overlay-border-color); }