update default tool styling

This commit is contained in:
jingrow 2025-11-21 10:30:11 +08:00
parent 51cf09b125
commit 366c654e9e
2 changed files with 43 additions and 12 deletions

View File

@ -29,7 +29,7 @@ function getDefaultTools(): Tool[] {
description: t('Remove background from images using AI technology'),
category: 'Image Processing',
icon: 'photo-edit',
color: '#1fc76f',
color: '#e5e7eb',
type: 'route',
routeName: 'RemoveBackground',
order: 1,
@ -42,7 +42,7 @@ function getDefaultTools(): Tool[] {
// description: t('Tool description'),
// category: 'Category',
// icon: 'icon-name',
// color: '#1fc76f',
// color: '#e5e7eb',
// type: 'route',
// routeName: 'RouteName',
// order: 2,

View File

@ -37,10 +37,16 @@
@dragend="handleDragEnd"
>
<div class="tool-card-content" @click="handleOpenTool(tool)">
<div class="tool-icon" :style="{ backgroundColor: tool.color || '#1fc76f' }">
<DynamicIcon :name="tool.icon || 'tool'" :size="32" color="white" />
<div
class="tool-icon"
:class="{ 'default-tool-icon': tool.isDefault }"
:style="tool.isDefault
? { borderColor: tool.color || '#e5e7eb' }
: { backgroundColor: tool.color || '#1fc76f' }"
>
<DynamicIcon :name="tool.icon || 'tool'" :size="32" :color="tool.isDefault ? '#64748b' : 'white'" />
</div>
<div class="tool-name">{{ tool.name }}</div>
<div class="tool-name" :class="{ 'default-tool-name': tool.isDefault }">{{ tool.name }}</div>
</div>
<n-dropdown
trigger="click"
@ -73,8 +79,14 @@
class="hidden-tool-item"
@click="handleShowDefaultTool(tool.id)"
>
<div class="hidden-tool-icon" :style="{ backgroundColor: tool.color || '#1fc76f' }">
<DynamicIcon :name="tool.icon || 'tool'" :size="24" color="white" />
<div
class="hidden-tool-icon"
:class="{ 'default-tool-icon': tool.isDefault }"
:style="tool.isDefault
? { borderColor: tool.color || '#e5e7eb' }
: { backgroundColor: tool.color || '#1fc76f' }"
>
<DynamicIcon :name="tool.icon || 'tool'" :size="24" :color="tool.isDefault ? '#64748b' : 'white'" />
</div>
<div class="hidden-tool-name">{{ tool.name }}</div>
<button class="show-tool-btn" @click.stop="handleShowDefaultTool(tool.id)">
@ -722,12 +734,11 @@ function handleMenuSelect(key: string, tool: Tool) {
background: white;
border-radius: 12px;
padding: 20px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: grab;
position: relative;
overflow: hidden;
border: 1px solid #e5e7eb;
border: none;
aspect-ratio: 1;
display: flex;
flex-direction: column;
@ -736,18 +747,15 @@ function handleMenuSelect(key: string, tool: Tool) {
.tool-card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
border-color: #1fc76f;
}
.tool-card.dragging {
opacity: 0.5;
transform: scale(0.95);
cursor: grabbing;
border-color: #1fc76f;
}
.tool-card.drag-over {
border-color: #1fc76f;
box-shadow: 0 0 0 2px rgba(31, 199, 111, 0.1);
}
@ -772,6 +780,12 @@ function handleMenuSelect(key: string, tool: Tool) {
transition: transform 0.2s;
}
.tool-icon.default-tool-icon {
background-color: transparent;
border: 1.5px solid;
box-shadow: none;
}
.tool-card:hover .tool-icon {
transform: scale(1.05);
}
@ -785,6 +799,10 @@ function handleMenuSelect(key: string, tool: Tool) {
word-break: break-word;
}
.tool-name.default-tool-name {
color: #64748b;
}
.tool-menu-trigger {
position: absolute;
top: 8px;
@ -800,6 +818,13 @@ function handleMenuSelect(key: string, tool: Tool) {
transition: all 0.2s;
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(4px);
opacity: 0;
pointer-events: none;
}
.tool-card:hover .tool-menu-trigger {
opacity: 1;
pointer-events: auto;
}
.tool-menu-trigger:hover {
@ -885,6 +910,12 @@ function handleMenuSelect(key: string, tool: Tool) {
flex-shrink: 0;
}
.hidden-tool-icon.default-tool-icon {
background-color: transparent;
border: 1.5px solid;
box-shadow: none;
}
.hidden-tool-name {
font-size: 14px;
font-weight: 500;