About HTML & CSS Playground
The preview runs in a frame with no origin of its own, so the code inside it cannot read this page, your saved work or anything else in the browser — and code that arrives in a link is shown rather than run until you press the button.
Three panels and a preview. Markup goes in the first, styling in the second, behaviour in the third, and pressing Run assembles them into one document and renders it beside you. Whatever the script writes with the logging functions appears in the panel underneath, along with any error it throws and the line it came from, which is most of what a browser's developer tools give you for a snippet this size without leaving the page you are reading.
The preview is deliberately not part of this page. It renders inside a frame marked as sandboxed and given no origin of its own, which means the code in it cannot read this document, cannot reach anything saved on this site, and finds the storage interfaces throwing when it calls them. That is the same containment a browser applies to an advertisement, applied here to code you may have been sent by someone else, and it holds regardless of what that code tries.
One rule follows from the sharing feature and is worth stating plainly: code that arrives in a link is never executed on arrival. A page that rendered a shared payload automatically would be a way to put someone else's interface, complete with a password box, at this site's address — so a link fills the panels, lists anything in the code worth a second look, and waits for a click. The same restraint applies to a restored piece of saved work.
What will not work inside the preview is anything loaded from another address. The frame inherits this site's content policy, which permits no third-party scripts and no third-party stylesheets, so a snippet that pulls in a framework from a content network will render without it. That is a real limit rather than an oversight: the alternative is a page that can be made to load arbitrary code from anywhere, which is exactly what the policy exists to prevent. Paste the library's source into the script panel, or use the snippet as a test of your own code rather than somebody's framework.
The export button writes a standalone file with the three panels assembled and the console bridge removed, which opens in any browser and can be committed, mailed or dropped into a ticket. It is also the honest way to hand a reproduction to somebody: a file they can read before opening beats a link that renders on arrival, which is the same reason this page will not render one for you.