One entry per job — scoped to the pages that need it, versioned on every save, previewed live, and never published broken.
Mistakes are flagged as you type, with the line and the reason in plain words. Drafts can stay messy — publishing is locked until the errors are gone.
Whole site, or only the post types, single pages, slugs and terms that need it. The panel states the result as a sentence, so you never have to reason it out.
Compare any two versions side by side and restore in one click. Restoring never deletes anything — it saves the old version on top.
Split the editor with your actual site and watch every keystroke land — no saving, no publishing, no “open a tab and refresh”. Pick any page the entry loads on, or any path at all, at phone, tablet or full width.
Hold Compare to flip between the site as it is now and the site with your draft. When it looks right, publish.
Every post and page edit screen gets a panel listing the CSS that loads on it, and why each entry matches — a slug, a post type, a category, or simply everywhere.
Switch one off for this page alone without touching its rules. Write new CSS scoped to the page you’re looking at. Both editors, same panel.
Inline <style> with no extra request, or a hash-versioned .css file the browser caches. Per entry, or one site default.
File-delivered entries that share a scope ship as one combined stylesheet — one request even with dozens of entries. On by default.
Served minified, and the editor shows you the before and after size as you write.
Filter the entries list by any page to see exactly what loads there and why — or flip it and list the pages that turned something off.
Tie an entry to your current theme. Switch themes and it stops loading; switch back and it resumes — nothing to remember, nothing to delete.
Editing CSS is a capability you grant per role, not a side effect of being an Editor. Administrators always have it.
Hide the post types you never style — invoices, orders, field groups — so the scope builder stays short.
Bring CSS in as a pasted block, a .css file, or a full export from another site — everything arrives as drafts, validated before it can go live.
Take everything as separate .css files, one merged stylesheet, or a full JSON backup with history.
Nothing leaves your server. Delete the plugin and your entries stay — unless you ask it to clean up.
Inline delivery adds no request at all. File delivery costs one request that the browser caches, with a hash in the filename so it updates the moment you publish — and entries sharing a scope combine into a single file.
Yes. Scope by post type, slug or term, and set an entry to print after your theme’s stylesheets so your overrides win without !important.
It survives. Deleting everything on uninstall is a setting, off by default — and you can export a full backup first.
Paste it straight into a new entry, upload a .css file, or import a backup from another site running the plugin — scope, delivery and history included. Then split it as you go: a header entry, a checkout entry, a print entry. That’s the habit the plugin is built around.
You can copy a preview link that works for 24 hours — but only for people logged in with the CSS permission. Leaked or expired, it shows nothing.
Free, GPLv2, and built to stay out of your way.