This page is a complete reference for all the themes, widgets, and plugins I (Scribblemakes) have created. It includes links to downloads, usage and installation instructions, and additional information not on the main page. However, this page has minimal images and is displayed fully, rather than split into different sections. For an easier reading experience, try the main code page.
Everything in this collection is under an Attribution-NonCommercial-ShareAlike 4.0 International License and a Mozilla Public License v2.0, meaning you're free to use them and build your own works based on them for distribution (as long as they're under a similar license). You can use them on your site if you're selling something, feel free to use them on your commission or store pages as long as you do not sell the original files provided by this page. If any theme or script is under a different license it will be listed beside the item's information.
Themes are what I call the collections of code I make that affect a whole site's style, function, and layout. Some are layout-only, relying entirely on CSS and HTML, while some rely heavily on Javascript to create affects like opening windows, image maps, and more. When you install a theme it's very similar to installing a premade website, or installing a theme on a personal blog site like Blogger or Tumblr.
Every theme is responsive and tested for mobile screen sizes.
A theme made for one-page collections of characters, information, art, and more. It's based on manilla folders and old paper collections of information kept in binders.
FeaturesUsage instructions are included in the example HTML file. To install the theme, download the files individually or download the Complete .ZIP file. Extract all .ZIP files and upload the HTML, CSS, JS, and imgs folder to the same location. If you installed it correctly, the example HTML file will show images.
Based on an older operating system, Glasspane Mana is a website theme that lets creators make their sites more interactive. With resizable windows and multiple being open at once, it encourages one-page websites without making them too long.
FeaturesUsage instructions are included in the example HTML file. To install the theme, download the files individually or download the Complete .ZIP file. Extract all .ZIP files and upload the HTML, CSS, JS, and imgs folder to the same location. If you installed it correctly, the example HTML file will show images and have a taskbar at the bottom.
TV Static is a one-page website theme based on older televisions, including static in-betweens for each screen.
FeaturesUsage instructions are included in the example HTML file. To install the theme, download the files individually or download the Complete .ZIP file. Extract all .ZIP files and upload the HTML, CSS, and images to the same location. If you installed it correctly, the example HTML file will show images.
Widgets are visible and interactive elements that can go on your webpage, such as a collection of buttons or a script that allows you to build a game. Out of the three categories on this page (themes, widgets, and plugins) they require the most input from you to install correctly, since they are usually very complex. Every widget includes an installation guide however, so code can easily be copied or edited with the guide if you're not confident in your coding abilities.
A widget that creates a gallery of images for artists, photographers, and other image-focused users. It includes sorting options, scheduling, preview images, and more.
FeaturesThe widget comes with an installation guide shown through gallery images, you can view it here.
This widget helps automate a lot of the blog-making process for personal sites, making it far easier to post updates on your website and set up a RSS feed. It also adds more functionality with chronological sorting, labels for filtering, and post scheduling.
Features4th January 2024
The widget comes with an installation guide as a blog post, you can view it here.
A widget that helps users set up an interactive image map. The map offers hover-on features to change its appearance, being able to link image maps to give the illusion of travelling through a space, and responsive sizing.
Features
<!-- Interactive Image Map Container -->
<div id="sc_imw_container">
<!-- Images for the Map -->
<img id="sc_imw_mappedImage" src="sc_imw_imgs/sc_imw_testingRoom1.png" usemap="#sc_imw_testingRoom1.png" alt="Scribblemakes Code Interactive Image Map Widget">
<noscript>Javascript is disabled. Enable your Javascript to use the interactive map.</noscript>
<!-- First Map (Room 1) -->
<map name="sc_imw_testingRoom1.png">
<area shape="rect" coords="261,202,547,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverLeft.png')"
href=""
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverRight.png')"
onclick="sc_imw_changeArea('sc_imw_testingRoom2.png')"
class="sc_imw_MapClass">
</map>
<!-- Second Map (Room 2) -->
<map name="sc_imw_testingRoom2.png">
<area shape="rect" coords="261,202,547,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverLeft.png')"
onclick="sc_imw_changeArea('sc_imw_testingRoom1.png')"
class="sc_imw_MapClass">
<area shape="rect" coords="820,226,1098,807"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoom2HoverDoor.png')"
href="https://scribblemakes.com/code/development#sc_imw"
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverRight.png')"
href=""
class="sc_imw_MapClass">
</map>
</div>
<!-- Link and Button (optional)
<a id="sc_imw_preloadLink">This link text is replaced with sc_imw_impp_starterText if text is missing</a>
<button id="sc_imw_preloadButton">This button text is replaced with sc_imw_impp_starterText if text is missing</button>
-->
<!-- Script to set up images -->
<script src="scWidget_InteractiveImageMap.js" type="text/javascript"></script>
<script>sc_imw_Preload(["sc_imw_imgs/sc_imw_testingRoom1.png", "sc_imw_imgs/sc_imw_testingRoom2.png"]);</script>
<img id="sc_imw_mappedImage" src="sc_imw_imgs/myFirstRoom.png" usemap="#sc_imw_testingRoom1.png" alt="Scribblemakes Code Interactive Image Map Widget">
<img id="sc_imw_mappedImage" src="sc_imw_imgs/myFirstRoom.png" usemap="#myFirstRoom.png" alt="Scribblemakes Code Interactive Image Map Widget">
Scroll down to your first map and also change its name to your new image.<!-- First Map (Room 1) -->
<map name="myFirstRoom.png">
<!-- Script to set up images -->
<script src="scWidget_InteractiveImageMap.js" type="text/javascript"></script>
<script>sc_imw_Preload(["sc_imw_imgs/myFirstRoom.png", "sc_imw_imgs/sc_imw_testingRoom2.png"]);</script>
// Responsive Image Maps Plugin Setup
var sc_imw_rimp = true; // Set to false to deactivate the built-in Image Map Resizer
const sc_imw_rimp_originalWidth = 1000; // Width of the image without CSS styling (file dimensions, the size it was mapped at)
const sc_imw_rimp_originalHeight = 2000; // Height of the image without CSS styling (file dimensions, the size it was mapped at)
<!-- First Map (Room 1) -->
<!-- Second Map (Room 2) -->
<!-- First Map (Room 1) -->
<map name="myFirstRoom.png">
</map>
<!-- Second Map (Room 2) -->
<map name="sc_imw_testingRoom2.png">
</map>
<!-- First Map (Room 1) -->
<map name="myFirstRoom.png">
<area shape="rect" coords="261,202,547,803"
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
class="sc_imw_MapClass">
</map>
<!-- Second Map (Room 2) -->
<map name="sc_imw_testingRoom2.png">
<area shape="rect" coords="261,202,547,803"
class="sc_imw_MapClass">
<area shape="rect" coords="820,226,1098,807"
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
class="sc_imw_MapClass">
</map>
<!-- First Map (Room 1) -->
<map name="myFirstRoom.png">
<area shape="rect" coords="261,202,547,803"
onmouseenter="sc_imw_AreaHover('myFirstRoomAnim1.png')"
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
onmouseenter="sc_imw_AreaHover('myFirstRoomAnim2.png')"
class="sc_imw_MapClass">
</map>
<!-- Second Map (Room 2) -->
<map name="myFirstRoom.png">
<area shape="rect" coords="261,202,547,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverLeft.png')"
class="sc_imw_MapClass">
<area shape="rect" coords="820,226,1098,807"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoom2HoverDoor.png')"
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverRight.png')"
class="sc_imw_MapClass">
</map>
<!-- First Map (Room 1) -->
<map name="myFirstRoom.png">
<area shape="rect" coords="261,202,547,803"
onmouseenter="sc_imw_AreaHover('myFirstRoomAnim1.png')"
href=""
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
onmouseenter="sc_imw_AreaHover('myFirstRoomAnim2.png')"
class="sc_imw_MapClass">
</map>
<!-- Second Map (Room 2) -->
<map name="sc_imw_testingRoom2.png">
<area shape="rect" coords="261,202,547,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverLeft.png')"
class="sc_imw_MapClass">
<area shape="rect" coords="820,226,1098,807"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoom2HoverDoor.png')"
href="https://scribblemakes.com/code/development#sc_imw"
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverRight.png')"
href=""
class="sc_imw_MapClass">
</map>
<!-- First Map (Room 1) -->
<map name="myFirstRoom.png">
<area shape="rect" coords="261,202,547,803"
onmouseenter="sc_imw_AreaHover('myFirstRoomAnim1.png')"
href=""
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
onmouseenter="sc_imw_AreaHover('myFirstRoomAnim2.png')"
onclick="sc_imw_changeArea('sc_imw_testingRoom2.png')"
class="sc_imw_MapClass">
</map>
<!-- Second Map (Room 2) -->
<map name="sc_imw_testingRoom2.png">
<area shape="rect" coords="261,202,547,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverLeft.png')"
onclick="sc_imw_changeArea('myFirstRoom.png')"
class="sc_imw_MapClass">
<area shape="rect" coords="820,226,1098,807"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoom2HoverDoor.png')"
href="https://scribblemakes.com/code/development#sc_imw"
class="sc_imw_MapClass">
<area shape="rect" coords="1370,202,1658,803"
onmouseenter="sc_imw_AreaHover('sc_imw_testingRoomHoverRight.png')"
href=""
class="sc_imw_MapClass">
</map>
<!-- Script to set up images -->
<script src="scWidget_InteractiveImageMap.js" type="text/javascript"></script>
<script>sc_imw_Preload(["sc_imw_imgs/sc_imw_testingRoom1.png", "sc_imw_imgs/sc_imw_testingRoom2.png", "sc_imw_imgs/myNewRoom.png"]);</script>
Plugins are scripts that affect the pre-existing code on your HTML page, such as adding additional event listeners to elements or dynamically resizing size-restricted functions. Plugins are the easiest to install, usually only requiring one line of code near the bottom of your HTML page to function, and often are only one Javascript file.
A plugin that makes images clickable, opening them up at a larger size for easier viewing.
Features<script src="scPlugin_ImageClicktoEnlarge.js" type="text/javascript"></script>
<script src="scripts/scPlugin_ImageClicktoEnlarge.js" type="text/javascript"></script>
A plugin that preloads images on a webpage to make sure everything is displayed correctly.
Features<script src="scPlugin_ImagePreloader.js"></script>
<script src="scripts/scPlugin_ImagePreloader.js" type="text/javascript"></script>
A plugin that makes image maps responsive, allowing them to be any scale without needing to write multiple coordinates for the same area.
Features<script src="scPlugin_ResponsiveImageMaps.js" type="text/javascript"></script>
<script src="scripts/scPlugin_ResponsiveImageMaps.js" type="text/javascript"></script>
const sc_rimp_originalWidth = 1920;
const sc_rimp_originalHeight = 1080;