| import type { |
| AnimationSettings, |
| CaptionLayout, |
| CaptionStyle, |
| StylePreset, |
| } from "@/types"; |
|
|
| |
| export const DEFAULT_STYLE: CaptionStyle = { |
| fontFamily: "Anton", |
| fontSize: 58, |
| |
| fillColor: "#FFFFFF", |
| strokeColor: "#0A0A0A", |
| strokeWidth: 3, |
| |
| highlightColor: undefined, |
| backdrop: "rgba(12,12,14,0.66)", |
| shadow: { |
| color: "rgba(0,0,0,0.45)", |
| blur: 12, |
| offsetX: 0, |
| offsetY: 3, |
| }, |
| uppercase: true, |
| letterSpacing: 0.5, |
| }; |
|
|
| export const DEFAULT_LAYOUT: CaptionLayout = { |
| position: "bottom", |
| |
| yOffset: -150, |
| maxWidthPercent: 0.86, |
| maxLines: 2, |
| }; |
|
|
| export const DEFAULT_ANIMATION: AnimationSettings = { |
| speed: 1, |
| style: "bounce", |
| }; |
|
|
| export const STYLE_PRESETS: StylePreset[] = [ |
| { |
| id: "viral-yellow", |
| name: "Viral Yellow", |
| style: { ...DEFAULT_STYLE, fillColor: "#FFD700", strokeColor: "#000000" }, |
| layout: DEFAULT_LAYOUT, |
| animation: DEFAULT_ANIMATION, |
| }, |
| { |
| id: "minimal-white", |
| name: "Minimal White", |
| style: { |
| ...DEFAULT_STYLE, |
| fontFamily: "Oswald", |
| fillColor: "#FFFFFF", |
| strokeColor: "#000000", |
| strokeWidth: 2, |
| highlightColor: undefined, |
| shadow: { color: "rgba(0,0,0,0.3)", blur: 4, offsetX: 0, offsetY: 2 }, |
| }, |
| layout: { ...DEFAULT_LAYOUT, position: "center" }, |
| animation: { speed: 1, style: "fade" }, |
| }, |
| { |
| id: "neon-pop", |
| name: "Neon Pop", |
| style: { |
| ...DEFAULT_STYLE, |
| fontFamily: "Anton", |
| fillColor: "#FF006E", |
| strokeColor: "#FFFFFF", |
| strokeWidth: 3, |
| highlightColor: "#FFBE0B", |
| }, |
| layout: { ...DEFAULT_LAYOUT, position: "center", yOffset: -20 }, |
| animation: { speed: 1.2, style: "pop" }, |
| }, |
| ]; |
|
|
| export const FONT_OPTIONS = ["Anton", "Oswald", "Impact", "Arial Black"]; |
|
|