PaperPixel Template

Envato Submission Documentation • Version 1.0.0

1. Template Overview

PaperPixel is a creative personal portfolio HTML5 website template designed specifically for developers, designers, illustrators, and digital artists. It features a unique combination of hand-crafted scrapbook aesthetics (like lined notebook papers, washi tapes, and polaroid photo cards) alongside retro 8-bit game mechanics.

The template is completely responsive, lightweight, accessible, and supports dual theme modes (calm light paper mode and chalk carbon dark mode).

2. File Structure

Here is the visual directory tree of the PaperPixel template package:

paperpixel/
│
├── index.html                  ← Homepage (entry point)
├── about.html                  ← Bio & stats page
├── portfolio.html              ← Project categories folder
├── services.html               ← Tear-off voucher service tickets
├── pricing.html                ← Arcade cabinet pricing tables
├── blog.html                   ← Zine-style news chronicle
├── blog-single.html            ← Single article reader
├── contact.html                ← Letter envelope contact form
├── faq.html                    ← Akordeon folded papers
├── 404.html                    ← Game Over CRT screen
│
├── assets/
│   ├── css/
│   │   ├── style.css           ← Main stylesheet (reset & base grids)
│   │   ├── pixel-theme.css     ← Scrapbook & pixel components
│   │   ├── animations.css      ← Floating & flicker keyframes
│   │   ├── responsive.css      ← Media queries (mobile-first)
│   │   └── dark-mode.css       ← Chalk carbon mode variables
│   │
│   ├── js/
  │   ├── main.js             ← Core main entry point (bootstraps all modules)
  │   └── modules/            ← Individual javascript feature modules
  │       ├── nav.js          ← Handles mobile menu toggle & active page link highlighting
  │       ├── theme-toggle.js ← Handles light mode vs dark mode toggles & local preference saving
  │       ├── sound.js        ← Web Audio API synthesizer for 8-bit clicks & UI sound triggers
  │       ├── xp-bar.js       ← Progress bars fill animation triggered on viewport scroll
  │       ├── draggable.js    ← Touch & mouse scrapbook stickers drag-and-drop controller
  │       ├── animations.js   ← Lightweight translation parallax & viewport scroll reveal
  │       ├── counter.js      ← Statistics scroll-reveal count-up animation
  │       ├── portfolio.js    ← Portfolio tabs content categorization & access modals
  │       ├── form.js         ← Envelope contact form preloading, bot honeypots & validator
  │       ├── blog-loader.js  ← Dynamic post hydration loader for details page (blog-single.html)
  │       └── music-player.js ← Sequencer synth player for the 8-bit melody on the about page
│   │
│   └── images/
│       ├── hero/               ← Hero banner illustrations
│       ├── portfolio/          ← Project screenshots
│       └── team/               ← Profile avatar picture
      

3. Getting Started

How to open and edit the template files:

  1. Unzip the template archive folder.
  2. Open the root folder (e.g. paperpixel/) inside any code editor of your choice (we recommend Visual Studio Code).
  3. Double-click on index.html to view the homepage inside your web browser.
  4. To edit text or links, locate the corresponding HTML file (e.g., about.html), modify the text inside the HTML tags, and save the file.
NOTE: Because the site uses clean, standard vanilla HTML and CSS, you do not need any special compilation tools (like Sass or Node.js) to customize the template.

4. Customization Guide

How to change website colors:

The color system is organized using CSS Variables. To change the colors of your site, open assets/css/style.css and locate the variables inside the :root selector.

For example, to change the default blue accent color to pink, replace the hex code:

--color-accent-blue: #5887ff; /* Replace with your own color */

To change the color values in dark mode, edit the variables inside assets/css/dark-mode.css:

body.dark-mode {
  --color-accent-blue: #709bff; /* Dark mode blue override */
}

How to change fonts:

The template imports fonts from Google Fonts at the top of assets/css/style.css. To use a different font:

  1. Go to Google Fonts and select a font you like.
  2. Copy the new @import stylesheet URL.
  3. Replace the existing @import link at the top of style.css.
  4. Update the variables --font-display or --font-body with your new font family name.

5. JavaScript Features Guide

This template runs on clean, modern, and modular ES6 JavaScript. All interactive features are separated into individual files (modules) under assets/js/modules/. The file assets/js/main.js is the central switchboard that loads them all.

Below is a complete, non-coder friendly guide to customize or disable each interactive feature. You do not need to understand coding to make these changes!

📊 XP Progress / Skill Bars

What it does: The colored progress bar that automatically "fills up" when a visitor scrolls down to it, representing your skill level or experience points (XP).

Where to find the files:

  • Visual style: assets/css/pixel-theme.css (search for .xp-bar)
  • Action script: assets/js/modules/xp-bar.js

How to change the percentage (Adjust Skill):

  1. Open the HTML file where you want to change the skill percentage (for example, about.html or index.html).
  2. Search for the code containing data-xp-value, for example:
    <div class="xp-bar__fill xp-bar__fill--green" data-xp-value="95"></div>
  3. Change the number 95 inside data-xp-value="..." to any percentage number you want between 0 and 100 (e.g., data-xp-value="80" for 80% full).
  4. Save the file and refresh your browser. The bar will automatically fill to that new percentage value when you scroll down to it!

How to change the label text:

  1. Open the HTML file (e.g., about.html).
  2. Locate the level text, e.g., <span class="xp-bar__level pixel-text">HTML / CSS</span>.
  3. Change HTML / CSS to whatever skill title you want (like PHOTOSHOP or WRITING).
  4. To change the sub-label, find the text 9,500 / 10,000 XP (or LVL 99) and replace it with any numbers or text you want.

