diff --git a/src/assets/locales/en.json b/src/assets/locales/en.json index a25883d9..55caa17d 100644 --- a/src/assets/locales/en.json +++ b/src/assets/locales/en.json @@ -770,7 +770,15 @@ "textBoldLabel": "Bold text", "verticalPositionLabel": "Vertical position", "default": "Default", - "low": "Low" + "low": "Low", + "textStyle": { + "title": "Text style", + "default": "Default", + "raised": "Raised", + "depressed": "Depressed", + "uniform": "Uniform", + "dropShadow": "Drop Shadow" + } }, "unsaved": "You have unsaved changes... ฅ^•ﻌ•^ฅ" }, diff --git a/src/components/player/atoms/settings/CaptionSettingsView.tsx b/src/components/player/atoms/settings/CaptionSettingsView.tsx index ab4b5d05..45227e6f 100644 --- a/src/components/player/atoms/settings/CaptionSettingsView.tsx +++ b/src/components/player/atoms/settings/CaptionSettingsView.tsx @@ -4,6 +4,7 @@ import { useTranslation } from "react-i18next"; import { Button } from "@/components/buttons/Button"; import { Toggle } from "@/components/buttons/Toggle"; +import { Dropdown } from "@/components/form/Dropdown"; import { Icon, Icons } from "@/components/Icon"; import { Menu } from "@/components/player/internals/ContextMenu"; import { useOverlayRouter } from "@/hooks/useOverlayRouter"; @@ -249,6 +250,7 @@ export function CaptionSettingsView({ size: 1, backgroundBlur: 0.5, bold: false, + fontStyle: "none", }); }; @@ -283,19 +285,6 @@ export function CaptionSettingsView({ /> -
- - {t("settings.subtitles.textBoldLabel")} - -
- - handleStylingChange({ ...styling, bold: !styling.bold }) - } - /> -
-
handleStylingChange({ ...styling, size: v / 100 })} value={styling.size * 100} /> +
+ + {t("settings.subtitles.textStyle.title") || "Font Style"} + +
+ + handleStylingChange({ + ...styling, + fontStyle: item.id, + }) + } + /> +
+
+
+ + {t("settings.subtitles.textBoldLabel")} + +
+ + handleStylingChange({ ...styling, bold: !styling.bold }) + } + /> +
+
+
+ + {t("settings.subtitles.colorLabel")} + +
+ {colors.map((color) => ( + handleStylingChange({ ...styling, color })} + /> + ))} +
+ { + const color = e.target.value; + handleStylingChange({ ...styling, color }); + }} + className="absolute opacity-0 cursor-pointer w-10 h-10" + /> +
+ +
+
+
+
{t("settings.subtitles.verticalPositionLabel")} @@ -366,36 +440,6 @@ export function CaptionSettingsView({
-
- - {t("settings.subtitles.colorLabel")} - -
- {colors.map((color) => ( - handleStylingChange({ ...styling, color })} - /> - ))} - {/* Add Color Picker */} -
- { - const color = e.target.value; - handleStylingChange({ ...styling, color }); - }} - className="absolute opacity-0 cursor-pointer w-10 h-10" - /> -
- -
-
-
-
-
- - {t("settings.subtitles.textBoldLabel")} - -
- - handleStylingChange({ - ...props.styling, - bold: !props.styling.bold, - }) - } - /> -
-
-
- - {t("settings.subtitles.colorLabel")} - -
- {colors.map((v) => ( - - handleStylingChange({ - ...props.styling, - color: v, - }) - } - color={v} - active={props.styling.color === v} - key={v} - /> - ))} - {/* Add Color Picker */} -
- { - const color = e.target.value; - handleStylingChange({ ...props.styling, color }); - subtitleStore.updateStyling({ - ...props.styling, - color, - }); - }} - className="absolute opacity-0 cursor-pointer w-8 h-8" - /> -
- -
-
-
-