|
185 | 185 | } |
186 | 186 | } |
187 | 187 |
|
| 188 | + // ---- Animated dropzone (drag-over overlay) ---- |
| 189 | + // |
| 190 | + // Replaces the default static cloud icon with a marching-dashed-border |
| 191 | + // overlay + pulsing icon + title + hint. Triggered by the renderer's |
| 192 | + // existing `dragState.showDragZone` state — no JS change. |
| 193 | + .o_dms_dropzone { |
| 194 | + display: flex; |
| 195 | + flex-direction: column; |
| 196 | + align-items: center; |
| 197 | + justify-content: center; |
| 198 | + gap: 1rem; |
| 199 | + background: |
| 200 | + linear-gradient(rgba(113, 75, 103, 0.06), rgba(113, 75, 103, 0.1)), |
| 201 | + repeating-linear-gradient( |
| 202 | + 45deg, |
| 203 | + transparent, |
| 204 | + transparent 8px, |
| 205 | + rgba(113, 75, 103, 0.06) 8px, |
| 206 | + rgba(113, 75, 103, 0.06) 16px |
| 207 | + ); |
| 208 | + border-radius: 8px; |
| 209 | + outline: 3px dashed var(--bs-primary, #714b67); |
| 210 | + outline-offset: -8px; |
| 211 | + animation: o_dms_dropzone_march 1s linear infinite; |
| 212 | + z-index: 10; |
| 213 | + |
| 214 | + &__icon { |
| 215 | + width: 96px; |
| 216 | + height: 96px; |
| 217 | + border-radius: 50%; |
| 218 | + background: rgba(113, 75, 103, 0.12); |
| 219 | + display: flex; |
| 220 | + align-items: center; |
| 221 | + justify-content: center; |
| 222 | + animation: o_dms_dropzone_pulse 1.5s ease-in-out infinite; |
| 223 | + |
| 224 | + i.fa { |
| 225 | + font-size: 3rem; |
| 226 | + color: var(--bs-primary, #714b67); |
| 227 | + } |
| 228 | + } |
| 229 | + |
| 230 | + &__title { |
| 231 | + font-size: 1.2rem; |
| 232 | + font-weight: 600; |
| 233 | + color: var(--bs-primary, #714b67); |
| 234 | + } |
| 235 | + |
| 236 | + &__hint { |
| 237 | + font-size: 0.85rem; |
| 238 | + color: var(--bs-secondary-color, #6c757d); |
| 239 | + } |
| 240 | + } |
| 241 | + |
188 | 242 | // ---- Per-extension accent palette ---- |
189 | 243 | // |
190 | 244 | // The card derives `data-ext` from `record.name` at render time (see the |
|
252 | 306 | --dms-accent: #ae3ec9; |
253 | 307 | } |
254 | 308 | } |
| 309 | + |
| 310 | +@keyframes o_dms_dropzone_march { |
| 311 | + from { |
| 312 | + outline-offset: -8px; |
| 313 | + } |
| 314 | + to { |
| 315 | + outline-offset: -16px; |
| 316 | + } |
| 317 | +} |
| 318 | + |
| 319 | +@keyframes o_dms_dropzone_pulse { |
| 320 | + 0%, |
| 321 | + 100% { |
| 322 | + transform: scale(1); |
| 323 | + } |
| 324 | + 50% { |
| 325 | + transform: scale(1.08); |
| 326 | + } |
| 327 | +} |
0 commit comments