How to turn it OFF completely:
Open assets/js/main.js in any editor, find the line that says initXpBars(); and type two forward slashes in front of it like this: // initXpBars();. Save the file. The skill bars will still appear on the page but will stay static without animating.

🔊 Retro Click Sound Effects

What it does: Plays a soft, classic 8-bit arcade click sound wave whenever a visitor clicks on buttons, links, polaroid cards, or decoration elements.

Where to find the files:

  • Action script: assets/js/modules/sound.js

How it works for visitors:
Sound is muted by default so it does not disturb people. A visitor can click the speaker button (🔇 / 🔊) in the top-right corner to turn sounds on or off. The site remembers their choice.

How to turn it OFF completely:
Open assets/js/main.js, find the line that says initSound(); and type two forward slashes in front of it: // initSound();. The sound icon will disappear from the header, and no clicks will play sounds.

🎵 8-bit Music Sequencer Player

What it does: A mini music player box on the About page that synthesizes a looping retro background melody when clicked.

Where to find the files:

  • Action script: assets/js/modules/music-player.js

How to change the melody (tune notes):

  1. Open the file assets/js/modules/music-player.js.
  2. Look for the line that says:
    const melody = [659.25, 830.61, 987.77, 880.00, 830.61, 739.99, 659.25, 622.25];
  3. These numbers are sound frequencies in Hertz (Hz). You can replace them with different numbers to change the notes (for example, 440.00 is note A4, 523.25 is note C5, and 261.63 is note C4).
  4. You can add more numbers to make the tune longer or remove numbers to make it shorter. Save the file and reload the about page to listen to your custom tune.

How to turn it OFF completely:
Open assets/js/main.js, find the line initMusicPlayer(); and comment it out: // initMusicPlayer();.

📌 Draggable Scrapbook Stickers

What it does: Allows visitors to click-and-drag or tap-and-drag sticker badges, notes, and polaroids anywhere on the screen.

Where to find the files:

  • Action script: assets/js/modules/draggable.js

How to make any element draggable:
Simply add the class name draggable-sticker to any HTML element, for example:
<div class="draggable-sticker">⭐</div>.
That item will now be instantly draggable by touch screen or mouse pointer!

How to turn it OFF completely:
Open assets/js/main.js, find the line initDraggable(); and comment it out: // initDraggable();.

🌙 Dark / Light Theme Mode

What it does: Allows visitors to toggle the website theme between Chalkboard Dark mode and Cream Light mode. It remembers their choice using browser cookies (localStorage).

Where to find the files:

  • Visual styles: assets/css/dark-mode.css
  • Action script: assets/js/modules/theme-toggle.js

How to turn it OFF completely:
Open assets/js/main.js, find initThemeToggle(); and comment it out: // initThemeToggle();. Also remove the button with the ID theme-toggle-btn from the header in your HTML files.

📈 Animated Statistics Counters

What it does: Automatically counts up numbers from zero to your target statistical value with a smooth retro animation once the counter element is scrolled into view.

Where to find the files:

  • Action script: assets/js/modules/counter.js

How to customize statistics values:

  1. Open the HTML file containing the counters (like about.html).
  2. Find the code block with class="stat-counter", e.g.:
    <div class="stat-counter" data-target="15" data-suffix="+" data-prefix="">
  3. Change data-target="15" to whatever number you want the counter to reach.
  4. Change data-prefix or data-suffix to add symbols (like $, %, +) before or after the number.

How to turn it OFF completely:
Open assets/js/main.js, find initCounters(); and comment it out: // initCounters();.

📂 Portfolio Filtering & Modal Popup

What it does: Handles the category filter tabs on the portfolio page, and opens a pop-up description screen (Modal) when you click a project.

Where to find the files:

  • Action script: assets/js/modules/portfolio.js

How to add a new project and connect the modal details:

  1. Open portfolio.html.
  2. Copy an existing project card container (with the class portfolio-item).
  3. Look for the button tag inside it:
    <button class="project-card-btn" data-title="..." data-tech="..." data-desc="..." data-img="...">
  4. Simply replace the attributes:
    • data-title: Your project's name.
    • data-tech: List of technologies used (like HTML, CSS, React).
    • data-desc: The description paragraph shown inside the popup modal.
    • data-img: The path to the preview screenshot image.
  5. Save the file. The popup modal will automatically show these custom texts and images when clicked!

How to turn it OFF completely:
Open assets/js/main.js, find initPortfolio(); and comment it out: // initPortfolio();.

✉️ Contact Form Auto-Fill & Spam Shield

What it does: Detects if a user chose a pricing plan tier, pre-fills the message box with a relevant request, validates inputs, and filters out malicious bots using a hidden input filter (Honeypot field).

Where to find the files:

  • Action script: assets/js/modules/form.js

How it protects your mailbox from spam bots:
The contact form has a hidden field that human visitors cannot see, but automatic spam bots will try to fill out. If the form is submitted with this hidden field filled, it prevents the message from being sent, filtering out spam silently.

How to turn it OFF completely:
Open assets/js/main.js, find initForm(); and comment it out: // initForm();.

6. Credits & Resources

All third-party assets used in this template are licensed for commercial use:

7. Changelog

v1.0.0 — June 29, 2026
- Initial release of PaperPixel portfolio template.
- Integrated scrapbook aesthetic cards, notes, and polaroids.
- Implemented smooth requestAnimationFrame hero parallax.
- Added Web Audio API retro synthetic click feedback.
- Completed dual theme modes (Chalkboard Dark & Warm Cream Light).
- Completed 10 page-level sub-templates.
      

8. Support Info

If you run into any issues customizing this template, feel free to contact us via the profile contact form or email us directly at support@imajikostudio.com. We are happy to help!