diff --git a/src/component/Canvas/CanvasEditor/components/HeaderMenu.vue b/src/component/Canvas/CanvasEditor/components/HeaderMenu.vue index 41d5f7c1..244dc9d6 100644 --- a/src/component/Canvas/CanvasEditor/components/HeaderMenu.vue +++ b/src/component/Canvas/CanvasEditor/components/HeaderMenu.vue @@ -395,7 +395,7 @@ onMounted(() => { align-items: center; border-bottom: 1px solid #e0e0e0; user-select: none; - height: 52px; + height: 5.2rem; overflow: hidden; width: 100%; .canvas-header-wrapper { @@ -406,9 +406,9 @@ onMounted(() => { } .canvas-title { - font-size: 16px; + font-size: 1.6rem; font-weight: 500; - margin-right: 30px; + margin-right: 3rem; display: flex; align-items: center; color: #333; @@ -422,11 +422,11 @@ onMounted(() => { .canvas-settings { display: flex; align-items: center; - gap: 8px; + gap: .8rem; color: #213547; .btn { - width: 32px; - height: 32px; + width: 3.2rem; + height: 3.2rem; display: flex; align-items: center; justify-content: center; @@ -448,40 +448,40 @@ onMounted(() => { } .gap-20 { - gap: 20px; + gap: 2rem; } .setting-group { display: flex; align-items: center; - gap: 5px; + gap: .5rem; position: relative; } .setting-label { - font-size: 14px; + font-size: 1.4rem; color: #333; } .setting-input { - width: 80px; + width: 8rem; } .setting-input :deep(.ant-input-number-input) { - padding: 4px 8px; - font-size: 14px; + padding: .4rem .8rem; + font-size: 1.4rem; } .setting-select { - padding: 4px 8px; + padding: .4rem .8rem; border: 1px solid #ddd; border-radius: 4px; - font-size: 14px; + font-size: 1.4rem; } .font-select { - width: 150px; - padding: 4px 8px; + width: 15rem; + padding: .4rem .8rem; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; @@ -494,8 +494,8 @@ onMounted(() => { } .color-picker { - width: 30px; - height: 30px; + width: 3rem; + height: 3rem; border: none; padding: 0; background: none; @@ -503,20 +503,20 @@ onMounted(() => { } .color-dropdown { - font-size: 10px; - margin-left: 5px; + font-size: 1rem; + margin-left: .5rem; color: #666; } .size-slider { - width: 100px; + width: 10rem; cursor: pointer; } .size-value { - font-size: 12px; + font-size: 1.2rem; color: #666; - min-width: 30px; + min-width: 3rem; } .brush-selector { @@ -524,21 +524,21 @@ onMounted(() => { } .brush-preview { - width: 20px; - height: 2px; + width: 2rem; + height: .2rem; background-color: #000; border-radius: 1px; } .brush-dropdown, .export-model-dropdown { - font-size: 10px; - margin-left: 5px; + font-size: 1rem; + margin-left: .5rem; color: #666; } .export-model-select { - font-size: 14px; + font-size: 1.4rem; color: #333; cursor: pointer; } @@ -553,8 +553,8 @@ onMounted(() => { top: calc(100% + 5px); left: 0; z-index: 1000; - width: 600px; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); + width: 60rem; + box-shadow: 0 2px 1rem rgba(0, 0, 0, 0.2); border-radius: 4px; overflow: hidden; } diff --git a/src/component/Canvas/CanvasEditor/components/LayersPanel/layersPanel.css b/src/component/Canvas/CanvasEditor/components/LayersPanel/layersPanel.css new file mode 100644 index 00000000..97a58719 --- /dev/null +++ b/src/component/Canvas/CanvasEditor/components/LayersPanel/layersPanel.css @@ -0,0 +1,660 @@ +.text-ellipsis { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.layers-panel-inner { + display: flex; + flex-direction: column; + user-select: none; + z-index: 6; + overflow-y: auto; + height: 100%; + max-height: 85vh; + -webkit-overflow-scrolling: touch; +} +.layers-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1.5rem; + border-bottom: 1px solid #e0e0e0; +} +.layers-header h3 { + margin: 0; + font-size: 1.6rem; + font-weight: 500; + color: #333; +} +.layer-actions-group { + display: flex; + gap: 0.8rem; +} +.layer-actions-group .normal-actions, +.layer-actions-group .multi-select-actions { + display: flex; + gap: 0.8rem; +} +.action-btn { + width: 3.2rem; + height: 3.2rem; + background: none; + border: 1px solid #d9d9d9; + border-radius: 0.4rem; + display: flex; + align-items: center; + justify-content: center; + color: #666; + cursor: pointer; + transition: all 0.2s ease; +} +.action-btn:hover { + background-color: #f0f0f0; + border-color: #40a9ff; + color: #40a9ff; +} +.action-btn:active { + background-color: #e6f7ff; + border-color: #1890ff; + color: #1890ff; +} +.action-btn[disabled] { + opacity: 0.5; + cursor: not-allowed; + background-color: #f5f5f5; + color: #bfbfbf; + border-color: #e6e6e6; +} +.action-btn[disabled]:hover { + background-color: #f5f5f5; + color: #bfbfbf; + border-color: #e6e6e6; +} +.group-btn { + background-color: #e6f7ff; + border-color: #91d5ff; + color: #1890ff; +} +.group-btn:hover { + background-color: #bae7ff; + border-color: #69c0ff; +} +.group-btn.disabled { + background-color: #f0f5ff; + border-color: #d9ecff; + color: #bfbfbf; +} +.ungroup-btn { + background-color: #fff2e8; + border-color: #ffbb96; + color: #fa8c16; +} +.ungroup-btn:hover { + background-color: #ffd8bf; + border-color: #ff9c6e; + color: #fa8c16; +} +.ungroup-btn.disabled { + background-color: #f0f5ff; + border-color: #d9ecff; + color: #bfbfbf; +} +.delete-selected-btn { + background-color: #fff2f0; + border-color: #ffccc7; + color: #ff4d4f; +} +.delete-selected-btn:hover { + background-color: #ffebe6; + border-color: #ff7875; + color: #ff4d4f; +} +.clear-selection-btn { + background-color: #f6f6f6; + border-color: #d9d9d9; + color: #595959; +} +.clear-selection-btn:hover { + background-color: #e6e6e6; + border-color: #bfbfbf; + color: #595959; +} +.multi-select-info { + padding: 1rem 0.6rem; + background-color: rgba(238, 238, 238, 0.4); + border-bottom: 1px solid #91d5ff; + color: #333; + font-size: 1.3rem; + line-height: 1.4; +} +.multi-select-info small { + display: block; + margin-top: 0.4rem; + color: #666; + font-size: 1.1rem; +} +.layers-list { + position: relative; + flex: 1; + overflow-y: auto; +} +.layer-item { + position: relative; + width: 100%; + display: flex; + flex-direction: column; + padding: 1rem 0; + cursor: pointer; + transition: all 0.2s ease; + border: 1px solid transparent; + border-left: 0; + border-right: 0; + border: none; + border-bottom: 1px solid #f5f2f2; + padding-left: 3rem; + padding-right: 1rem; + color: #333; +} +.layer-item.group-layer { + background-color: rgba(240, 248, 255, 0.3); + border-color: #e6f7ff; +} +.layer-item:hover { + background-color: #f0f0f0; + border-color: #e0e0e0; +} +.layer-item.active { + background-color: #e6f7ff; + border-color: #91d5ff; +} +.layer-item.selected { + background-color: #bae7ff; + border-color: #91d5ff; +} +.layer-item.editing { + background-color: #fff7e6; + border-color: #ffd666; +} +.layer-item.disabled { + opacity: 0.6; + cursor: not-allowed; +} +.layer-item.disabled:hover { + background-color: transparent; +} +.layer-header { + display: flex; + align-items: center; + width: 100%; + gap: 0.6rem; +} +.layer-review { + width: 3.2rem; + height: 3.2rem; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + flex: none; + background: repeating-conic-gradient(#f5f5f5 0% 25%, #ffffff 0% 50%) 50% / 1rem 1rem; + border: 1px solid #e0e0e0; +} +.layer-thumbnail { + width: 100%; + height: 100%; + object-fit: contain; +} +.layer-type-icon { + font-size: 1.4rem; +} +.visibility-btn { + width: 2.2rem; + height: 2.2rem; + cursor: pointer; + flex: none; + color: #333; + display: flex; + align-items: center; + justify-content: center; +} +.visibility-btn.hidden { + color: #999; +} +.layer-name-container { + flex: 1; + margin: 0 0.6rem; + overflow: hidden; +} +.layer-name-container .layer-name-wrapper { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; +} +.layer-name { + color: #333; + font-size: 1.4rem; + text-align: left; + display: block; + width: 100%; +} +.layer-name-input { + width: 100%; + padding: 0.2rem 0.4rem; + border: 1px solid #1890ff; + border-radius: 0.3rem; + font-size: 1.4rem; + color: #333; + background-color: #fff; + outline: none; + box-sizing: border-box; +} +.layer-name-input:focus { + border-color: #40a9ff; + box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); +} +.layer-status { + display: flex; + align-items: center; + gap: 0.4rem; +} +.status-icon { + font-size: 1.2rem; +} +.status-icon.locked { + color: #1890ff; +} +.status-icon.group { + color: #fa8c16; +} +.status-icon.disabled { + color: #ccc; + cursor: not-allowed; +} +.layer-actions { + display: flex; + gap: 0.6rem; +} +.delete-btn { + font-size: 1.6rem; + cursor: pointer; + width: 2.2rem; + height: 2.2rem; + display: flex; + align-items: center; + justify-content: center; +} +.delete-btn:hover { + color: #ff4d4f; +} +.delete-btn.disabled { + color: #ccc; + cursor: not-allowed; +} +.layer-drag-handle { + position: absolute; + top: 0; + left: 0; + width: 2rem; + height: 100%; + cursor: move; + flex: none; + display: flex; + align-items: center; + justify-content: center; + color: #999; + margin-right: 0.4rem; + background: #eee; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.2); +} +.layer-drag-handle:hover { + color: #333; +} +.layer-checkbox { + width: 1.8rem; + height: 1.8rem; + margin-right: 0; + cursor: pointer; + flex: none; + display: flex; + align-items: center; +} +.child-layer { + padding: 0.8rem 2rem 0.8rem 3.2rem; + background-color: rgba(240, 240, 240, 0.3); + border-left: 2px solid #e0e0e0; +} +.child-layer:hover { + background-color: rgba(224, 224, 224, 0.5); +} +.child-layer.active { + background-color: rgba(230, 247, 255, 0.5); + border-left: 2px solid #1890ff; +} +.child-layer.editing { + background-color: rgba(255, 247, 230, 0.5); + border-left: 2px solid #ffd666; +} +.child-layer .layer-actions { + position: static; + display: flex; + gap: 0.4rem; +} +.child-layer .layer-actions button { + width: 2rem; + height: 2rem; + border: none; + background: none; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + color: #999; + border-radius: 2px; + transition: all 0.2s; +} +.child-layer .layer-actions button:hover { + background-color: #f0f0f0; + color: #333; +} +.layer-indent { + width: 2rem; + flex: none; +} +.layer-info { + flex: 1; + margin: 0 0.8rem; +} +.layer-info .layer-name { + font-size: 1.3rem; + color: #333; + margin-bottom: 0.2rem; +} +.layer-info .layer-status { + display: flex; + align-items: center; + gap: 0.4rem; +} +.layer-info .layer-type { + font-size: 11px; + color: #999; +} +.child-drag-handle { + width: 1.6rem; + height: 1.6rem; + cursor: move; + flex: none; + display: flex; + align-items: center; + justify-content: center; + color: #999; + margin-right: 0.4rem; +} +.child-drag-handle:hover { + color: #333; +} +.fixed-layers { + border-top: 1px solid #e0e0e0; + background-color: rgba(238, 238, 238, 0.4); +} +.fixed-layers .layer-drag-handle { + cursor: default; +} +.fixed-layer { + background-color: #fafafa; +} +.fixed-layer-indicator { + width: 2rem; + height: 2rem; + display: flex; + align-items: center; + justify-content: center; + color: #1890ff; + margin-right: 0.4rem; +} +.background-indicator, +.fixed-indicator { + display: flex; + align-items: center; + justify-content: center; + margin-left: 0.4rem; +} +.background-icon, +.fixed-icon { + font-size: 1.4rem; + color: #999; +} +.sortable-layers { + width: 100%; +} +.ghost { + opacity: 0.5; + background-color: #f0f0f0; + border: 2px dashed #1890ff; +} +.chosen { + background-color: #e6f7ff; + border: 1px solid #1890ff; +} +.drag { + opacity: 0.8; + transform: rotate(5deg); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); +} +.child-layers .ghost { + opacity: 0.4; + background-color: #fff7e6; + border: 1px dashed #faad14; +} +.child-layers .chosen { + background-color: #fff7e6; + border: 1px solid #faad14; +} +.child-layers .drag { + opacity: 0.7; + transform: rotate(3deg); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); +} +@media (max-width: 768px) { + .layers-panel-inner { + max-height: 70vh; + } + .layer-item { + padding: 1.2rem; + padding-left: 3.5rem; + } + .layer-header { + min-height: 4rem; + } + .layer-drag-handle, + .visibility-btn { + width: 2.4rem; + } + .layer-review { + width: 3.6rem; + height: 3.6rem; + } + .action-btn { + width: 3.6rem; + height: 3.6rem; + } + .multi-select-info small { + font-size: 1.1rem; + } +} +@media (min-width: 768px) and (max-width: 1024px) { + .layer-item { + padding: 10px; + padding-left: 30px; + } + .layer-drag-handle:hover, + .visibility-btn:hover { + background-color: rgba(0, 0, 0, 0.04); + border-radius: 4px; + } +} +@media (hover: none) and (pointer: coarse) { + .layer-item { + padding-left: 30px; + } + .layer-item:hover { + background-color: transparent; + } + .layer-item:active { + background-color: #f0f0f0; + } + .action-btn:hover { + background-color: transparent; + border-color: #d9d9d9; + color: #666; + } + .action-btn:active { + background-color: #e6f7ff; + border-color: #1890ff; + color: #1890ff; + } +} +.group-expand-icon { + display: flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + cursor: pointer; + border-radius: 2px; + transition: all 0.2s ease; + margin-right: 4px; + color: #333; +} +.group-expand-icon .svg-icon { + transition: transform 0.2s ease; +} +.group-layer .layer-type-icon { + font-size: 14px; +} +.child-layers { + position: relative; +} +.child-layers::before { + content: ''; + position: absolute; + left: 8px; + top: 0; + bottom: 0; + width: 1px; + background-color: #e0e0e0; +} +.layer-indent { + width: 16px; + position: relative; +} +.layer-indent::after { + content: ''; + position: absolute; + left: 8px; + top: 50%; + width: 8px; + height: 1px; + background-color: #e0e0e0; +} +.child-layers-expand-enter-active, +.child-layers-expand-leave-active { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + overflow: hidden; +} +.child-layers-expand-enter-from { + height: 0; + opacity: 0; + padding-top: 0; + padding-bottom: 0; + margin-top: 0; + margin-bottom: 0; +} +.child-layers-expand-leave-to { + height: 0; + opacity: 0; + padding-top: 0; + padding-bottom: 0; + margin-top: 0; + margin-bottom: 0; +} +.group-expand-icon { + display: flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + cursor: pointer; + border-radius: 2px; + transition: all 0.2s ease; + margin-right: 4px; +} +.group-expand-icon:hover { + background-color: rgba(0, 0, 0, 0.1); + transform: scale(1.1); +} +.group-expand-icon:active { + transform: scale(0.95); +} +.group-expand-icon .svg-icon { + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +.child-layers { + position: relative; + background: linear-gradient(135deg, rgba(240, 248, 255, 0.1) 0%, rgba(240, 248, 255, 0.05) 100%); +} +.child-layers::before { + content: ''; + position: absolute; + left: 8px; + top: 0; + bottom: 0; + width: 1px; + background: linear-gradient(to bottom, #e0e0e0 0%, rgba(224, 224, 224, 0.3) 100%); +} +.child-layers .layer-item { + animation: slideInRight 0.2s ease-out; + animation-fill-mode: both; +} +.child-layers .layer-item:nth-child(1) { + animation-delay: 0.05s; +} +.child-layers .layer-item:nth-child(2) { + animation-delay: 0.1s; +} +.child-layers .layer-item:nth-child(3) { + animation-delay: 0.15s; +} +.child-layers .layer-item:nth-child(4) { + animation-delay: 0.2s; +} +.child-layers .layer-item:nth-child(5) { + animation-delay: 0.25s; +} +@keyframes slideInRight { + from { + opacity: 0; + transform: translateX(-10px); + } + to { + opacity: 1; + transform: translateX(0); + } +} +@media (hover: none) and (pointer: coarse) { + .child-layers-expand-enter-active, + .child-layers-expand-leave-active { + transition: all 0.25s ease; + } + .group-expand-icon:hover { + transform: none; + background-color: transparent; + } + .group-expand-icon:active { + transform: scale(0.9); + background-color: rgba(0, 0, 0, 0.1); + } + .child-layers .layer-item { + animation-duration: 0.15s; + } +} diff --git a/src/component/Canvas/CanvasEditor/components/LayersPanel/layersPanel.less b/src/component/Canvas/CanvasEditor/components/LayersPanel/layersPanel.less index 8aa19673..2229c0b1 100644 --- a/src/component/Canvas/CanvasEditor/components/LayersPanel/layersPanel.less +++ b/src/component/Canvas/CanvasEditor/components/LayersPanel/layersPanel.less @@ -22,12 +22,12 @@ display: flex; justify-content: space-between; align-items: center; - padding: 15px; + padding: 1.5rem; border-bottom: 1px solid #e0e0e0; h3 { margin: 0; - font-size: 16px; + font-size: 1.6rem; font-weight: 500; color: #333; } @@ -35,21 +35,21 @@ .layer-actions-group { display: flex; - gap: 8px; + gap: .8rem; .normal-actions, .multi-select-actions { display: flex; - gap: 8px; + gap: .8rem; } } // 操作按钮样式 .action-btn { - width: 32px; - height: 32px; + width: 3.2rem; + height: 3.2rem; background: none; border: 1px solid #d9d9d9; - border-radius: 4px; + border-radius: .4rem; display: flex; align-items: center; justify-content: center; @@ -146,19 +146,19 @@ // 多选信息提示 .multi-select-info { - padding: 10px 6px; + padding: 1rem .6rem; // background-color: #e6f7ff; background-color: rgba(238, 238, 238,0.4); border-bottom: 1px solid #91d5ff; color: #333; - font-size: 13px; + font-size: 1.3rem; line-height: 1.4; small { display: block; - margin-top: 4px; + margin-top: .4rem; color: #666; - font-size: 11px; + font-size: 1.1rem; } } @@ -175,7 +175,7 @@ width: 100%; display: flex; flex-direction: column; - padding: 10px 0; + padding: 1rem 0; cursor: pointer; transition: all 0.2s ease; border: 1px solid transparent; @@ -183,8 +183,8 @@ border-right: 0; border: none; border-bottom: 1px solid #f5f2f2; - padding-left: 30px; - padding-right: 10px; + padding-left: 3rem; + padding-right: 1rem; color: #333; &.group-layer { @@ -232,20 +232,20 @@ display: flex; align-items: center; width: 100%; - gap: 6px; + gap: .6rem; } // 图层预览 .layer-review { - width: 32px; - height: 32px; + width: 3.2rem; + height: 3.2rem; display: flex; align-items: center; justify-content: center; overflow: hidden; flex: none; background: repeating-conic-gradient(#f5f5f5 0% 25%, #ffffff 0% 50%) 50% / - 10px 10px; + 1rem 1rem; border: 1px solid #e0e0e0; } @@ -256,13 +256,13 @@ } .layer-type-icon { - font-size: 14px; + font-size: 1.4rem; } // 可见性按钮 .visibility-btn { - width: 22px; - height: 22px; + width: 2.2rem; + height: 2.2rem; cursor: pointer; flex: none; color: #333; @@ -278,7 +278,7 @@ // 图层名称 .layer-name-container { flex: 1; - margin: 0 6px; + margin: 0 .6rem; overflow: hidden; // max-width: 204px; .layer-name-wrapper{ @@ -291,7 +291,7 @@ .layer-name { color: #333; - font-size: 14px; + font-size: 1.4rem; text-align: left; display: block; width: 100%; @@ -299,10 +299,10 @@ .layer-name-input { width: 100%; - padding: 2px 4px; + padding: .2rem .4rem; border: 1px solid #1890ff; - border-radius: 3px; - font-size: 14px; + border-radius: .3rem; + font-size: 1.4rem; color: #333; background-color: #fff; outline: none; @@ -318,13 +318,13 @@ .layer-status { display: flex; align-items: center; - gap: 4px; + gap: .4rem; } .status-icon { - font-size: 12px; + font-size: 1.2rem; &.locked { color: #1890ff; @@ -343,14 +343,14 @@ // 图层操作 .layer-actions { display: flex; - gap: 6px; + gap: .6rem; } .delete-btn { - font-size: 16px; + font-size: 1.6rem; cursor: pointer; - width: 22px; - height: 22px; + width: 2.2rem; + height: 2.2rem; display: flex; align-items: center; justify-content: center; @@ -371,7 +371,7 @@ position: absolute; top: 0; left: 0; - width: 20px; + width: 2rem; height: 100%; cursor: move; flex: none; @@ -379,7 +379,7 @@ align-items: center; justify-content: center; color: #999; - margin-right: 4px; + margin-right: .4rem; background: #eee; box-shadow: 0 0 4px rgba(0, 0, 0, 0.2); &:hover { @@ -389,8 +389,8 @@ // 复选框 .layer-checkbox { - width: 18px; - height: 18px; + width: 1.8rem; + height: 1.8rem; margin-right: 0; cursor: pointer; flex: none; @@ -410,7 +410,7 @@ } .child-layer { - padding: 8px 20px 8px 32px; + padding: .8rem 2rem .8rem 3.2rem; background-color: rgba(240, 240, 240, 0.3); border-left: 2px solid #e0e0e0; @@ -431,11 +431,11 @@ .layer-actions { position: static; display: flex; - gap: 4px; + gap: .4rem; button { - width: 20px; - height: 20px; + width: 2rem; + height: 2rem; border: none; background: none; cursor: pointer; @@ -455,24 +455,24 @@ } .layer-indent { - width: 20px; + width: 2rem; flex: none; } .layer-info { flex: 1; - margin: 0 8px; + margin: 0 .8rem; .layer-name { - font-size: 13px; + font-size: 1.3rem; color: #333; - margin-bottom: 2px; + margin-bottom: .2rem; } .layer-status { display: flex; align-items: center; - gap: 4px; + gap: .4rem; } .layer-type { @@ -482,15 +482,15 @@ } .child-drag-handle { - width: 16px; - height: 16px; + width: 1.6rem; + height: 1.6rem; cursor: move; flex: none; display: flex; align-items: center; justify-content: center; color: #999; - margin-right: 4px; + margin-right: .4rem; &:hover { color: #333; @@ -518,13 +518,13 @@ } .fixed-layer-indicator { - width: 20px; - height: 20px; + width: 2rem; + height: 2rem; display: flex; align-items: center; justify-content: center; color: #1890ff; - margin-right: 4px; + margin-right: .4rem; } .background-indicator, @@ -532,12 +532,12 @@ display: flex; align-items: center; justify-content: center; - margin-left: 4px; + margin-left: .4rem; } .background-icon, .fixed-icon { - font-size: 14px; + font-size: 1.4rem; color: #999; } @@ -590,34 +590,34 @@ } .layer-item { - padding: 12px; - padding-left: 35px; + padding: 1.2rem; + padding-left: 3.5rem; } .layer-header { - min-height: 40px; + min-height: 4rem; } .layer-drag-handle, .visibility-btn { - width: 24px; + width: 2.4rem; } .layer-review { - width: 36px; - height: 36px; + width: 3.6rem; + height: 3.6rem; } .action-btn { - width: 36px; - height: 36px; + width: 3.6rem; + height: 3.6rem; } .multi-select-info { // padding: 12px; small { - font-size: 11px; + font-size: 1.1rem; } } // .layer-name-container { diff --git a/src/component/Canvas/CanvasEditor/components/ToolsSidebar.vue b/src/component/Canvas/CanvasEditor/components/ToolsSidebar.vue index a7a5c631..b0878b44 100644 --- a/src/component/Canvas/CanvasEditor/components/ToolsSidebar.vue +++ b/src/component/Canvas/CanvasEditor/components/ToolsSidebar.vue @@ -346,12 +346,12 @@ const handleToolClick = (tool) => { .tools-sidebar { display: flex; flex-direction: column; - gap: 10px; - padding: 15px 10px; - border-right: 1px solid #e0e0e0; + gap: 1.0rem; + padding: 1.5rem 1.0rem; + border-right: .1rem solid #e0e0e0; background-color: #ffffff; user-select: none; - min-width: 58px; + min-width: 5.8rem; height: 100%; } @@ -360,12 +360,12 @@ const handleToolClick = (tool) => { } .mode-indicator { - margin-bottom: 10px; - padding: 8px; + margin-bottom: 1.0rem; + padding: .8rem; border-radius: 4px; background-color: #ffcccc; color: #a33; - font-size: 14px; + font-size: 1.4rem; text-align: center; } @@ -374,7 +374,7 @@ const handleToolClick = (tool) => { } .mode-hint { - font-size: 12px; - margin-top: 4px; + font-size: 1.2rem; + margin-top: .4rem; } diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue index 63fc9628..f9f21490 100644 --- a/src/component/Canvas/CanvasEditor/index.vue +++ b/src/component/Canvas/CanvasEditor/index.vue @@ -980,7 +980,7 @@ defineExpose({