{ "id": "dropdown-surface", "name": "DropdownSurface", "kind": "primitive", "status": "stable-reference", "summary": "Canonical dark floating surface for selection dropdowns, action dropdowns, filters, and profile menu popovers.", "sourceRefs": [ { "project": "nodedc_taskmanager", "file": "HDROPDOWN-CANON.md" }, { "project": "nodedc_taskmanager", "file": "plane-src/apps/web/styles/globals.css", "classes": ["nodedc-dropdown-surface", "nodedc-dropdown-search", "nodedc-dropdown-option"] }, { "project": "nodedc_launcher", "file": "src/shared/nodedc-ui/Dropdown.tsx", "exports": ["NodeDcDropdown"] }, { "project": "nodedc_launcher", "file": "src/styles/globals.css", "classes": ["nodedc-ui-dropdown-surface", "nodedc-dropdown-surface", "nodedc-ui-option", "nodedc-ui-dropdown-search"] } ], "visualContract": { "background": "linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.01)) over rgba(8,8,11,0.9)", "radius": "1.25rem", "padding": "0.75rem", "blur": "44px", "shadow": "tokens.shadow.dropdown", "border": "0" }, "behaviorContract": [ "Render on fixed/portal layer when inside cards, sidebars, tables, sticky headers, or scroll containers.", "Close on outside pointer and Escape.", "Use Popper or equivalent fixed-position placement based on trigger bounds.", "Default selection placement is bottom-start.", "Default action placement for card quick actions is bottom-start or bottom-end depending on anchor edge." ], "optionContract": { "radius": "0.9rem", "hover": "rgba(255,255,255,0.06)", "outline": "none" } }