diff --git a/src/components/CommandCard.vue b/src/components/CommandCard.vue
index 0e4d6aa..07c6131 100644
--- a/src/components/CommandCard.vue
+++ b/src/components/CommandCard.vue
@@ -92,26 +92,6 @@ export default {
diff --git a/src/components/composer/CommandComposer.vue b/src/components/composer/CommandComposer.vue
index 779776a..148c36b 100644
--- a/src/components/composer/CommandComposer.vue
+++ b/src/components/composer/CommandComposer.vue
@@ -76,11 +76,7 @@ export default defineComponent({
display: flex;
flex-direction: column;
height: 100%;
- background-color: #f4f4f4;
-}
-
-.body--dark .command-composer {
- background-color: #303132;
+ background-color: var(--utools-bg-color);
}
.composer-body {
diff --git a/src/components/composer/ComposerCard.vue b/src/components/composer/ComposerCard.vue
index e25209f..a0a00c5 100644
--- a/src/components/composer/ComposerCard.vue
+++ b/src/components/composer/ComposerCard.vue
@@ -315,14 +315,6 @@ export default defineComponent({
position: relative;
}
-.composer-card .q-card {
- background-color: rgba(0, 0, 0, 0.02);
-}
-
-.body--dark .composer-card .q-card {
- background-color: rgba(255, 255, 255, 0.05);
-}
-
/* 控制流程组件样式 */
.control-component {
flex: 1;
@@ -340,6 +332,7 @@ export default defineComponent({
.command-item {
transition: all 0.3s ease;
+ background-color: var(--transparent-bg-color);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0, 0, 0, 0.05);
border-radius: inherit;
@@ -353,14 +346,6 @@ export default defineComponent({
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
-.body--dark .composer-card.drag-handle:hover::before {
- background: rgba(255, 255, 255, 0.1);
-}
-
-.body--dark .composer-card.drag-handle:active::before {
- background: rgba(255, 255, 255, 0.15);
-}
-
/* 收起状态样式 */
.composer-card.collapsed {
transform-origin: top;
diff --git a/src/components/composer/ComposerList.vue b/src/components/composer/ComposerList.vue
index c2260ce..7286449 100644
--- a/src/components/composer/ComposerList.vue
+++ b/src/components/composer/ComposerList.vue
@@ -294,7 +294,7 @@ export default defineComponent({
margin: 4px 8px;
padding: 0 8px;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
- background: rgba(0, 0, 0, 0.02);
+ background: var(--transparent-bg-color);
cursor: grab;
font-size: 12px;
min-height: 40px;
@@ -315,8 +315,7 @@ export default defineComponent({
}
.command-item.q-item-type:hover {
- background-color: rgba(0, 0, 0, 0.1);
- transform: translateX(4px);
+ transform: translateX(3px);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
@@ -325,16 +324,6 @@ export default defineComponent({
transform: scale(0.95);
}
-/* 暗色模式适配 */
-.body--dark .command-item.q-item-type {
- border-color: rgba(255, 255, 255, 0.05);
- background: rgba(255, 255, 255, 0.05);
-}
-
-.body--dark .command-item.q-item-type:hover {
- background-color: rgba(255, 255, 255, 0.1);
-}
-
.body--dark .section-header {
border-bottom-color: rgba(255, 255, 255, 0.05);
}
diff --git a/src/components/composer/flow/DropArea.vue b/src/components/composer/flow/DropArea.vue
index ec1eca9..656c8ed 100644
--- a/src/components/composer/flow/DropArea.vue
+++ b/src/components/composer/flow/DropArea.vue
@@ -64,14 +64,7 @@ export default defineComponent({
.drop-area:hover,
.drop-area-dragging {
- border-color: #bdbdbd;
- background-color: #f9f9f9;
-}
-
-.body--dark .drop-area:hover,
-.body--dark .drop-area-dragging {
- border: 2px dashed #676666;
- background-color: #303132;
+ background-color: var(--utools-bg-color);
}
.drop-area-dragging {
diff --git a/src/components/popup/EditorHistory.vue b/src/components/popup/EditorHistory.vue
index 0cc746c..77ca111 100644
--- a/src/components/popup/EditorHistory.vue
+++ b/src/components/popup/EditorHistory.vue
@@ -339,6 +339,7 @@ export default {
height: 100vh;
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);
border-radius: 10px;
+ background-color: var(--utools-bg-color);
}
.history-layout {
@@ -361,7 +362,6 @@ export default {
.header-section {
padding: 16px 16px 8px;
position: relative;
- background: #f4f4f4;
}
.preview-container {
@@ -371,7 +371,6 @@ export default {
align-items: stretch;
justify-content: stretch;
overflow: hidden;
- background: #f4f4f4;
transition: all 0.3s ease;
position: relative;
}
@@ -386,7 +385,6 @@ export default {
.history-list {
flex: 1;
padding: 0;
- background: #f4f4f4;
overflow-y: auto;
overflow-x: hidden;
height: calc(100vh - 64px); /* Subtract header height */
@@ -499,15 +497,6 @@ export default {
opacity: 0.3;
}
-/* 暗色模式适配 */
-.body--dark .history-card,
-.body--dark .history-list-container,
-.body--dark .header-section,
-.body--dark .history-list,
-.body--dark .preview-container {
- background: #303133;
-}
-
.history-btn {
color: #666;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
diff --git a/src/components/quickcommandUI/QuickCommand.vue b/src/components/quickcommandUI/QuickCommand.vue
index c7fd056..18f5021 100644
--- a/src/components/quickcommandUI/QuickCommand.vue
+++ b/src/components/quickcommandUI/QuickCommand.vue
@@ -371,10 +371,6 @@ export default {
diff --git a/src/css/app.css b/src/css/app.css
index 696f982..510b235 100644
--- a/src/css/app.css
+++ b/src/css/app.css
@@ -1,20 +1,25 @@
/* app global css */
:root {
- --utools-bright-bg: #f4f4f4;
- --utools-bright-font-color: #333;
- --utools-dark-bg: #303133;
- --utools-dark-font-color: #fff;
+ --utools-bg-color: #f4f4f4;
+ --utools-font-color: #333;
+ --transparent-bg-color: rgba(0, 0, 0, 0.02);
--q-dark: #464646;
- --q-dark-page: var(--utools-dark-bg);
+ --q-dark-page: #303133;
+}
+
+:root:has(.body--dark) {
+ --utools-bg-color: #303133;
+ --utools-font-color: #fff;
+ --transparent-bg-color: rgba(255, 255, 255, 0.05);
}
.q-card--dark {
- background: var(--utools-dark-bg);
+ background: var(--q-dark-page);
}
body {
- background: var(--utools-bright-bg);
- color: var(--utools-bright-font-color);
+ background: var(--utools-bg-color);
+ color: var(--utools-font-color);
}
/* Monaco Editor 调整行号栏样式 */
@@ -32,7 +37,7 @@ body {
/* Monaco Editor 当前行高亮样式 */
.monaco-editor .current-line {
border: none !important;
- background-color: rgba(0, 0, 0, 0.03);
+ background-color: transparent !important;
}
.monaco-editor .line-numbers {
@@ -47,10 +52,6 @@ body {
color: var(--q-primary) !important;
}
-.body--dark .monaco-editor .current-line {
- background-color: rgba(255, 255, 255, 0.05);
-}
-
.monaco-editor .margin-view-overlays .current-line {
background-color: transparent !important;
}
@@ -188,14 +189,14 @@ body.body--dark.glass-effect-menu .q-card.command {
}
/* 标签栏毛玻璃效果 */
-body.glass-effect-menu .q-tabs {
+body.glass-effect-menu .tag-bar .q-tabs {
background: rgba(255, 255, 255, calc(0.15 + var(--glass-effect-strength) * 0.01)) !important;
backdrop-filter: blur(calc(var(--glass-effect-strength) * 1px)) !important;
-webkit-backdrop-filter: blur(calc(var(--glass-effect-strength) * 1px)) !important;
border-right: 1px solid rgba(255, 255, 255, 0.1);
}
-body.body--dark.glass-effect-menu .q-tabs {
+body.body--dark.glass-effect-menu .tag-bar .q-tabs {
background: rgba(0, 0, 0, calc(0.2 + var(--glass-effect-strength) * 0.02)) !important;
border-right: 1px solid rgba(255, 255, 255, 0.05);
}
@@ -305,3 +306,44 @@ body.body--dark.glass-effect-menu .q-menu {
justify-content: flex-end;
font-size: 12px;
}
+
+/* 左右抖动 */
+@keyframes leftRight {
+ 0% {
+ transform: translateX(-2px);
+ opacity: 0.7;
+ }
+
+ 50% {
+ transform: translateX(2px);
+ opacity: 1;
+ }
+
+ 100% {
+ transform: translateX(-2px);
+ opacity: 0.7;
+ }
+}
+
+/* 上下抖动 */
+@keyframes upDown {
+ 0% {
+ transform: translateY(-1px);
+ opacity: 1;
+ }
+
+ 50% {
+ transform: translateY(1px);
+ opacity: 0.6;
+ }
+
+ 75% {
+ transform: translateY(0.5px);
+ opacity: 0.8;
+ }
+
+ 100% {
+ transform: translateY(-1px);
+ opacity: 1;
+ }
+}
diff --git a/src/css/composer.css b/src/css/composer.css
index 997e72f..cc133eb 100644
--- a/src/css/composer.css
+++ b/src/css/composer.css
@@ -89,12 +89,6 @@
margin: 4px 0px;
}
-/* 暗黑模式下的标签栏背景颜色 */
-.body--dark .command-composer .q-tab,
-.body--dark .command-composer .q-tab-panel {
- background-color: #303133;
-}
-
.body--dark .command-composer .q-tab--inactive {
opacity: 2;
}