diff --git a/src/components/selected-sounds-display/selected-sounds-display.tsx b/src/components/selected-sounds-display/selected-sounds-display.tsx
index 7515ccc..433ac94 100644
--- a/src/components/selected-sounds-display/selected-sounds-display.tsx
+++ b/src/components/selected-sounds-display/selected-sounds-display.tsx
@@ -198,6 +198,7 @@ export function SelectedSoundsDisplay() {
});
};
+
// 播放保存的音乐
const playSavedMusic = async (music: SavedMusic) => {
// 清除当前所有声音选择
@@ -485,16 +486,7 @@ export function SelectedSoundsDisplay() {
>
{music.name}
-
-
- {/* 展开时显示收录的声音名字 */}
- {expandedMusic.has(music.id) && (
+ {/* 默认显示收录的声音名字 */}
{music.sounds && music.sounds.length > 0 ? (
music.sounds.map((soundId: string, index: number) => {
@@ -513,7 +505,7 @@ export function SelectedSoundsDisplay() {
暂无声音
)}
- )}
+
+
)}
diff --git a/src/components/slider/slider.module.css b/src/components/slider/slider.module.css
index c336081..9db2653 100644
--- a/src/components/slider/slider.module.css
+++ b/src/components/slider/slider.module.css
@@ -11,14 +11,14 @@
position: relative;
flex-grow: 1;
height: 4px;
- background: var(--color-neutral-200);
+ background: var(--color-control-bg);
border-radius: 9999px;
}
.sliderRange {
position: absolute;
height: 100%;
- background: var(--color-neutral-800);
+ background: var(--color-control-progress);
border-radius: 9999px;
}
@@ -27,18 +27,18 @@
width: 16px;
height: 16px;
cursor: pointer;
- background: var(--bg-tertiary);
- border: 1px solid var(--color-border);
+ background: var(--color-control-progress);
+ border: 2px solid var(--color-control-progress);
border-radius: 50%;
- box-shadow: 0 0 3px var(--color-neutral-50);
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
}
.sliderThumb:hover {
- background: var(--bg-secondary);
- border-color: var(--color-foreground);
+ background: var(--color-control-bg-hover);
+ border-color: var(--color-control-bg-active);
}
.sliderThumb:focus {
outline: none;
- box-shadow: 0 0 0 3px var(--color-neutral-400);
+ box-shadow: 0 0 0 3px var(--color-foreground-subtler);
}
diff --git a/src/components/sounds/sound/range/range.module.css b/src/components/sounds/sound/range/range.module.css
index 444bfc8..b6a8186 100644
--- a/src/components/sounds/sound/range/range.module.css
+++ b/src/components/sounds/sound/range/range.module.css
@@ -32,83 +32,14 @@
opacity: 1;
}
-/* 当进度条禁用时,容器内的图标也要相应调整 */
-.volumeContainer:has(.range:disabled) .volumeIcon,
-.speedContainer:has(.range:disabled) .speedIcon,
-.rateContainer:has(.range:disabled) .rateIcon {
+/* 当滑块禁用时,容器内的图标也要相应调整 */
+.volumeContainer:has(.slider:disabled) .volumeIcon,
+.speedContainer:has(.slider:disabled) .speedIcon,
+.rateContainer:has(.slider:disabled) .rateIcon {
opacity: 0.4;
}
-.range {
+.slider {
width: 100%;
flex: 1;
-
- /********** Range Input Styles **********/
-
- /* Range Reset */
- appearance: none;
- cursor: pointer;
- background: transparent;
-
- /* Removes default focus */
- &:focus {
- outline: none;
- }
-
- &:disabled {
- pointer-events: none;
- cursor: default;
- opacity: 0.5;
- }
-
- /***** Chrome, Safari, Opera and Edge Chromium styles *****/
-
- &::-webkit-slider-runnable-track {
- height: 0.5rem;
- background-color: var(--bg-secondary);
- border-radius: 0.5rem;
- }
-
- &::-webkit-slider-thumb {
- width: 14px;
- height: 14px;
- margin-top: -3px;
- appearance: none;
- background-color: var(--color-neutral-700);
- border: 1px solid var(--color-border);
- border-radius: 50%;
- box-shadow: 0 0 2px var(--color-neutral-400);
- }
-
- &:not(:disabled):focus::-webkit-slider-thumb {
- border: 1px solid var(--color-foreground);
- outline: 3px solid var(--color-foreground);
- outline-offset: 0.125rem;
- }
-
- /******** Firefox styles ********/
-
- &::-moz-range-track {
- height: 0.5rem;
- background-color: var(--bg-secondary);
- border-radius: 0.5rem;
- }
-
- &::-moz-range-thumb {
- width: 14px;
- height: 14px;
- margin-top: -3px;
- background-color: var(--color-neutral-700);
- border: none;
- border: 1px solid var(--color-border);
- border-radius: 0;
- border-radius: 50%;
- box-shadow: 0 0 2px var(--color-neutral-400);
- }
-
- &:not(:disabled):focus::-moz-range-thumb {
- border: 1px solid var(--color-foreground);
- outline: 3px solid var(--color-foreground);
- outline-offset: 0.125rem;
- }
}
diff --git a/src/components/sounds/sound/range/range.tsx b/src/components/sounds/sound/range/range.tsx
index 9dbd161..460b490 100644
--- a/src/components/sounds/sound/range/range.tsx
+++ b/src/components/sounds/sound/range/range.tsx
@@ -1,6 +1,7 @@
import { FaVolumeUp, FaTachometerAlt, FaMusic } from 'react-icons/fa/index';
import { useSoundStore } from '@/stores/sound';
import { useTranslation } from '@/hooks/useTranslation';
+import { Slider } from '@/components/slider';
import styles from './range.module.css';
@@ -24,55 +25,38 @@ export function Range({ id, label }: RangeProps) {
diff --git a/src/components/sounds/sound/sound.module.css b/src/components/sounds/sound/sound.module.css
index dad7489..366de20 100644
--- a/src/components/sounds/sound/sound.module.css
+++ b/src/components/sounds/sound/sound.module.css
@@ -60,7 +60,7 @@
width: 100%;
height: 100%;
content: '';
- background-color: var(--bg-tertiary);
+ background-color: var(--color-control-bg);
border-radius: 50%;
}
diff --git a/src/components/sounds/sounds.module.css b/src/components/sounds/sounds.module.css
index 5639afa..b9835ad 100644
--- a/src/components/sounds/sounds.module.css
+++ b/src/components/sounds/sounds.module.css
@@ -113,8 +113,8 @@
.musicContent {
display: flex;
- align-items: center;
- gap: 8px;
+ align-items: flex-start;
+ gap: 12px;
}
.playButton {
@@ -165,7 +165,22 @@
display: flex;
align-items: center;
justify-content: space-between;
- gap: 8px;
+ gap: 12px;
+ flex-wrap: wrap;
+}
+
+/* 声音名字显示 */
+.soundNames {
+ font-size: 12px;
+ color: var(--color-foreground-subtle);
+ line-height: 1.4;
+ display: flex;
+ flex-wrap: wrap;
+ gap: 2px;
+ align-items: center;
+ padding: 1px 4px;
+ flex: 1;
+ justify-content: center;
}
/* 展开按钮 */
@@ -179,8 +194,9 @@
cursor: pointer;
transition: all 0.2s ease;
flex-shrink: 0;
- height: 20px;
+ height: 24px;
line-height: 1;
+ margin-left: 4px;
}
.expandButton:hover {
@@ -189,16 +205,16 @@
color: var(--color-foreground);
}
-/* 声音名字显示 */
-.soundNames {
- font-size: 12px;
- color: var(--color-foreground-subtle);
- line-height: 1.3;
- word-break: break-all;
-}
-
.soundName {
color: var(--color-foreground-subtle);
+ background: rgba(var(--color-muted-rgb), 0.3);
+ padding: 1px 4px;
+ border-radius: 2px;
+ margin-right: 2px;
+ display: inline-block;
+ margin-bottom: 2px;
+ font-size: 11px;
+ border: 1px solid rgba(var(--color-border-rgb), 0.3);
}
.noSounds {
@@ -211,11 +227,13 @@
color: white;
border: none;
border-radius: 4px;
- padding: 6px 8px;
+ padding: 4px 6px;
cursor: pointer;
- font-size: 12px;
+ font-size: 11px;
transition: all 0.2s ease;
flex-shrink: 0;
+ height: 24px;
+ margin-top: 2px;
}
.deleteButton:hover {
diff --git a/src/styles/base/base.css b/src/styles/base/base.css
index c7c3a74..e9432cb 100644
--- a/src/styles/base/base.css
+++ b/src/styles/base/base.css
@@ -26,3 +26,40 @@ body {
color: var(--color-foreground);
background-color: var(--color-neutral-300);
}
+
+/* 滚动条样式 - 明亮模式下使用更浅的颜色 */
+[data-theme="light"] ::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+
+[data-theme="light"] ::-webkit-scrollbar-track {
+ background: #f3f4f6;
+ border-radius: 4px;
+}
+
+[data-theme="light"] ::-webkit-scrollbar-thumb {
+ background: #d1d5db;
+ border-radius: 4px;
+ border: 1px solid #e5e7eb;
+}
+
+[data-theme="light"] ::-webkit-scrollbar-thumb:hover {
+ background: #9ca3af;
+ border-color: #d1d5db;
+}
+
+[data-theme="light"] ::-webkit-scrollbar-thumb:active {
+ background: #6b7280;
+ border-color: #9ca3af;
+}
+
+/* Firefox 滚动条样式 - 明亮模式 */
+[data-theme="light"] * {
+ scrollbar-width: thin;
+ scrollbar-color: #d1d5db #f3f4f6;
+}
+
+[data-theme="light"] *::-webkit-scrollbar-thumb {
+ background-color: #d1d5db;
+}
diff --git a/src/styles/variables/color.css b/src/styles/variables/color.css
index 12d6ab8..8be29e7 100644
--- a/src/styles/variables/color.css
+++ b/src/styles/variables/color.css
@@ -15,4 +15,12 @@
--color-foreground: var(--color-neutral-950);
--color-foreground-subtle: var(--color-neutral-600);
--color-foreground-subtler: var(--color-neutral-500);
+
+ /* 统一控件背景色 - 使用与声音图标一致的配色方案 */
+ --color-control-bg: var(--bg-tertiary);
+ --color-control-bg-hover: var(--bg-quaternary);
+ --color-control-bg-active: var(--bg-secondary);
+
+ /* 拖动条已选中部分颜色 - 只比背景色深一点点 */
+ --color-control-progress: var(--color-neutral-800);
}