LEGACY DOCUMENTATION (for versions before 4.0) The following are helpful theme importing and exporting bookmarklets. To use a bookmarklet, select all relevent code (from 'javascript:' to the last semicolon) and drag it to your bookmarks bar. Then, run it on a page with compatible links. Instructions for bookmarklet use, tutorial for how to set up links yourself, as well as unminifed and explained code will be below the bookmarklets. (Also, if you are concerned about safety, my code only acquires a JSON file and transfers its data to CSS, never using eval(), which would be necessary for arbitrary code execution, ie. running some malicious js from the json. also like. you can view the files im drawing from, its just css data...) IMPORTER V1 (no music support): javascript:let t={},d=document,l=d.getElementsByClassName("theme");function m(){for(const e in t)d.querySelector(":root").style.setProperty(e,t[e])}function g(){u=this.title,fetch(u).then(t=>t.json()).then(e=>{t=e,m()}).catch(t=>{throw t})}for(i=0;it.json()).then(e=>{t=e,m()}).catch(t=>{throw t})}for(i=0;ie.json()).then(e=>{t=e,m()}).catch(e=>{throw e})}for(j=0;j DUMMY DISPLAY TEXT, REPLACE WITH TEXT OF YOUR CHOICE If your file is valid, your file hosting is working properly, your page makes proper use of :root variables, and you replaced the title attribute correctly, then anyone who runs the importer bookmarklet and then clicks on the anchor element will see your hosted theme applied. UNMINIFIED CODE AND EXPLANATIONS Unminified Importer script: (this is out of date for v3, only applies to v1 and v2. ill get around to updating it...) // create an object for placing the json file into let theme = {}; // get all theme links let themeLinks = document.getElementsByClassName("theme"); // define an implementor function which takes every value from the theme object, and then places it into the proper :root variable function jsonImplement() { for (const attribute in theme) { document.querySelector(":root").style.setProperty(attribute, theme[attribute]) } // optional song-related code songNameElement = document.querySelector(".songName a") songNameElement.innerHTML = theme.songName; songNameElement.href = theme.songURL document.getElementById("songAudio").src = theme.songURL } /* define a getter function which calls an http request to the link contained in the title attribute of the relevant theme link, then place the returned JSON file in object form into the previously defined theme object, and call the implementor function. */ function jsonGet() { url = this.title; fetch(url) .then(res => res.json()) .then((out) => { theme = out; jsonImplement(); }) .catch(err => { throw err }); } // place event listeners on all theme links, so that the getter function is called upon clicking one. for (i=0;i