From daa949e9e335b1e779dfb3b6efbec3fb2a795221 Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Sat, 28 Feb 2026 20:12:37 +0300 Subject: [PATCH] Add Effects section to properties panel Support adding, removing, and editing drop shadows, inner shadows, layer blurs, background blurs, and foreground blurs. Each effect row has visibility toggle, type dropdown, and remove button. Expanded view shows offset, blur, spread, and color controls for shadows, or just blur radius for blur effects. --- components.d.ts | 1 + src/components/PropertiesPanel.vue | 7 +- src/components/properties/EffectsSection.vue | 194 +++++++++++++++++++ 3 files changed, 197 insertions(+), 5 deletions(-) create mode 100644 src/components/properties/EffectsSection.vue diff --git a/components.d.ts b/components.d.ts index 460f0cd77..e174cd2a5 100644 --- a/components.d.ts +++ b/components.d.ts @@ -15,6 +15,7 @@ declare module 'vue' { CanvasContextMenu: typeof import('./src/components/CanvasContextMenu.vue')['default'] ColorPicker: typeof import('./src/components/ColorPicker.vue')['default'] EditorCanvas: typeof import('./src/components/EditorCanvas.vue')['default'] + EffectsSection: typeof import('./src/components/properties/EffectsSection.vue')['default'] FillPicker: typeof import('./src/components/FillPicker.vue')['default'] FillSection: typeof import('./src/components/properties/FillSection.vue')['default'] IconLucideALargeSmall: typeof import('~icons/lucide/a-large-small')['default'] diff --git a/src/components/PropertiesPanel.vue b/src/components/PropertiesPanel.vue index 1f439bef1..e53017c16 100644 --- a/src/components/PropertiesPanel.vue +++ b/src/components/PropertiesPanel.vue @@ -9,6 +9,7 @@ import LayoutSection from './properties/LayoutSection.vue' import PageSection from './properties/PageSection.vue' import PositionSection from './properties/PositionSection.vue' import StrokeSection from './properties/StrokeSection.vue' +import EffectsSection from './properties/EffectsSection.vue' import TypographySection from './properties/TypographySection.vue' const store = useEditorStore() @@ -74,11 +75,7 @@ const isComponentType = computed(() => { - - -
- -
+
diff --git a/src/components/properties/EffectsSection.vue b/src/components/properties/EffectsSection.vue new file mode 100644 index 000000000..c7e87b98a --- /dev/null +++ b/src/components/properties/EffectsSection.vue @@ -0,0 +1,194 @@ + + +