UNPKG

vui-design

Version:

A high quality UI Toolkit based on Vue.js

430 lines (370 loc) 10.6 kB
@vui-cascader: ~"@{vui}-cascader"; .@{vui-cascader} { position:relative; display:inline-block; box-sizing:border-box; vertical-align:middle; line-height:normal; &-selection { position:relative; cursor:pointer; display:block; box-sizing:border-box; width:100%; border-style:solid; border-color:@cascader-selection-border-color; border-radius:@cascader-selection-border-radius; background-color:@cascader-selection-background-color; overflow:hidden; transition:all @transition-duration @transition-timing-function; &-value, &-placeholder, &-input { display:block; box-sizing:border-box; width:100%; text-align:left; transition:height @transition-duration @transition-timing-function, padding @transition-duration @transition-timing-function, font-size @transition-duration @transition-timing-function, line-height @transition-duration @transition-timing-function; .writeEllipsis; } &-value { color:@cascader-selection-font-color; } &-placeholder { color:@cascader-selection-placeholder-font-color; } &-input { position:absolute; top:0; left:0; color:@cascader-selection-font-color; input { position:absolute; top:0; left:0; cursor:inherit; display:block; box-sizing:border-box; width:100%; height:100%; border:none; background-color:transparent; padding:inherit; color:inherit; font-size:inherit; font-family:inherit; text-align:left; } } &-arrow { position:absolute; cursor:inherit; display:block; box-sizing:border-box; height:2px; color:@cascader-selection-arrow-color; transition:top @transition-duration @transition-timing-function, right @transition-duration @transition-timing-function; &:before, &:after { content:""; top:0; position:absolute; height:2px; background-color:currentColor; transform-origin:center center; transition:background-color @transition-duration @transition-timing-function, transform @transition-duration @transition-timing-function; } &:before { left:0; transform:rotate(45deg) scaleY(0.5); } &:after { right:0; transform:rotate(-45deg) scaleY(0.5); } } &-btn-clear { position:absolute; cursor:pointer; display:flex; justify-content:center; align-items:center; color:@cascader-selection-btn-clear-color; box-sizing:border-box; transition:top @transition-duration @transition-timing-function, right @transition-duration @transition-timing-function, color @transition-duration @transition-timing-function; &:hover { color:@cascader-selection-btn-clear-hover-color; } } } &-small &-selection { border-width:0; height:@cascader-selection-size-sm; &-value, &-placeholder, &-input { height:@cascader-selection-size-sm; padding:0 @cascader-selection-padding-sm * 2 + @cascader-selection-btn-clear-size-sm 0 @cascader-selection-padding-sm; font-size:@cascader-selection-font-size-sm; line-height:@cascader-selection-size-sm; } &-arrow { top:(@cascader-selection-size-sm - 2px) / 2; right:@cascader-selection-padding-sm + (@cascader-selection-btn-clear-size-sm - 10px) / 2; width:10px; &:before, &:after { width:6px; } } &-btn-clear { top:(@cascader-selection-size-sm - @cascader-selection-btn-clear-size-sm) / 2; right:@cascader-selection-padding-sm; font-size:@cascader-selection-btn-clear-size-sm; } } &-small&-bordered &-selection { border-width:1px; &-value, &-placeholder, &-input { height:@cascader-selection-size-sm - 2px; line-height:@cascader-selection-size-sm - 2px; } &-arrow { top:(@cascader-selection-size-sm - 2px - 2px) / 2; } &-btn-clear { top:(@cascader-selection-size-sm - 2px - @cascader-selection-btn-clear-size-sm) / 2; } } &-medium &-selection { border-width:0; height:@cascader-selection-size-md; &-value, &-placeholder, &-input { height:@cascader-selection-size-md; padding:0 @cascader-selection-padding-md * 2 + @cascader-selection-btn-clear-size-md 0 @cascader-selection-padding-md; font-size:@cascader-selection-font-size-md; line-height:@cascader-selection-size-md; } &-arrow { top:(@cascader-selection-size-md - 2px) / 2; right:@cascader-selection-padding-md + (@cascader-selection-btn-clear-size-md - 12px) / 2; width:12px; &:before, &:after { width:7px; } } &-btn-clear { top:(@cascader-selection-size-md - @cascader-selection-btn-clear-size-md) / 2; right:@cascader-selection-padding-md; font-size:@cascader-selection-btn-clear-size-md; } } &-medium&-bordered &-selection { border-width:1px; &-value, &-placeholder, &-input { height:@cascader-selection-size-md - 2px; line-height:@cascader-selection-size-md - 2px; } &-arrow { top:(@cascader-selection-size-md - 2px - 2px) / 2; } &-btn-clear { top:(@cascader-selection-size-md - 2px - @cascader-selection-btn-clear-size-md) / 2; } } &-large &-selection { border-width:0; height:@cascader-selection-size-lg; &-value, &-placeholder, &-input { height:@cascader-selection-size-lg; padding:0 @cascader-selection-padding-lg * 2 + @cascader-selection-btn-clear-size-lg 0 @cascader-selection-padding-lg; font-size:@cascader-selection-font-size-lg; line-height:@cascader-selection-size-lg; } &-arrow { top:(@cascader-selection-size-lg - 2px) / 2; right:@cascader-selection-padding-lg + (@cascader-selection-btn-clear-size-lg - 14px) / 2; width:14px; &:before, &:after { width:8px; } } &-btn-clear { top:(@cascader-selection-size-lg - @cascader-selection-btn-clear-size-lg) / 2; right:@cascader-selection-padding-lg; font-size:@cascader-selection-btn-clear-size-lg; } } &-bordered&-large &-selection { border-width:1px; &-value, &-placeholder, &-input { height:@cascader-selection-size-lg - 2px; line-height:@cascader-selection-size-lg - 2px; } &-arrow { top:(@cascader-selection-size-lg - 2px - 2px) / 2; } &-btn-clear { top:(@cascader-selection-size-lg - 2px - @cascader-selection-btn-clear-size-lg) / 2; } } &-hovered { z-index:1; } &-hovered &-selection { border-color:@cascader-selection-hover-border-color; } &-focused { z-index:2; } &-focused &-selection { border-color:@cascader-selection-hover-border-color; } &-actived { z-index:2; } &-actived &-selection { border-color:@cascader-selection-active-border-color; &-arrow { &:before { transform:rotate(-45deg) scaleY(0.5); } &:after { transform:rotate(45deg) scaleY(0.5); } } } &-disabled { } &-disabled &-selection { cursor:not-allowed; border-color:@cascader-selection-disabled-border-color; background-color:@cascader-selection-disabled-background-color; &-value { color:@cascader-selection-disabled-font-color; } } &-dropdown { position:absolute; top:0; left:0; display:block; box-sizing:border-box; max-height:@cascader-dropdown-max-height; border-radius:@cascader-dropdown-border-radius; background-color:@cascader-dropdown-background-color; box-shadow:@cascader-dropdown-box-shadow; margin:4px 0; overflow:auto; &[data-placement="top"] { transform-origin:bottom center; } &[data-placement="top-start"] { transform-origin:bottom left; } &[data-placement="top-end"] { transform-origin:bottom right; } &[data-placement="bottom"] { transform-origin:top center; } &[data-placement="bottom-start"] { transform-origin:top left; } &[data-placement="bottom-end"] { transform-origin:top right; } &-scale-enter-active, &-scale-leave-active { opacity:1; transform:scaleY(1); transition:opacity @transition-duration @transition-timing-function, transform @transition-duration @transition-timing-function; } &-scale-enter, &-scale-leave-active { opacity:0; transform:scaleY(0.8); } } &-menu-list { display:flex; flex-flow:row nowrap; justify-content:flex-start; align-items:stretch; } &-menu-list &-menu { min-width:@cascader-menu-min-width; } &-menu { display:block; max-height:@cascader-menu-max-height; padding:4px 0; overflow:auto; vertical-align:top; & + & { border-left:1px solid @cascader-menu-border-color; } &-item { position:relative; cursor:pointer; display:flex; flex-flow:row nowrap; justify-content:flex-start; align-items:center; height:@cascader-menu-item-height; margin:0; padding:@cascader-menu-item-padding-horizontal; color:@cascader-menu-item-font-color; font-size:@cascader-menu-item-font-size; text-align:left; transition:all @transition-duration @transition-timing-function; &-label { flex:1; display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; b { color:@error-color; } } &-arrow { display:block; margin-left:@cascader-menu-item-arrow-margin-left; opacity:0.8; font-size:@cascader-menu-item-arrow-size; transform:scale(0.8); } &-hovered { background-color:@cascader-menu-item-hover-background-color; color:@cascader-menu-item-hover-font-color; } &-selected { background-color:@cascader-menu-item-selected-background-color; color:@cascader-menu-item-selected-font-color; } &-disabled { cursor:not-allowed; background-color:@cascader-menu-item-disabled-background-color; color:@cascader-menu-item-disabled-font-color; } } } &-empty { position:relative; cursor:default; padding:@padding-md 0; } }