UNPKG

zarm

Version:

基于 React 的移动端UI库

102 lines (94 loc) 2.75 kB
@keyframes virtual-cursor { 0% { opacity: 1; } 50% { opacity: 0; } to { opacity: 1; } } .za-custom-input { --color: var(--za-custom-input-color, var(--za-color-text)); --font-size: var(--za-custom-input-font-size, var(--za-font-size-md)); --height: var(--za-custom-input-height, 28px); --line-height: var(--za-custom-input-line-height, 28px); --label-font-size: var(--za-custom-input-label-font-size, var(--za-font-size-sm)); --placeholder-color: var(--za-custom-input-placeholder-color, var(--za-color-text-placeholder)); --disabled-color: var(--za-custom-input-disabled-color, var(--za-color-text-disabled)); --clear-icon-size: var(--za-custom-input-clear-icon-size, 16px); --clear-icon-color: var(--za-custom-input-clear-icon-color, #ccc); --cursor-height: var(--za-custom-input-cursor-height, 20px); --cursor-width: var(--za-custom-input-cursor-width, 2px); --cursor-color: var(--za-custom-input-cursor-color, #597cf6); position: relative; width: 100%; color: var(--color); font-size: var(--font-size); } .za-custom-input__label { font-size: var(--label-font-size); line-height: var(--line-height); } .za-custom-input__content { position: relative; height: var(--height); line-height: var(--line-height); } .za-custom-input__placeholder { position: absolute; left: 0; top: 0; width: 100%; height: 100%; color: var(--placeholder-color); } .za-custom-input__virtual-input { display: flex; position: absolute; left: 0; right: 0; top: 0; height: 100%; overflow-x: auto; overflow-y: hidden; white-space: nowrap; } .za-custom-input--focus .za-custom-input__virtual-input { display: flex; align-items: center; transform: translate3d(0, 0, 0); } .za-custom-input--focus .za-custom-input__virtual-input:after { content: ""; display: inline-block; height: var(--cursor-height); border-right: var(--cursor-width) solid var(--cursor-color); transition: opacity 0.1s ease-out; animation: virtual-cursor 1s infinite step-start; } .za-custom-input--clearable .za-custom-input__clear { position: absolute; visibility: hidden; color: var(--clear-icon-color); width: var(--clear-icon-size); text-align: center; top: 50%; transform: translateY(-50%); right: 0; font-size: 16px; } .za-custom-input--clearable.za-custom-input--focus { padding-right: var(--clear-icon-size); } .za-custom-input--clearable.za-custom-input--focus .za-custom-input__clear { visibility: visible; } .za-custom-input--readonly .za-custom-input__content { height: auto; } .za-custom-input--disabled .za-custom-input__content, .za-custom-input--disabled .za-custom-input__placeholder { cursor: not-allowed; color: var(--disabled-color); }