vui-design
Version:
A high quality UI Toolkit based on Vue.js
198 lines (173 loc) • 4.53 kB
text/less
@vui-card: ~"@{vui}-card";
@keyframes vuiCardLoading {
0% { background-position:100% 50%; }
100% { background-position:0 50%; }
}
.@{vui-card} {
display:block;
border-radius:@card-border-radius;
background-color:@card-background-color;
overflow:hidden;
color:@card-font-color;
font-size:@card-font-size;
line-height:@card-line-height;
transition:all @transition-duration @transition-timing-function;
&-bordered {
border:@card-border-width solid @card-border-color;
}
&-shadow-hover {
&:hover {
box-shadow:@card-box-shadow;
}
}
&-shadow-always {
box-shadow:@card-box-shadow;
}
&-header {
display:flex;
justify-content:flex-start;
align-items:center;
border-bottom:@card-border-width solid @card-border-color;
padding:@card-header-padding;
color:@card-header-font-color;
font-size:@card-header-font-size;
font-weight:@card-header-font-weight;
transition:all @transition-duration @transition-timing-function;
}
&-body {
display:block;
padding:@card-body-padding;
transition:all @transition-duration @transition-timing-function;
.clearfix;
}
&-footer {
display:block;
border-top:@card-border-width solid @card-border-color;
padding:@card-footer-padding;
transition:all @transition-duration @transition-timing-function;
.clearfix;
}
&-icon {
display:block;
margin-right:@card-icon-margin-right;
font-size:@card-header-font-size - 2px;
line-height:1;
.@{vui}-icon {
display:block;
}
}
&-title {
flex:1;
display:block;
width:0;
.writeEllipsis;
}
&-extra {
display:block;
margin-left:@card-extra-margin-left;
color:@card-extra-font-color;
font-size:@card-extra-font-size;
font-weight:400;
line-height:1;
transition:all @transition-duration @transition-timing-function;
}
&-with-grid > &-body {
padding:0;
overflow:hidden;
}
&-with-grid > &-body > &-grid {
float:left;
display:block;
width:25%;
box-shadow:1px 0 0 0 @card-border-color, 0 1px 0 0 @card-border-color;
padding:@card-body-padding;
transition:all @transition-duration @transition-timing-function;
}
&-cover {
display:block;
overflow:hidden;
img {
display:block;
width:100%;
}
}
&-bordered &-cover {
margin:-1px;
}
&-meta {
display:flex;
align-items:flex-start;
&-avatar {
margin-right:@card-meta-avatar-margin-right;
}
&-detail {
flex:1;
width:0;
overflow:hidden;
}
&-detail &-title {
color:@card-meta-title-font-color;
font-size:@card-meta-title-font-size;
.writeEllipsis;
}
&-detail &-description {
display:-webkit-box;
margin-top:@card-meta-description-margin-top;
overflow:hidden;
color:@card-meta-description-font-color;
font-size:@card-meta-description-font-size;
white-space:normal;
word-break:break-all;
word-wrap:break-word;
text-overflow:ellipsis;
-webkit-line-clamp:@card-meta-description-line-clamp;
-webkit-box-orient:vertical;
}
}
&-actions {
display:flex;
justify-content:center;
align-items:center;
border-top:1px solid @card-border-color;
}
&-action {
flex:1;
cursor:pointer;
display:flex;
justify-content:center;
align-items:center;
width:0;
padding:@card-action-padding;
overflow:hidden;
color:@card-action-color;
font-size:@card-action-font-size;
text-align:center;
transition:all @transition-duration @transition-timing-function;
&:hover {
color:@card-action-hover-color;
}
&:active {
color:@card-action-active-color;
}
&-divider {
display:block;
width:@card-action-divider-width;
height:@card-action-divider-height;
background-color:shade(@card-border-color, 10%);
background-image:linear-gradient(@card-border-color, shade(@card-border-color, 10%), @card-border-color);
}
}
&-loading {
&-row + &-row {
margin-top:@card-loading-block-gutter;
}
&-block {
display:block;
height:@card-loading-block-height;
border-radius:@card-loading-block-border-radius;
background-image:linear-gradient(90deg, @card-loading-block-from-color 25%, @card-loading-block-to-color 50%, @card-loading-block-from-color 75%);
background-size:400% 100%;
animation:vuiCardLoading 1s ease infinite;
}
}
}