Platform constraints
This chapter is not a matter of style — these are the conditions of running inside atomm. Review checks the skeleton and this chapter: ignore the skin and you can still publish; ignore this chapter and the submission fails review.
Export must go through the platform button. Place <div data-atomm-export-button></div> in the export slot and register an atomm.lifecycle.on('export', …) hook. A submission with no export hook is rejected automatically.
The slot is where the templates put it: the footer of the parameters rail, or the canvas's bottom-end corner when there is no rail. The SDK renders the button, and you theme it only through the documented --atomm-export-* variables — the templates set width 100%, height 32px, radius 6px and the brand colours, which is exactly the button-primary shape. During development you may render a fallback button inside the slot; the SDK takes precedence when present. See Export.
A full-width 32px button inside the rail footer's 16px padding. It does not move while content scrolls, so nobody ever has to go looking for it.
Treat the exported file as machine-facing. 1:1 real dimensions, mm units, a viewBox in mm coordinates. Cut-line colours are mapped to machine processes by the device and do not follow the interface palette; see the SVG export colour spec. Reference images used for preview never enter the drawing.
The top bar belongs to the platform — brand, account, credits. Do not rebuild it, do not imitate it, do not add a second one. Your own controls (project name, save, history) go in the header of your lead rail.
You render inside the region the platform allocates. You cannot cover the platform chrome, you do not know the viewport, and the stacking context is entirely yours: one overlay layer plus one for toasts is enough, and z-index caps at 3.