UNPKG

tdesign-react

Version:
710 lines (583 loc) 15 kB
// 组件允许单个组件打包,因此默认引入公共基础样式 -- @import "../../base.less"; @import "./_var.less"; @import "./_mixin.less"; @import "../../mixins/_text.less"; @import "../../mixins/_layout.less"; @import "../../mixins/_reset.less"; .@{prefix}-upload { .reset; .@{prefix}-is-bordered { border: @upload-card-content-border; } .@{prefix}-upload__trigger { display: inline-block; } .t-icon { font-size: @upload-icon-size; flex-shrink: 0; } .t-icon-check-circle-filled { color: @upload-icon-check-circle-filled-color; } .t-icon-error-circle-filled { color: @upload-icon-error-circle-filled-color; } .t-icon-time-filled { color: @upload-icon-time-filled-color; } .t-icon-add { color: @upload-icon-add-color; } &__list-file { display: flex; align-items: center; justify-content: center; width: @upload-list-file-width; height: @upload-list-file-height; margin-right: @upload-list-file-margin-right; overflow: hidden; & .t-icon { font-size: @upload-list-file-icon-font-size; color: @upload-list-file-icon-color; } } &__list-item { display: flex; justify-content: space-between; align-items: center; margin-top: @upload-list-item-margin-top; width: @upload-list-item-width; height: @upload-list-item-height; padding: @upload-list-item-padding; border: @upload-list-item-border; border-radius: @upload-list-item-border-radius; font: @upload-list-item-font-size; &.@{prefix}-is--error { .@{prefix}-upload__list-name { color: @upload-list-item-error-color; } .@{prefix}-upload__list-file .t-icon { color: @upload-list-item-error-color; } } } &__list-content { display: flex; align-items: center; } &-list__control { cursor: pointer; &:hover { color: @upload-list-control-color-hover; } } &__list-img { object-fit: cover; max-width: 100%; max-height: 100%; cursor: pointer; } &__list-name { max-width: @upload-list-name-max-width; .text-ellipsis(); } &--highlight { color: @upload-highlight-color; } &__single-name { margin-right: @upload-single-name-margin-right; } } // 照片墙 .@{prefix}-upload { &__card { font: @upload-card-font; overflow: hidden; width: 100%; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: @upload-card-item-space; & .@{prefix}-is-disabled { & :hover { cursor: not-allowed; } } &-item { cursor: pointer; box-sizing: border-box; list-style: none; &::after { content: ""; display: block; } &:hover .@{prefix}-upload__card-mask { opacity: 1; .hover-transition(opacity); } &.@{prefix}-is--error { & .@{prefix}-icon-warning_fill { color: @upload-card-item-error-icon-warning-color; margin-bottom: @upload-card-item-error-icon-warning-margin-bottom; } & .@{prefix}-upload__card-status { color: @upload-card-item-status-color; } } &.@{prefix}-is-background { .hover-transition(border-color); } } & .@{prefix}-icon-loading { margin-bottom: @upload-card-icon-loading-margin-bottom; } &-name { max-width: 100%; margin-top: @upload-card-name-margin-top; .text-ellipsis(); } &-content { position: relative; width: @upload-img-size; height: @upload-img-size; overflow: hidden; display: flex; align-items: center; justify-content: center; box-sizing: border-box; background-color: @upload-card-container-bg-color; border: @upload-card-contariner-border; padding: @upload-card-content-padding; border-radius: @upload-card-img-wrap-border-radius; } &-container { width: @upload-img-size; height: @upload-img-size; display: flex; align-items: center; justify-content: center; flex-direction: column; background-color: @upload-card-container-bg-color; border: @upload-card-contariner-border; box-sizing: border-box; position: relative; border-radius: @upload-card-img-wrap-border-radius; .hover-transition(border); &:hover:not(.@{prefix}-is-disabled) { border-color: @upload-card-item-bg-border-color-hover; .hover-transition(border-color); } > .t-icon { color: @upload-icon-color; } > .t-icon, .@{prefix}-loading { font-size: @upload-icon-size-large; margin-bottom: @upload-card-container-icon-add-margin-bottom; } > p, .@{prefix}-upload__add-text { color: @text-color-placeholder; margin: 0; } } &-status-wrap { text-align: center; > svg { margin-bottom: @upload-card-status-wrap-svg-margin-bottom; } .t-icon, .@{prefix}-loading { font-size: @upload-icon-size-large; } } &-image { max-width: 100%; max-height: 100%; width: 100%; height: 100%; } &-status { color: @upload-card-status-color; font: @upload-card-status-font; } &-mask { background-color: @upload-card-mask-bg-color; color: @upload-card-mask-text-color; will-change: transform; opacity: 0; z-index: @upload-z-index; .hover-transition(opacity); .horizontal-vertical-center-with-flex(); .fill-with-position-absolute(); } &-mask-item { &-divider { margin: @upload-card-mask-divider-margin; border-left: 1px @upload-card-mask-text-color solid; height: @upload-card-mask-divider-height; } > .t-icon { cursor: pointer; font-size: @upload-icon-size; } } } &__dialog { .@{prefix}-dialog { max-width: 80%; &--default { padding: 32px; } &-body { padding-bottom: 0; &-img-box { img { display: block; max-width: 100%; max-height: 100%; } } } } } } // 拖拽 .@{prefix}-upload { &__dragger { display: flex; width: @upload-dragger-width; height: @upload-dragger-height; border: @upload-dragger-border; border-radius: @upload-dragger-border-radius; font: @upload-dragger-font; color: @upload-dragger-color; cursor: pointer; padding: @upload-dragger-padding; position: relative; overflow: auto; box-sizing: border-box; .hover-transition(border-color); &.@{prefix}-is--active { background-color: @upload-dragger-bg-color-active; border-color: @upload-dragger-border-color-active; } &:hover { border-color: @upload-dragger-border-color-hover; } &-btns { position: absolute; bottom: @upload-dragger-btns-bottom; } .@{prefix}-size-s { display: block; } } &__dragger-center { justify-content: center; align-items: center; } &__dragger-error { border-color: @upload-dragger-error-border-color; &:hover { border-color: @upload-dragger-error-border-color-hover; } } &__dragger-text { display: flex; align-items: center; font: @upload-dragger-text-font; color: @upload-dragger-text-color; margin-bottom: @upload-single-name-margin-bottom; .dragger-inner-max-width(@upload-dragger-width, @upload-dragger-padding, 0); .@{prefix}-upload__single-name { .text-ellipsis(); } } } .@{prefix}-upload__tips { display: block; color: @upload-small-color; margin-top: @upload-tips-margin-top; font: @font-body-small; &.@{prefix}-upload__tips-error { color: @upload-tips-error-color; } &.@{prefix}-upload__tips-warn { color: @upload-tips-warn-color; } } .@{prefix}-upload__placeholder { color: @upload-placeholder-color; } .@{prefix}-upload__display-text--margin { margin-top: @upload-display-text-margin-top; } .@{prefix}-upload__single-display-text { color: @upload-single-display-text-color; font: @upload-single-display-text-font; display: flex; align-items: center; .@{prefix}-upload__flow-status .t-icon { font-size: @upload-icon-size-mini; } } .t-icon-clear-circle-filled { color: @upload-icon-color; margin-top: @upload-icon-clear-circle-filled-margin-top; .hover-transition(color); &:hover { color: @upload-icon-color-hover; cursor: pointer; .hover-transition(color); } } .@{prefix}-upload__single-percent { margin-left: @upload-single-percent-margin-left; } .@{prefix}-upload__single-progress { color: @upload-single-progress-color; display: flex; align-items: center; .@{prefix}-loading { font-size: @upload-icon-size; flex-shrink: 0; } } .@{prefix}-upload__single-input-delete { margin-left: @upload-single-input-delete-margin-left; font: @upload-single-input-delete-font; color: @upload-single-input-delete-color; cursor: pointer; } .@{prefix}-upload__single-input-preview { display: flex; justify-content: space-between; flex: 1; } .@{prefix}-upload__single-input-text { display: block; .text-ellipsis(); } .@{prefix}-upload__single-file-input { display: flex; align-items: center; .@{prefix}-upload__trigger { margin-left: @upload-single-file-input-trigger-margin-left; } .@{prefix}-upload__single-progress { white-space: nowrap; } .@{prefix}-input__inner { display: flex; align-items: center; justify-content: space-between; } } .@{prefix}-upload__dragger-progress { width: 100%; display: flex; .t-icon, .@{prefix}-loading { font-size: @upload-icon-size; flex-shrink: 0; } } .@{prefix}-upload__dragger-img-wrap { width: @upload-dragger-img-wrap-width; height: @upload-dragger-img-wrap-height; background-color: @upload-dragger-img-wrap-bg-color; border-radius: @upload-dragger-img-wrap-border-radius; display: flex; align-items: center; justify-content: center; flex-shrink: 0; > .@{prefix}-image__wrapper--shape-square { width: 100%; .@{prefix}-space-item { text-align: center; } } > img { max-width: 100%; max-height: 100%; } } .@{prefix}-upload__dragger { &-img-wrap + &-progress-info { margin-left: @upload-dragger-img-wrap-margin-right; .dragger-inner-max-width(@upload-dragger-width, @upload-dragger-padding, calc(@upload-dragger-img-wrap-width + @upload-dragger-img-wrap-margin-right)); } } .@{prefix}-upload__dragger-progress-info { flex: 1; .@{prefix}-upload__single-display-text { margin-bottom: @upload-dragger-progress-info-single-display-text-margin-bottom; } .@{prefix}-button:hover { background-color: @upload-dragger-progress-info-button-bg-color-hover; } } .@{prefix}-upload__dragger-progress-cancel, .@{prefix}-upload__dragger-progress-reupload { margin-right: @upload-dragger-progress-cancel-margin; &:hover { border-color: transparent; } } .@{prefix}-upload__dragger-delete-btn:hover, .@{prefix}-upload__dragger-upload-btn:hover { border-color: transparent; } .@{prefix}-upload__flow-image-flow { width: @upload-flow-image-flow-width; } .@{prefix}-upload__flow { min-width: @upload-flow-min-width; max-width: @upload-flow-max-width; &-placeholder { display: inline-block; margin-left: @upload-flow-placeholder-margin-left; } &-op { display: flex; align-items: center; } &-bottom { display: flex; justify-content: flex-end; margin-top: @upload-flow-bottom-margin-top; .@{prefix}-button + .@{prefix}-button { margin-left: @upload-flow-button-margin-left; } } &-empty { width: 100%; height: @upload-flow-empty-height; display: flex; justify-content: center; align-items: center; color: @upload-flow-empty-color; } &-table { width: 100%; border: @upload-flow-table-border; margin-top: @upload-flow-table-margin-top; border-collapse: collapse; > thead > tr, > tbody > tr, > tfoot > tr, > tr { border-top: @upload-flow-table-tr-border-top; > th { color: @upload-flow-table-th-color; font-weight: @upload-flow-table-th-font-weight; border: @upload-flow-table-th-border; text-align: @upload-flow-table-th-text-align; background-color: @upload-flow-table-th-bg-color; } > td { color: @upload-flow-table-td-color; } > td, > th { padding: @upload-flow-table-td-th-padding; } } &__batch-row { border-left: 1px solid @component-border; } } &-button { color: @upload-flow-button-color; cursor: pointer; .hover-transition(color); } &-button:hover { color: @upload-flow-button-color-hover; } &-status { display: flex; align-items: center; .t-icon, .@{prefix}-loading { margin-right: @upload-flow-status-icon-margin-right; font-size: @upload-icon-size; } } &-card-area { border: @upload-flow-card-area-border; padding: @upload-flow-card-area-padding; margin-top: @upload-flow-card-area-margin-top; .hover-transition(border); &:hover { border-color: @upload-card-item-bg-border-color-hover; .hover-transition(border-color); } } } .@{prefix}-upload__icon-delete, .@{prefix}-upload__single-input-clear { color: @upload-icon-color; cursor: pointer; .hover-transition(color); } .@{prefix}-upload__icon-delete:hover, .@{prefix}-upload__single-input-clear:hover { color: @upload-icon-color-hover; .hover-transition(color); } .t-icon.@{prefix}-upload__single-input-clear { display: none; } .@{prefix}-upload__single-input-preview:hover { .@{prefix}-upload__single-input-clear { display: initial; } .@{prefix}-upload__status-icon { display: none; } } .@{prefix}-upload { .@{prefix}-upload__single-name { color: @upload-file-name-color; } .@{prefix}-upload__file-thumbnail { margin-right: @upload-list-item-inner-padding; width: @upload-list-file-thumbnail-size; height: @upload-list-file-thumbnail-size; display: flex; justify-content: center; align-items: center; cursor: pointer; > svg { font-size: @upload-list-file-thumbnail-icon; color: @upload-icon-color; } } } .@{prefix}-upload__card-name { margin-top: @spacer; } .@{prefix}-upload--theme-file-input { width: 100%; } .@{prefix}-upload__dragger-btns > .@{prefix}-button { padding: 0; } .@{prefix}-upload__file-info { display: flex; align-items: center; } .@{prefix}-upload__card-container.@{prefix}-is-disabled { cursor: not-allowed; .@{prefix}-upload__add-text { color: @upload-text-disabled-color; } .t-icon { color: @upload-icon-disabled-color; } }