릴리스: v1.3.61 드롭존 아이콘과 업로드 UI 통일
This commit is contained in:
@@ -6,6 +6,7 @@ import * as htmlToImage from 'html-to-image'
|
||||
import SvgIcon from '../components/SvgIcon.vue'
|
||||
import addColumnRightIcon from '../assets/icons/add_column_right.svg'
|
||||
import addRowBelowIcon from '../assets/icons/add_row_below.svg'
|
||||
import addPhotoAlternateIcon from '../assets/icons/add_photo_alternate.svg'
|
||||
import { api } from '../lib/api'
|
||||
import { toApiUrl } from '../lib/runtime'
|
||||
import { useAuthStore } from '../stores/auth'
|
||||
@@ -1184,13 +1185,16 @@ onUnmounted(() => {
|
||||
@dragleave="onDragLeave"
|
||||
@drop.prevent="onDropFiles"
|
||||
>
|
||||
<div class="dropzone__iconWrap">
|
||||
<SvgIcon :src="addPhotoAlternateIcon" alt="" class="dropzone__icon" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="dropzone__title">커스텀 이미지 추가</div>
|
||||
<div class="dropzone__desc">이곳으로 이미지를 드래그하거나 파일 선택으로 한 번에 추가할 수 있어요.</div>
|
||||
</div>
|
||||
<div class="dropzone__actions">
|
||||
<input ref="fileEl" type="file" accept="image/*" multiple class="hidden" @change="onFileChange" />
|
||||
<button class="btn btn--ghost dropzone__button" @click="openFile">파일 선택</button>
|
||||
<button class="btn btn--ghost btn--small dropzone__button" @click="openFile">파일 선택</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2077,21 +2081,22 @@ onUnmounted(() => {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 18px;
|
||||
min-height: 176px;
|
||||
padding: 28px 24px;
|
||||
border: 2px dashed color-mix(in srgb, var(--theme-accent) 48%, var(--theme-border));
|
||||
min-height: 180px;
|
||||
padding: 28px 22px;
|
||||
border-radius: 22px;
|
||||
border: 2px dashed color-mix(in srgb, var(--theme-border-strong) 82%, rgba(255, 255, 255, 0.12));
|
||||
background:
|
||||
linear-gradient(180deg, color-mix(in srgb, var(--theme-card-bg) 82%, transparent), color-mix(in srgb, var(--theme-card-bg-hover) 74%, transparent)),
|
||||
radial-gradient(circle at top, color-mix(in srgb, var(--theme-accent) 12%, transparent), transparent 58%);
|
||||
linear-gradient(180deg, color-mix(in srgb, var(--theme-card-bg) 88%, white 4%), color-mix(in srgb, var(--theme-card-bg-hover) 82%, white 6%)),
|
||||
radial-gradient(circle at top, color-mix(in srgb, var(--theme-accent) 12%, transparent), transparent 60%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.dropzone--board.dropzone--active {
|
||||
border-color: color-mix(in srgb, var(--theme-accent) 78%, white);
|
||||
border-color: rgba(96, 165, 250, 0.56);
|
||||
background:
|
||||
linear-gradient(180deg, color-mix(in srgb, var(--theme-card-bg-hover) 88%, transparent), color-mix(in srgb, var(--theme-card-bg) 82%, transparent)),
|
||||
radial-gradient(circle at top, color-mix(in srgb, var(--theme-accent) 20%, transparent), transparent 58%);
|
||||
linear-gradient(180deg, color-mix(in srgb, var(--theme-card-bg-hover) 90%, white 6%), color-mix(in srgb, var(--theme-card-bg) 84%, white 4%)),
|
||||
radial-gradient(circle at top, color-mix(in srgb, var(--theme-accent) 18%, transparent), transparent 60%);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.dropzone__actions {
|
||||
@@ -2103,7 +2108,23 @@ onUnmounted(() => {
|
||||
}
|
||||
|
||||
.dropzone__button {
|
||||
min-width: 148px;
|
||||
min-width: 124px;
|
||||
min-height: 34px;
|
||||
}
|
||||
|
||||
.dropzone__iconWrap {
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
border-radius: 16px;
|
||||
background: color-mix(in srgb, var(--theme-text) 10%, transparent);
|
||||
}
|
||||
|
||||
.dropzone__icon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
opacity: 0.86;
|
||||
}
|
||||
|
||||
.dropzone--board .dropzone__title {
|
||||
|
||||
Reference in New Issue
Block a user