Menu

Storage

JSON-aware wrapper around localStorage / sessionStorage. Values are JSON.stringify'd on set and JSON.parse'd on get.

localStoragesessionStorageJSON

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));

Observers →

⌕