ant-design-vue/components/transfer/style/index.less

193 lines
4.1 KiB
Plaintext

@import '../../style/themes/index';
@import '../../style/mixins/index';
@import '../../checkbox/style/mixin';
@import './customize.less';
@transfer-prefix-cls: ~'@{ant-prefix}-transfer';
@transfer-header-vertical-padding: (
@transfer-header-height - 1px - @font-size-base * @line-height-base
) / 2;
.@{transfer-prefix-cls} {
.reset-component;
position: relative;
&-disabled {
.@{transfer-prefix-cls}-list {
background: @transfer-disabled-bg;
}
}
&-list {
position: relative;
display: inline-block;
width: 180px;
height: @transfer-list-height;
padding-top: @transfer-header-height;
vertical-align: middle;
border: @border-width-base @border-style-base @border-color-base;
border-radius: @border-radius-base;
&-with-footer {
padding-bottom: 34px;
}
&-search {
padding-right: 24px;
padding-left: @control-padding-horizontal-sm;
&-action {
position: absolute;
top: 12px;
right: 12px;
bottom: 12px;
width: 28px;
color: @disabled-color;
line-height: @input-height-base;
text-align: center;
.@{iconfont-css-prefix} {
color: @disabled-color;
transition: all 0.3s;
&:hover {
color: @text-color-secondary;
}
}
span& {
pointer-events: none;
}
}
}
&-header {
position: absolute;
top: 0;
left: 0;
width: 100%;
// border-top is on the transfer dom. We should minus 1px for this
padding: (@transfer-header-vertical-padding - 1px) @control-padding-horizontal
@transfer-header-vertical-padding;
overflow: hidden;
color: @text-color;
background: @component-background;
border-bottom: @border-width-base @border-style-base @border-color-split;
border-radius: @border-radius-base @border-radius-base 0 0;
&-title {
position: absolute;
right: 12px;
}
.@{ant-prefix}-checkbox-wrapper + span {
padding-left: 8px;
}
}
&-body {
position: relative;
height: 100%;
font-size: @font-size-base;
&-search-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
padding: 12px;
}
}
&-body-with-search {
padding-top: @input-height-base + 24px;
}
&-content {
height: 100%;
margin: 0;
padding: 0;
overflow: auto;
list-style: none;
> .LazyLoad {
animation: transferHighlightIn 1s;
}
&-item {
min-height: 32px;
padding: 6px @control-padding-horizontal;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
transition: all 0.3s;
> span {
padding-right: 0;
}
&-text {
padding-left: 8px;
}
}
&-item:not(&-item-disabled):hover {
background-color: @item-hover-bg;
cursor: pointer;
}
&-item-disabled {
color: @btn-disable-color;
cursor: not-allowed;
}
}
&-body-not-found {
position: absolute;
top: 50%;
width: 100%;
padding-top: 0;
color: @disabled-color;
text-align: center;
transform: translateY(-50%);
// with filter should offset the search box height
.@{transfer-prefix-cls}-list-body-with-search & {
margin-top: @input-height-base / 2;
}
}
&-footer {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
border-top: @border-width-base @border-style-base @border-color-split;
border-radius: 0 0 @border-radius-base @border-radius-base;
}
}
&-operation {
display: inline-block;
margin: 0 8px;
overflow: hidden;
vertical-align: middle;
.@{ant-prefix}-btn {
display: block;
&:first-child {
margin-bottom: 4px;
}
.@{iconfont-css-prefix} {
font-size: 12px;
}
}
}
}
@keyframes transferHighlightIn {
0% {
background: @primary-2;
}
100% {
background: transparent;
}
}