Phase 3: Sidebar & Properties Panel

Implemented full editor UI with three-column layout:
- Sidebar with 4 tabs (Upload, Stickers, Text, Templates)
- UploadTab with drag-and-drop file upload, wires to POST /api/upload
- StickersTab with 96 emoji stickers across 6 categories
- TextTab with font picker (20 Google Fonts), size slider, color picker
- TemplatesTab placeholder for future template system
- LayersPanel showing all elements with select/delete
- PropertiesPanel with position, size, rotation controls

Also added:
- Constants for fonts and stickers
- Enhanced CSS with editor-layout, sidebar, properties-panel classes
- Updated App.jsx to integrate all components
This commit is contained in:
Khalid A
2026-04-21 01:27:59 -05:00
parent e67017b259
commit fd11a36d93
13 changed files with 1375 additions and 36 deletions

View File

@@ -56,11 +56,54 @@ body {
#root {
min-height: 100vh;
display: flex;
flex-direction: column;
}
/* Three-column layout */
.editor-layout {
display: flex;
flex: 1;
overflow: hidden;
}
.sidebar {
width: 320px;
background: var(--bg-secondary);
border-right: 1px solid var(--border);
display: flex;
flex-direction: column;
overflow: hidden;
}
.canvas-area {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: var(--bg-tertiary);
overflow: auto;
padding: 2rem;
}
.properties-panel {
width: 280px;
background: var(--bg-secondary);
border-left: 1px solid var(--border);
display: flex;
flex-direction: column;
overflow: hidden;
}
button {
font-family: inherit;
cursor: pointer;
outline: none;
}
button:focus-visible {
box-shadow: 0 0 0 2px var(--bg-primary), 0 0 0 4px var(--accent);
}
input, textarea, select {