This page is a complete reference for all themes and scripts created by Scribblemakes, it includes links to downloads, usage and installation instructions, and information on scripts. It also does not use any Javascript to display information, unlike the javascript-enabled 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.
Page Navigation: Tutorials || Themes || Widgets || Plugins
Site navigation: Homepage || Javascript-enabled Page
CSS creates animations through @keyframes and the animation-name property. W3Schools has a page about using these animation functions: W3Schools site.
This is an example of how it can be used with multiple properties:@keyframes animation {
0% {background-color: red; border-radius: 0;}
50% {background-color: red; border-radius: 50%;}
100% {background-color: red; border-radius: 0;}
}
.animate {
animation-name: animation;
animation-duration: 5s;
animation-timing-function: linear; /*ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(n,n,n,n)*/
animation-iteration-count: infinite;
}
Below are some common ways to animate an element:
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.
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.
Usage 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.
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.
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.
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.
<!-- 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.
<script src="scPlugin_ImageClicktoEnlarge.js" type="text/javascript"></script>
<script src="scripts/scPlugin_ImageClicktoEnlarge.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.
<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;