diff --git a/apps/web/src/index.css b/apps/web/src/index.css index 349209f27..054ded766 100644 --- a/apps/web/src/index.css +++ b/apps/web/src/index.css @@ -25,15 +25,6 @@ body { background-color: var(--bg-secondary); } -/* ── 自定义字体 ── */ -@font-face { - font-family: "华康俪金黑"; - src: url("/fonts/DFLiJinHei-W8.ttf") format("truetype"); - font-weight: 700; - font-style: normal; - font-display: swap; -} - /* 滚动条 - V21 样式 */ ::-webkit-scrollbar { width: 8px; diff --git a/apps/web/src/pages/editing-planner/components/PreviewPlayer.tsx b/apps/web/src/pages/editing-planner/components/PreviewPlayer.tsx index 8bf4ed57f..b56abe469 100644 --- a/apps/web/src/pages/editing-planner/components/PreviewPlayer.tsx +++ b/apps/web/src/pages/editing-planner/components/PreviewPlayer.tsx @@ -5,6 +5,7 @@ import React from "react" import type { ClipData, ClipType } from "../types" import type { TitleConfig } from "@/api/template-editor" +import { getFontFamily } from "@/pages/generate/constants" interface SubtitleSettings { enabled: boolean @@ -80,7 +81,7 @@ const PreviewPlayer: React.FC = ({ className="ep-preview-title" style={{ fontSize: `${Math.min(titleConfig.font_size, 20)}px`, - fontFamily: titleConfig.font_preset, + fontFamily: getFontFamily(titleConfig.font_preset), fontWeight: "bold", fontStyle: "normal", textShadow: "2px 2px 4px rgba(0,0,0,0.5)", @@ -106,7 +107,7 @@ const PreviewPlayer: React.FC = ({ className="ep-preview-subtitle" style={{ fontSize: `${Math.min(subtitleSettings.size, 14)}px`, - fontFamily: subtitleSettings.font, + fontFamily: getFontFamily(subtitleSettings.font), top: subtitleSettings.position === "top" ? "8px" diff --git a/apps/web/src/pages/editing-planner/constants/clipProperties.ts b/apps/web/src/pages/editing-planner/constants/clipProperties.ts index fed8b70be..e4d6d9927 100644 --- a/apps/web/src/pages/editing-planner/constants/clipProperties.ts +++ b/apps/web/src/pages/editing-planner/constants/clipProperties.ts @@ -9,15 +9,8 @@ export const POSITION_OPTIONS = [ { value: "bottom", label: "底部" }, ] -export const FONT_OPTIONS = [ - "思源黑体", - "思源宋体", - "苹方", - "PingFang", - "微软雅黑", - "楷体", - "华康俪金黑", -] +// FONT_OPTIONS 统一从 generate/constants 导入,避免多处维护遗漏 +export { FONT_OPTIONS } from "@/pages/generate/constants" export const ANIMATION_OPTIONS = [ { value: "none", label: "无" }, diff --git a/apps/web/src/pages/editing-planner/constants/subtitleStyle.ts b/apps/web/src/pages/editing-planner/constants/subtitleStyle.ts index e2392e1f8..65aca8fcc 100644 --- a/apps/web/src/pages/editing-planner/constants/subtitleStyle.ts +++ b/apps/web/src/pages/editing-planner/constants/subtitleStyle.ts @@ -7,15 +7,8 @@ export const POSITION_OPTIONS = [ { value: "bottom", label: "底部" }, ] -export const FONT_OPTIONS = [ - "思源黑体", - "思源宋体", - "苹方", - "PingFang", - "微软雅黑", - "楷体", - "华康俪金黑", -] +// FONT_OPTIONS 统一从 generate/constants 导入 +export { FONT_OPTIONS } from "@/pages/generate/constants" export const ANIMATION_OPTIONS = [ { value: "none", label: "无" }, diff --git a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx index 5a6be9574..c0ca9a43a 100644 --- a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx +++ b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx @@ -17,6 +17,8 @@ import type { EditPlanClip } from "@/api/template-editor" import { useSegmentScheduler, type PlaybackSegment } from "../hooks/useSegmentScheduler" import { usePreviewAudio } from "../hooks/usePreviewAudio" import { PreviewControls } from "./PreviewControls" +import { getFontFamily } from "../constants" + interface FrontendPreviewPlayerProps { assets: AssetItem[] videoRatio: string @@ -555,7 +557,7 @@ const FrontendPreviewPlayer: React.FC = ({ = { @@ -68,7 +60,6 @@ export const FONT_FAMILY_MAP: Record = { PingFang: '"PingFang SC", -apple-system, "Helvetica Neue", sans-serif', 微软雅黑: '"Microsoft YaHei", "PingFang SC", sans-serif', 楷体: '"KaiTi", "STKaiti", "DFKai-SB", serif', - 华康俪金黑: '"华康俪金黑", "DFLiJinHei-W8", "Source Han Sans SC", "Microsoft YaHei", sans-serif', } export function getFontFamily(font: string): string {