name: Drop Zone description: A component for screen building that provides a draggable drop target area where users can drop components or elements. Indicates drop availability and provides visual feedback during drag operations. category: Complex Components slds_classes: root: slds-drop-zone elements: - class: slds-drop-zone__label description: Top label of the drop zone purpose: Displays instructional text or title - class: slds-drop-zone__label_container description: Container for populated drop zone label purpose: Wraps label content when zone contains items - class: slds-drop-zone__label_button description: Button within drop zone label purpose: Interactive element in label area - class: slds-drop-zone_drag__slot description: Insertion point of drop zone purpose: Target area where items are dropped modifiers: - class: slds-drop-zone_drag description: Modifier indicating drop availability purpose: Applied when component may be dropped in container states: [] variants: - name: Base description: Standard drop zone for component placement classes: - slds-drop-zone usage_context: Default drop zone for drag-and-drop interfaces differences: Empty drop target ready to receive dragged items lightning_component: name: '' url: https://developer.salesforce.com/docs/component-library/overview/components mapping_notes: No direct Lightning Base Component - implement with custom drag-and-drop JavaScript accessibility: keyboard_support: - Tab to focus on drop zone - Enter or Space to activate alternative placement - Arrow keys for keyboard-based positioning screen_reader: - Drop zone role and purpose announced - Drag state changes announced - Successful drop confirmed aria_attributes: - aria-label describing drop zone purpose - aria-dropeffect indicating allowed operations - aria-grabbed on draggable items - role='region' or custom role for drop area usage_guidelines: when_to_use: - For screen or page builders - When users need to arrange components visually - For customizable dashboards or layouts - In drag-and-drop interfaces when_not_to_use: - For simple file uploads (use file selector) - When drag-and-drop adds unnecessary complexity - For mobile-only experiences (touch drag can be difficult) - When list reordering is sufficient best_practices: - Provide clear visual feedback during drag - Show valid drop targets clearly - Indicate when zone is ready to receive drops - Provide alternative non-drag methods - Handle touch interactions for mobile - Show drop zone boundaries clearly common_mistakes: - Unclear drop target boundaries - No visual feedback during drag - Missing keyboard alternatives - Poor mobile/touch support - Not indicating valid vs invalid drops code_examples: - title: Basic Drop Zone code: "