@opensig/opendesign
Version:
<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>
441 lines (404 loc) • 11.2 kB
CSS
.o-upload {
--upload-icon-size: var(--o-icon_size_control-xs);
--upload-icon-size-l: var(--o-icon_size_control-m);
--upload-icon-size-xl: var(--o-icon_size_control-l);
--upload-color: var(--o-color-info1);
--upload-color-error: var(--o-color-danger1);
--upload-color-disabled: var(--o-color-info4);
--upload-item-bg-hover: var(--o-color-control2-light);
--upload-item-radius: var(--o-radius_control-s);
--upload-progress-height: 1px;
--upload-progress-radius: var(--upload-progress-height);
--upload-progress-bg-color: var(--o-color-control3-light);
--upload-progress-value-bg-color: var(--o-color-primary1);
--upload-drag-padding: 32px 24px;
--upload-drag-width: 100%;
--upload-drag-radius: var(--o-radius_control-s);
--upload-drag-color: var(--o-color-info2);
--upload-drag-color-disabled: var(--o-color-info4);
--upload-drag-bg-color: var(--o-color-control-light);
--upload-drag-bg-color-hover: var(--o-color-control-light);
--upload-drag-bg-color-active: var(--o-color-control-light);
--upload-drag-bg-color-dragging: var(--o-color-primary4-light);
--upload-drag-bg-color-disabled: var(--o-color-control4-light);
--upload-drag-bd: 1px solid var(--o-color-control1);
--upload-drag-bd-hover: 1px dashed var(--o-color-primary2);
--upload-drag-bd-active: 1px dashed var(--o-color-primary3);
--upload-drag-bd-dragging: 1px dashed var(--o-color-primary2);
--upload-drag-bd-disabled: 1px dashed var(--o-color-control4);
--upload-card-radius: var(--o-radius_control-s);
--upload-card-width: 120px;
--upload-card-height: var(--upload-card-width);
--upload-card-gap: 8px;
--upload-card-bd: 1px solid var(--o-color-control1);
--upload-card-bd-hover: 1px solid var(--o-color-control2);
--upload-card-bd-disabled: 1px solid var(--o-color-control4);
--upload-card-bd-error: 1px solid var(--o-color-danger1);
--upload-card-bg-color: var(--o-color-control-light);
--upload-card-bg-color-hover: var(--o-color-control-light);
--upload-card-bg-color-disabled: var(--o-color-control4-light);
--upload-card-img-fit: cover;
--upload-card-mask: var(--o-color-mask1);
--upload-card-icon-color: var(--o-color-info1-inverse);
--upload-card-icon-color-hover: var(--o-color-info2-inverse);
--upload-card-icon-color-active: var(--o-color-info3-inverse);
}
.o-upload-select {
position: relative;
cursor: pointer;
}
.o-upload-select-input {
position: relative;
}
.o-upload-input {
position: absolute;
display: block;
width: 0;
height: 0;
opacity: 0;
}
.o-upload-item {
position: relative;
}
.o-upload-progress {
position: absolute;
height: var(--upload-progress-height);
background-color: var(--upload-progress-bg-color);
border-radius: var(--upload-progress-radius);
overflow: hidden;
}
.o-upload-progress-bar {
width: 0%;
height: 100%;
background-color: var(--upload-progress-value-bg-color);
border-radius: var(--upload-progress-radius);
transition: width var(--o-easing-linear) var(--o-duration-s);
}
.o-upload-row-item {
display: flex;
margin-top: 8px;
padding: 0 4px;
border-radius: var(--upload-item-radius);
color: var(--upload-color);
transition: background-color var(--o-easing-standard-in) var(--o-duration-m1);
}
@media (hover: hover) {
.o-upload-row-item:hover {
background-color: var(--upload-item-bg-hover);
}
.o-upload-row-item:hover .o-upload-icon-hover-in {
opacity: 1;
}
}
.o-upload-row-item.is-error .o-upload-icon-hover-in {
opacity: 1;
}
.o-upload-row-item + .o-upload-item-tip {
padding-left: 24px;
}
.o-upload-row-label {
font-size: var(--o-font_size-tip1);
line-height: var(--o-line_height-tip1);
margin-right: auto;
padding: 5px 0;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-word;
}
.o-upload-icon-link {
font-size: var(--upload-icon-size);
display: flex;
align-items: center;
margin-right: 8px;
}
.o-upload-row-icons {
display: flex;
margin-left: 16px;
font-size: var(--upload-icon-size);
}
.o-upload-row-icons > * + * {
margin-left: 8px;
}
.o-upload-row-icon {
display: flex;
align-items: center;
justify-content: center;
}
.o-upload-icon-hover-in {
opacity: 0;
transition: opacity var(--o-easing-standard-in) var(--o-duration-m1);
}
.o-upload-icon-loading {
margin-left: 8px;
}
.o-upload-select-extra {
font-size: var(--o-font_size-tip2);
line-height: var(--o-line_height-tip2);
color: var(--o-color-info4);
margin-top: 8px;
}
.o-upload-item-tip {
font-size: var(--o-font_size-tip2);
line-height: var(--o-line_height-tip2);
color: var(--o-color-info1);
display: flex;
margin-top: 4px;
}
.o-upload-item-tip.is-error {
color: var(--upload-color-error);
}
.o-upload-row-progress {
left: 4px;
right: 4px;
bottom: 0;
}
.o-upload-card-add {
border: var(--upload-card-bd);
background-color: var(--upload-card-bg-color);
width: var(--upload-card-width);
height: var(--upload-card-height);
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--upload-card-radius);
text-align: center;
color: var(--upload-color);
cursor: pointer;
font-size: var(--o-font_size-tip1);
line-height: var(--o-line_height-text1);
}
@media (hover: hover) {
.o-upload-card-add:hover {
border: var(--upload-card-bd-hover);
background-color: var(--upload-card-bg-color-hover);
}
}
.o-upload-card-add.is-disabled {
cursor: not-allowed;
color: var(--upload-color-disabled);
border: var(--upload-card-bd-disabled);
background-color: var(--upload-card-bg-color-disabled);
}
.o-upload-card-add-icon {
font-size: var(--upload-icon-size-l);
vertical-align: top;
}
.o-upload-card-add-icon + .o-upload-card-label {
margin-top: 8px;
}
.o-upload-card-list {
display: flex;
flex-wrap: wrap;
margin-bottom: calc(var(--upload-card-gap) * -1);
position: relative;
}
.o-upload-card-progress {
left: 8px;
right: 8px;
bottom: 4px;
}
.o-upload-item {
margin-right: var(--upload-card-gap);
margin-bottom: var(--upload-card-gap);
}
.o-upload-card-item.is-error .o-upload-card-file {
border: var(--upload-card-bd-error);
}
.o-upload-card-item-wrap {
position: relative;
border-radius: var(--upload-card-radius);
}
.o-upload-card-file {
border: var(--upload-card-bd);
background-color: var(--upload-card-bg-color);
width: var(--upload-card-width);
height: var(--upload-card-height);
flex-shrink: 0;
display: flex;
justify-content: center;
align-items: center;
position: relative;
border-radius: inherit;
}
.o-upload-thumbnail {
width: 100%;
height: 100%;
object-fit: var(--upload-card-img-fit);
border-radius: inherit;
}
.o-upload-icon-file {
font-size: var(--upload-icon-size-xl);
}
.o-upload-card-icons {
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--upload-card-mask);
border-radius: inherit;
opacity: 0;
transition: opacity var(--o-easing-standard-in) var(--o-duration-m1);
}
@media (hover: hover) {
.o-upload-card-icons:hover {
opacity: 1;
}
}
.o-upload-card-icons.is-show {
opacity: 1;
}
.o-upload-card-icons > * + * {
margin-left: 12px;
}
.o-upload-card-icons > .o-upload-icon-btn {
cursor: pointer;
color: var(--o-color-info1-inverse);
font-size: var(--upload-icon-size-l);
}
@media (hover: hover) {
.o-upload-card-icons > .o-upload-icon-btn:hover:hover {
color: var(--upload-card-icon-color-hover);
}
}
.o-upload-card-icons > .o-upload-icon-btn:active {
color: var(--upload-card-icon-color-active);
}
.o-upload-drag {
padding: var(--upload-drag-padding);
font-size: var(--o-font_size-tip1);
line-height: var(--o-line_height-text1);
color: var(--upload-drag-color);
background-color: var(--upload-drag-bg-color);
border: var(--upload-drag-bd);
text-align: center;
width: var(--upload-drag-width);
border-radius: var(--upload-drag-radius);
text-align: center;
transition: all var(--o-easing-standard) var(--o-duration-m2);
}
@media (hover: hover) {
.o-upload-drag:hover {
border: var(--upload-drag-bd-hover);
background-color: var(--upload-drag-bg-color-hover);
}
}
.o-upload-drag:active {
border: var(--upload-drag-bd-active);
background-color: var(--upload-drag-bg-color-active);
}
.o-upload-drag-dragging, .o-upload-drag-dragging:active {
border: var(--upload-drag-bd-dragging);
background-color: var(--upload-drag-bg-color-dragging);
}
@media (hover: hover) {
.o-upload-drag-dragging:hover {
border: var(--upload-drag-bd-dragging);
background-color: var(--upload-drag-bg-color-dragging);
}
}
.o-upload-drag-disabled {
cursor: not-allowed;
color: var(--upload-drag-color-disabled);
border: var(--upload-drag-bd-disabled);
background-color: var(--upload-drag-bg-color-disabled);
}
@media (hover: hover) {
.o-upload-drag-disabled:hover {
cursor: not-allowed;
color: var(--upload-drag-color-disabled);
border: var(--upload-drag-bd-disabled);
background-color: var(--upload-drag-bg-color-disabled);
}
}
.o-upload-drag-icon {
font-size: var(--upload-icon-size-l);
vertical-align: top;
}
.o-upload-drag-icon + .o-upload-drag-label {
margin-top: 12px;
}
.o-upload-list-picture-card {
display: flex;
flex-wrap: wrap;
margin-bottom: calc(var(--upload-card-gap) * -1);
position: relative;
}
.o-upload-list-picture-card .o-upload-item-tip {
padding-left: 0;
margin-bottom: 8px;
}
.o-upload-list-picture-card .o-upload-item-progress {
left: 0;
right: 0;
}
.o-upload-item-picture-card {
border: var(--upload-card-border);
width: var(--upload-card-width);
height: var(--upload-card-height);
flex-shrink: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
border-radius: var(--upload-card-radius);
position: relative;
margin-right: var(--upload-card-gap);
margin-bottom: var(--upload-card-gap);
margin-top: 0;
}
.o-upload-item-picture-card.is-error {
border: var(--upload-card-border-error);
}
.o-upload-thumbnail {
width: 100%;
height: 100%;
object-fit: var(--upload-card-img-fit);
border-radius: inherit;
}
.o-upload-icon-file {
font-size: var(--upload-icon-size-xl);
}
.o-upload-card-icons {
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
display: flex;
align-items: center;
justify-content: center;
color: var(--o-color-info1-inverse);
font-size: var(--upload-icon-size-l);
background-color: var(--upload-card-mask);
opacity: 0;
transition: opacity var(--o-easing-standard-in) var(--o-duration-m1);
}
.o-upload-card-icons:hover, .o-upload-card-icons.is-show {
opacity: 1;
}
.o-upload-card-icons > * + * {
margin-left: 12px;
}
.o-upload-card-icons > .o-upload-icon-btn {
cursor: pointer;
}
.o-upload-card-icons > .o-upload-icon-btn:hover {
color: var(--upload-card-icon-color-hover);
}
.o-upload-card-icons > .o-upload-icon-btn:active {
color: var(--upload-card-icon-color-active);
}
@media (max-width: 1200px) {
.o-upload-card-icons {
opacity: 1;
}
}
@media (max-width: 1440px) {
.o-upload {
--upload-drag-padding: 16px 8px;
}
}