feat: font size to text panel

This commit is contained in:
Maze Winther
2025-07-10 21:37:44 +02:00
parent 0acead5bb1
commit eadd6940e4
2 changed files with 32 additions and 9 deletions

View File

@ -10,6 +10,8 @@ import {
import { FONT_OPTIONS, FontFamily } from "@/constants/font-constants";
import { TextElement } from "@/types/timeline";
import { useTimelineStore } from "@/stores/timeline-store";
import { Slider } from "@/components/ui/slider";
import { Input } from "@/components/ui/input";
export function TextProperties({
element,
@ -50,6 +52,34 @@ export function TextProperties({
</SelectContent>
</Select>
</div>
<div className="flex flex-col gap-2">
<Label className="text-xs">Font size</Label>
<div className="flex items-center gap-2">
<Slider
defaultValue={[element.fontSize]}
min={8}
max={200}
step={1}
onValueChange={([value]) =>
updateTextElement(trackId, element.id, { fontSize: value })
}
className="w-full"
/>
<Input
type="number"
value={element.fontSize}
onChange={(e) =>
updateTextElement(trackId, element.id, {
fontSize: parseInt(e.target.value),
})
}
className="w-12 !text-xs h-7 rounded-sm text-center
[appearance:textfield]
[&::-webkit-outer-spin-button]:appearance-none
[&::-webkit-inner-spin-button]:appearance-none"
/>
</div>
</div>
</div>
);
}

View File

@ -11,14 +11,7 @@ interface InputProps extends React.ComponentProps<"input"> {
const Input = React.forwardRef<HTMLInputElement, InputProps>(
(
{
className,
type,
showPassword,
onShowPasswordChange,
value,
...props
},
{ className, type, showPassword, onShowPasswordChange, value, ...props },
ref
) => {
const isPassword = type === "password";
@ -26,7 +19,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
const inputType = isPassword && showPassword ? "text" : type;
return (
<div className="relative w-full">
<div className={showPassword ? "relative w-full" : ""}>
<input
type={inputType}
className={cn(