amis2/scss/components/_list.scss
吴多益 33686a375e
SCSS 基于 CSS custom properties 重构,支持通过配置来控制展现风格 (#1190)
* 使用自定义 css 属性初步,支持大部分组件的展现

* button 大部分可以看了

* cxd 和 dark 大部分正常

* 修复一些细节样式错误;补充 css 变量的文档

* 修复几个脚本发现的错误

* 完善一下注释

* 修复一些样式不一致问题

* 修复可能存在的 css xss

* 恢复 font-variant 功能

* 修复绝大部分 @if 相关的问题

* 恢复之前的注释

* 修复小错误,并将所有 background-color 改成 background,这样就能设置渐变色

* 修复 button group 在 cxd 下不一致问题

* 缩小查看配置和复制配置的宽度,留出更多空间

* 修复一些潜在的错误

* 恢复 utilities 中 label 背景色的设置

* 修复错误的 css 变量

* 补充 IE11 Variables Polyfill
2020-12-21 10:08:40 +08:00

234 lines
4.4 KiB
SCSS

.#{$ns}List {
border: var(--List-borderWidth) solid var(--List-borderColor);
border-radius: var(--List-borderRadius);
background: var(--List-bg);
margin-bottom: var(--gap-md);
position: relative;
&-toolbar {
@include clearfix();
display: flex;
flex-wrap: wrap;
padding: var(--List-toolbar-paddingY) var(--List-toolbar-paddingX);
}
&-actions {
display: inline-block;
> * {
margin-right: var(--Crud-toolbar-gap);
}
}
&-header {
padding: var(--List-toolbar-paddingY) var(--List-toolbar-paddingX);
> * + .#{$ns}Button,
> * + .#{$ns}ButtonGroup,
> * + .#{$ns}ButtonToolbar {
margin-left: var(--Crud-toolbar-gap);
}
}
&-header + &-toolbar {
padding-top: 0;
}
&-heading {
padding: var(--gap-xs) 0;
}
&-fixedTop {
position: absolute;
background: var(--white);
z-index: -1;
opacity: 0;
box-shadow: var(--List-fixedTop-boxShadow);
padding: var(--gap-sm);
&.in {
position: fixed;
opacity: 1;
z-index: $zindex-affix;
}
.#{$ns}Cards-toolbar {
margin-bottom: 0;
}
&:empty {
display: none;
}
}
&--unsaved &-heading {
background: var(--List--unsaved-heading-bg);
color: var(--List--unsaved-heading-color);
padding: var(--gap-xs) var(--gap-sm);
margin-bottom: var(--gap-sm);
}
&-dragTip {
width: 100%;
color: var(--info);
clear: both;
margin-top: var(--gap-xs);
}
&-placeholder {
color: var(--text--muted-color);
text-align: center;
min-height: var(--List-placeholder-height);
line-height: var(--List-placeholder-height);
}
}
.#{$ns}ListGroup {
max-width: px2rem(400px);
display: flex;
flex-direction: column;
&-item {
position: relative;
display: block;
padding: var(--ListItem-paddingY) var(--ListItem-paddingX);
margin-bottom: px2rem(-1px);
background: var(--white);
border: var(--ListItem-borderWidth) solid var(--List-borderColor);
&:first-child {
border-top-left-radius: var(--borderRadius);
border-top-right-radius: var(--borderRadius);
}
&:last-child {
border-bottom-left-radius: var(--borderRadius);
border-bottom-right-radius: var(--borderRadius);
margin-bottom: 0;
}
&:hover {
// todo
z-index: 1;
}
&.is-active {
// todo
z-index: 2;
}
&.is-disabled {
color: var(--text--muted-color);
}
}
&--expanded {
.#{$ns}ListGroup-item {
border-radius: var(--borderRadius);
margin-bottom: var(--gap-sm);
&:last-child {
margin-bottom: 0;
}
}
}
}
.#{$ns}ListItem {
@include clearfix();
& + & {
border-top: var(--ListItem-borderWidth) solid var(--ListItem-borderColor);
}
position: relative;
display: block;
padding: var(--ListItem-paddingY) var(--ListItem-paddingX);
&:nth-child(even) {
background: var(--ListItem--strip-bg);
}
&-checkBtn {
float: left;
margin-right: var(--gap-sm);
}
&-dragBtn {
cursor: move;
float: left;
margin-right: var(--gap-sm);
}
&-actions {
float: right;
}
&-title {
margin: 0;
padding: 0;
font-size: var(--fontSizeBase);
color: var(--text--loud-color);
font-weight: var(--fontWeightNormal);
}
&-content {
overflow: hidden;
}
&-field {
position: relative;
display: flex;
flex-wrap: nowrap;
}
&-fieldValue {
position: relative;
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
&-fieldLabel {
width: px2rem(150px);
color: var(--text--muted-color);
}
&.is-checked {
background: var(--ListItem-onChecked-bg);
border-color: var(--ListItem-onChecked-borderColor);
color: var(--ListItem-onChecked-color);
+ .#{$ns}ListItem {
border-color: var(--ListItem-onChecked-borderColor);
}
.#{$ns}ListItem-fieldLabel {
color: var(--ListItem-onChecked-fieldLabel-color);
}
}
&.is-modified,
&.is-moved {
background: var(--ListItem-onModified-bg);
border-color: var(--ListItem-onModified-borderColor);
color: var(--ListItem-onModified-color);
+ .#{$ns}ListItem {
border-color: var(--ListItem-onModified-borderColor);
}
.#{$ns}ListItem-fieldLabel {
color: var(--ListItem-onModified-fieldLabel-color);
}
}
&.is-dragging {
opacity: var(--ListItem-onDragging-opacity);
}
}