Browser / device frames
Describes browser chrome with CSS-like geometry (44 px top, 12 px elsewhere); device frames need licensed artwork. Failed, missing, pending or unlicensed assets degrade to an exportable frameless plan, never a blank canvas.
Inputs and parameters
spec— Geometry / layer model JSONscale— Export scaleframeAssetStatus— Frame asset statusbackgroundPreset— Switch background (keeps input/crop)clipboardMode— Input scenario (paste / file fallback)format— Output format (field in the plan)
Real example
{"image":{"id":"shot-01","width":1280,"height":800,"bytes":245760,"hasAlpha":true,"format":"png"},"crop":{"x":0,"y":0,"width":1280,"height":800},"padding":48,"radius":20,"background":{"kind":"gradient","from":"#E8F3EC","to":"#F7F8F5","alpha":1},"shadow":{"blur":24,"offsetY":12,"alpha":0.18},"frame":{"kind":"browser","assetStatus":"failed"},"preset":"auto","format":"png","scale":1,"clipboardMode":"desktop-paste"}
(frame.kind=browser, frame.assetStatus=failed)
→ frameFallback={applied:false, reason:"FRAME_ASSET_FAILED", exportable:true, fallback:"frameless"}; chrome all zero; no frame layer; design canvas 1376×896; preview 1200×781; export 1x 1376×896, 2x 2752×1792; a full compositing strategy and JSON plan are still returned.
Limits and failure handling
Geometric frames and fallback semantics only; no real frame asset files; unlicensed device artwork is not bundled; real asset loading, retry and browser drawing are untested; input/export budgets are the same as beautify.
FAQ
Are device frame bitmaps bundled?
No. Device artwork requires a licence check and none is bundled, so device always degrades to frameless; browser chrome is geometric and needs no external asset.
Can I export while the asset is still loading?
Yes, it degrades to frameless (FRAME_ASSET_PENDING) with exportable=true; no blank canvas appears first.