Storage
JSON-aware wrapper around localStorage / sessionStorage. Values are JSON.stringify'd on set and JSON.parse'd on get.
API
js
F.storage.set("theme", "dark"); // → localStorage
F.storage.get("theme"); // "dark"
F.storage.get("missing", "fallback"); // fallback if null
F.storage.has("theme"); // boolean
F.storage.remove("theme");
F.storage.clear();
// session variant
F.storage.session.set("draft", { id: 1 });
F.storage.session.get("draft");
F.storage.session.has("draft");
F.storage.session.remove("draft");
F.storage.session.clear();Used by the site itself for theme persistence — see F.storage.set("flash:site-theme", …) in src/js/site.js:1.
Live demo
—
Theme helper
F.theme() reads/writes <html data-theme> and persists via storage. It dispatches flash:theme on document.
js
F.theme("dark"); // <html data-theme="dark"> + storage
F.theme(); // "dark" | "light"
document.addEventListener("flash:theme", (e) => console.log(e.detail));