diff --git a/apps/web/src/components/editor/media-panel/views/settings.tsx b/apps/web/src/components/editor/media-panel/views/settings.tsx
index 54387dd7..cdfa36f2 100644
--- a/apps/web/src/components/editor/media-panel/views/settings.tsx
+++ b/apps/web/src/components/editor/media-panel/views/settings.tsx
@@ -14,6 +14,7 @@ import {
PropertyItem,
PropertyItemLabel,
PropertyItemValue,
+ PropertyGroup,
} from "../../properties-panel/property-item";
import { FPS_PRESETS } from "@/constants/timeline-constants";
import { useProjectStore } from "@/stores/project-store";
@@ -55,7 +56,7 @@ function ProjectSettingsTabs() {
function ProjectInfoView() {
const { activeProject, updateProjectFps } = useProjectStore();
- const { canvasSize, canvasPresets, setCanvasSize } = useEditorStore();
+ const { canvasPresets, setCanvasSize } = useEditorStore();
const { getDisplayName } = useAspectRatio();
const handleAspectRatioChange = (value: string) => {
@@ -147,7 +148,7 @@ const BlurPreview = memo(
fill
className="object-cover"
style={{ filter: `blur(${blur.value}px)` }}
- priority
+ loading="eager"
/>
@@ -223,24 +224,19 @@ function BackgroundView() {
);
return (
-
-
- Blur
-
- {blurPreviews}
-
-
-
- Color
-
-
-
- {colorPreviews}
+
+
+ {blurPreviews}
+
+
+
+
+
-
-
+ {colorPreviews}
+
+
);
}
diff --git a/apps/web/src/components/editor/properties-panel/property-item.tsx b/apps/web/src/components/editor/properties-panel/property-item.tsx
index 86a8d378..dc6b6d74 100644
--- a/apps/web/src/components/editor/properties-panel/property-item.tsx
+++ b/apps/web/src/components/editor/properties-panel/property-item.tsx
@@ -1,4 +1,6 @@
import { cn } from "@/lib/utils";
+import { ChevronDown } from "lucide-react";
+import { useState } from "react";
interface PropertyItemProps {
direction?: "row" | "column";
@@ -49,3 +51,34 @@ export function PropertyItemValue({
}) {
return
{children}
;
}
+
+interface PropertyGroupProps {
+ title: string;
+ children: React.ReactNode;
+ defaultExpanded?: boolean;
+ className?: string;
+}
+
+export function PropertyGroup({
+ title,
+ children,
+ defaultExpanded = true,
+ className,
+}: PropertyGroupProps) {
+ const [isExpanded, setIsExpanded] = useState(defaultExpanded);
+
+ return (
+
+ setIsExpanded(!isExpanded)}
+ >
+
+ {title}
+
+
+
+ {isExpanded && {children}}
+
+ );
+}