UNPKG

@qvant/qui-max

Version:

A Vue 3 Design system for Web.

281 lines (277 loc) 6.88 kB
.q-upload-drop-zone { --background-color: var(--color-tertiary-gray-light); --border-color: rgb(var(--color-rgb-gray) / 16%); --text-color: var(--color-primary-blue); --box-shadow: var(--box-shadow-primary); position: relative; z-index: 10; display: flex; flex-direction: column; align-items: center; justify-content: center; width: var(--q-upload-size); height: var(--q-upload-size); overflow: hidden; text-align: center; cursor: pointer; background-color: var(--background-color); border-radius: 6px; outline: none; box-shadow: var(--box-shadow); } .q-upload-drop-zone:hover, .q-upload-drop-zone[data-focus-visible-added] { --background-color: var(--color-tertiary-gray); --box-shadow: var(--box-shadow-hover); } .q-upload-drop-zone::before { position: absolute; top: 8px; right: 8px; bottom: 8px; left: 8px; content: ""; border: 1px dashed var(--border-color); } .q-upload-drop-zone__icon { font-size: 40px; line-height: 1; color: var(--text-color); } .q-upload-drop-zone__text { margin-top: 8px; font-size: 12px; font-weight: var(--font-weight-bold); line-height: 15px; color: var(--text-color); text-transform: uppercase; } .q-upload-drop-zone_is-dragover { --border-color: var(--color-primary-blue); --background-color: var(--color-tertiary-gray); } .q-upload-drop-zone_is-loading { --background-color: var(--color-tertiary-gray-ultra-light); --text-color: rgb(var(--color-rgb-gray) / 64%); --box-shadow: var(--box-shadow-pressed); } .q-upload-drop-zone_is-loading:hover { --background-color: var(--color-tertiary-gray-ultra-light); --box-shadow: var(--box-shadow-pressed); } .q-upload-drop-zone_is-loading .q-upload-drop-zone__icon { animation: rotating 2s linear infinite; } .q-upload-drop-zone_is-disabled { --border-color: rgb(var(--color-rgb-gray) / 64%); --text-color: rgb(var(--color-rgb-gray) / 64%); --background-color: var(--color-tertiary-gray); --box-shadow: var(--box-shadow-pressed); cursor: not-allowed; } .q-upload-drop-zone_is-disabled:hover { --box-shadow: var(--box-shadow-pressed); } .q-form-item_is-error .q-upload-drop-zone { --border-color: var(--color-secondary-orange); } .q-upload-file-single { --text-color: rgb(var(--color-rgb-gray) / 64%); position: absolute; right: 24px; bottom: 24px; left: 24px; z-index: 15; display: flex; align-items: center; justify-content: space-between; padding: 8px; overflow: hidden; background-color: var(--color-tertiary-gray); border-radius: var(--border-radius-base); box-shadow: var(--box-shadow-pressed); } .q-upload-file-single__icon { width: 24px; margin-right: 8px; font-size: 24px; color: var(--text-color); } .q-upload-file-single__name { width: 136px; margin-right: auto; overflow: hidden; font-size: 10px; font-weight: var(--font-weight-base); line-height: 12px; color: var(--text-color); text-align: left; text-overflow: ellipsis; white-space: nowrap; } .q-upload-file-single__btn { width: 24px; padding: 0; margin-left: 8px; font-size: 24px; color: var(--color-primary-blue); cursor: pointer; background-color: transparent; border: none; outline: none; } .q-upload-file-single__btn:hover, .q-upload-file-single__btn.focus-visible { color: var(--color-primary-black); } .q-upload-file-single__loader { position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background-color: rgb(var(--color-rgb-gray)/16%); } .q-upload-file-single__bar { width: 0; height: 100%; background-color: var(--color-primary-blue); transition: width 0.1s ease; } .q-upload-file-multiple { --text-color: rgb(var(--color-rgb-gray) / 64%); position: absolute; right: 0; bottom: 0; z-index: 5; display: flex; flex-direction: column; width: var(--q-upload-size); height: var(--q-upload-size); visibility: hidden; background-color: var(--color-tertiary-gray-light); border-radius: var(--border-radius-base); box-shadow: var(--box-shadow-secondary); opacity: 0; transition: visibility var(--transition-spline-base) 0.5s, opacity var(--transition-spline-base) 0.25s; } .q-upload-file-multiple_shown { visibility: visible; opacity: 1; transition: visibility var(--transition-spline-base) 0.5s, opacity var(--transition-spline-base) 0.25s 0.25s; } .q-upload-file-multiple__title { display: flex; align-items: center; margin-top: 16px; margin-bottom: 16px; margin-left: 16px; font-size: 12px; font-weight: var(--font-weight-bold); line-height: 24px; color: var(--color-primary-black); text-transform: uppercase; letter-spacing: var(--letter-spacing-base); } .q-upload-file-multiple__clear-all { margin-left: 8px; } .q-upload-file-multiple__inner { width: 100%; padding: 0 16px 16px; } .q-upload-file-multiple__line { display: flex; align-items: center; justify-content: space-between; } .q-upload-file-multiple__line + .q-upload-file-multiple__line { margin-top: 11px; } .q-upload-file-multiple__icon { width: 24px; margin-right: 8px; font-size: 24px; color: var(--text-color); } .q-upload-file-multiple__icon.q-icon-reverse { animation: rotating 2s linear infinite; } .q-upload-file-multiple__name { position: relative; display: block; width: 168px; margin-right: auto; overflow: hidden; font-size: 14px; font-weight: var(--font-weight-base); line-height: 22px; color: var(--text-color); text-align: left; text-overflow: ellipsis; white-space: nowrap; } .q-upload-file-multiple__action { width: 24px; padding: 0; margin-left: 8px; font-size: 24px; color: var(--color-primary-blue); cursor: pointer; background-color: transparent; border: none; outline: none; } .q-upload-file-multiple__action:hover, .q-upload-file-multiple__action.focus-visible { color: var(--color-primary-black); } .q-upload-file-multiple__action.q-icon-lock { color: var(--text-color); } .q-upload-file-multiple__loader { position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background-color: rgb(var(--color-rgb-gray)/16%); } .q-upload-file-multiple__bar { width: 0; height: 100%; background-color: var(--color-primary-blue); transition: width 0.1s ease; } .q-upload { --q-upload-size: 264px; position: relative; display: inline-block; } .q-upload_multiple { width: var(--q-upload-size); height: var(--q-upload-size); transition: width var(--transition-spline-base) 0.5s, height var(--transition-spline-base) 0.5s; } .q-upload_multiple_open-right { width: 544px; } .q-upload_multiple_open-bottom { height: 544px; } .q-upload__input { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; margin: 0; outline: none; opacity: 0; } @keyframes rotating { 0% { transform: rotateZ(0deg); } 100% { transform: rotateZ(360deg); } }