优化 WorkflowSidebar 组件的样式,使用 VCard 替代 div 以提升视觉效果,调整背景颜色和文本颜色以支持主题切换,增强用户体验。

This commit is contained in:
jxxghp
2025-04-19 13:20:13 +08:00
parent dc9c08ed30
commit 174b2b9fa3
+17 -21
View File
@@ -136,7 +136,7 @@ onMounted(() => {
@dragstart="!display.smAndDown.value && onDragStart($event, action)" @dragstart="!display.smAndDown.value && onDragStart($event, action)"
@click="display.smAndDown.value && handleComponentClick(action)" @click="display.smAndDown.value && handleComponentClick(action)"
> >
<div class="component-card"> <VCard class="component-card">
<VAvatar size="36" class="component-avatar"> <VAvatar size="36" class="component-avatar">
<VIcon :icon="getActionIcon(action.type)" size="18" /> <VIcon :icon="getActionIcon(action.type)" size="18" />
</VAvatar> </VAvatar>
@@ -144,7 +144,7 @@ onMounted(() => {
<div class="component-name">{{ action.name }}</div> <div class="component-name">{{ action.name }}</div>
<div class="component-desc">{{ display.smAndDown.value ? '点击添加' : '拖动到画布' }}</div> <div class="component-desc">{{ display.smAndDown.value ? '点击添加' : '拖动到画布' }}</div>
</div> </div>
</div> </VCard>
</div> </div>
</div> </div>
@@ -171,7 +171,7 @@ onMounted(() => {
position: absolute; position: absolute;
z-index: 100; z-index: 100;
overflow: hidden; overflow: hidden;
background-color: #f5f5f7; background-color: rgb(var(--v-theme-background));
box-shadow: 0 0 15px rgba(0, 0, 0, 8%); box-shadow: 0 0 15px rgba(0, 0, 0, 8%);
inline-size: 280px; inline-size: 280px;
inset-block: 0; inset-block: 0;
@@ -201,8 +201,8 @@ onMounted(() => {
.sidebar-header { .sidebar-header {
flex-shrink: 0; flex-shrink: 0;
padding: 16px; padding: 16px;
background-color: #fff; background-color: rgb(var(--v-theme-background));
border-block-end: 1px solid rgba(0, 0, 0, 6%); border-block-end: 1px solid rgba(var(--v-theme-on-background), 0.06);
.header-content { .header-content {
position: relative; position: relative;
@@ -211,20 +211,20 @@ onMounted(() => {
} }
.workflow-logo { .workflow-logo {
background-color: #8c58f5; background-color: rgb(var(--v-theme-primary));
color: white; color: white;
margin-inline-end: 10px; margin-inline-end: 10px;
} }
.header-title { .header-title {
color: #1a1a1a; color: rgb(var(--v-theme-on-background));
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
} }
.collapse-btn { .collapse-btn {
position: absolute; position: absolute;
color: #8c58f5; color: rgb(var(--v-theme-primary));
inset-block-start: 0; inset-block-start: 0;
inset-inline-end: 0; inset-inline-end: 0;
} }
@@ -245,7 +245,7 @@ onMounted(() => {
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
border-radius: 10px; border-radius: 10px;
background-color: rgba(140, 88, 245, 30%); background-color: rgba(var(--v-theme-primary), 0.3);
} }
} }
@@ -263,18 +263,18 @@ onMounted(() => {
align-items: center; align-items: center;
padding: 10px; padding: 10px;
border-radius: 12px; border-radius: 12px;
background-color: #e4e4e7; background-color: rgb(var(--v-theme-surface-variant));
transition: all 0.2s ease; transition: all 0.2s ease;
&:hover { &:hover {
background-color: #d4d4d8; background-color: rgb(var(--v-theme-surface-variant));
transform: translateY(-2px); transform: translateY(-2px);
} }
} }
.component-avatar { .component-avatar {
flex-shrink: 0; flex-shrink: 0;
background-color: #8c58f5; background-color: rgb(var(--v-theme-primary));
color: white; color: white;
margin-inline-end: 12px; margin-inline-end: 12px;
@@ -291,7 +291,7 @@ onMounted(() => {
.component-name { .component-name {
overflow: hidden; overflow: hidden;
color: #1a1a1a; color: rgb(var(--v-theme-on-background));
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
text-overflow: ellipsis; text-overflow: ellipsis;
@@ -309,21 +309,17 @@ onMounted(() => {
.sidebar-footer { .sidebar-footer {
flex-shrink: 0; flex-shrink: 0;
padding: 12px; padding: 12px;
background-color: #fff; background-color: rgb(var(--v-theme-background));
border-block-start: 1px solid rgba(0, 0, 0, 6%); border-block-start: 1px solid rgba(0, 0, 0, 6%);
.drag-btn { .drag-btn {
background-color: #8c58f5; background-color: rgb(var(--v-theme-primary));
block-size: 44px; block-size: 44px;
color: white; color: white;
font-weight: 500; font-weight: 500;
letter-spacing: normal; letter-spacing: normal;
text-transform: none; text-transform: none;
&:hover {
background-color: color.adjust(#8c58f5, $lightness: -5%);
}
.btn-content { .btn-content {
display: flex; display: flex;
align-items: center; align-items: center;
@@ -344,8 +340,8 @@ onMounted(() => {
} }
.workflow-sidebar-fab { .workflow-sidebar-fab {
background-color: #8c58f5; background-color: rgb(var(--v-theme-primary));
box-shadow: 0 4px 10px rgba(140, 88, 245, 40%); box-shadow: 0 4px 10px rgba(var(--v-theme-primary), 40%);
color: white; color: white;
&:hover { &:hover {