# Popup — Figma Assembly Rules

<!-- figma-assembly.v2
{ "schemaVersion":"figma-assembly.v2", "id":"component.popup", "level":"molecule", "kind":"published", "aliases":["Popup","wbl-popup"], "uxSpec":"specs/ux/components/molecules/popup.md", "inventoryTarget":"popup", "componentKeys":["743303971ff8bb23ebea15974aa9814c56aa0649"], "dependencies":[], "optionalDependencies":["component.button","component.icon"], "coveredBy":[] }
-->

Status: active Figma assembly contract.

## Scope

Use this contract for the generic WB Logistics Popup component. Line Clamp
(`component.line-clamp-popup`) and other overlays must be documented from their
own verified component evidence, not inferred from this Popup.

## Source Evidence

- Direct Figma evidence: Figma Popup
  `13808:29756` passed context and screenshot checks (`328×366`).

## Required Assembly

- Rule ID: `popup.published` — use the Popup component for the overlay surface; do not recreate it as a local
  dark card.
- Select `size` `S` or `M` through the component variant.
- Show the title/subtitle block only when the Figma `text` control is enabled.
- Insert custom body and action content through the Popup Slot. Action buttons
  remain nested Button instances and retain their own component contract.
- Set closability through the recorded close control. Trigger mechanics,
  placement, timing, Escape handling, outside-click behavior, and hover behavior
  belong to the invoking composition.

## Tokens And Sizing

- Preserve the Figma Popup's dark `bg/toast` surface, white text treatment,
  radius, shadow, and size-specific padding/typography bindings.
- Do not alter the Figma surface to match the known runtime Popup color
  difference; record it as an Open Question rather than altering the Figma surface.

## Verification Checklist

- Size, text block, Slot, actions, and close affordance use the existing Popup
  anatomy.
- The overlay is not used as a normal-flow card or a modal substitute.
- Line Clamp-specific, hover, and placement rules have not been copied into this
  generic contract.
