Skip to content

khushgupta14/JavaScript30

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 JavaScript30 - Custom Implementation

This repository contains my progress and code for the JavaScript30 challenge created by Wes Bos.

While the core concepts follow the original tutorial, I am actively expanding on the base codebase by:

  • Adding custom UI/UX designs
  • Implementing extended JavaScript logic

✨ Custom Modifications & Enhancements

Here are some of the key modifications I made to the projects:

🥁 Day 1 – JavaScript Drum Kit

  • Added click-to-play support so drums trigger on mouse click, not just keyboard.

🕐 Day 2 – JS and CSS Clock

  • Added clock numbers, a center pin, and colored hands.
  • Added a transition-removal fix that stops the second hand from snapping backward at minute 0.

🎨 Day 3 – CSS Variables

  • Added a Grayscale slider that applies a grayscale filter via CSS variable.
  • Added a Reset button that restores all variables and inputs to their defaults.

🖼️ Day 5 – Flex Panel Gallery

  • Added accordion behavior — only one panel can be open at a time, clicking a new one closes the previous.

🎨 Day 8 – HTML5 Canvas

  • Added an Eraser toggle that switches between draw and erase mode.
  • Added a Clear Canvas button that wipes the canvas instantly.
  • Added a mouseenter fix that resumes drawing when re-entering the canvas with the mouse button still held.

🎬 Day 11 – Custom Video Player

  • Added a live time display that updates in real time.
  • Added a fullscreen button and double-click to fullscreen on the video.
  • Added keyboard shortcuts — Space (play/pause), Arrow keys (skip), F (fullscreen).
  • Added live volume and speed labels next to the sliders.

⌨️ Day 12 – Key Sequence Detection

  • 10 emojis fly to random screen positions every 500ms when "helloworld" is typed.
  • Space key is ignored so it doesn't interfere with the tracked key array.

💾 Day 15 – LocalStorage

  • Added Check All and Uncheck All buttons synced to localStorage.
  • Added a per-item Delete button that removes items from the list and localStorage.
  • Added inline contenteditable text editing with auto-save to localStorage.

📸 Day 19 – Webcam Booth

  • Added Ghosting Effect and Magic Colors toggle buttons.
  • Added Clear Strip button that removes all captured photos.
  • Added Mirror effect to flip the video and canvas

🎤 Day 20 – Speech Detection

  • Added a manual Start Listening button to give users control over the microphone.

🔗 Day 22 – Follow Along Link Highlighter

  • Added keyboard accessibility via focus event tracking for tab-navigation support.

⏩ Day 28 – Video Speed Controller

  • Replaced hover trigger with deliberate click-and-drag interaction to prevent accidental activation.

⏱️ Day 29 – Countdown Timer

  • Added an audio alarm with a Stop/Reset button, and a visual progress bar.

🔨 Day 30 – Whack A Mole

  • Added difficulty selector (Easy/Medium/Hard) for dynamic mole speeds, live countdown timer, hit sound effects, and fixed game state management to prevent multiple game instances if the start button is spammed.

📈 Challenge Progress (30/30 Completed)

  • Day 1: JavaScript Drum Kit
  • Day 2: JS and CSS Clock
  • Day 3: CSS Variables
  • Day 4: Array Cardio Day 1
  • Day 5: Flex Panel Gallery
  • Day 6: Type Ahead
  • Day 7: Array Cardio Day 2
  • Day 8: Fun with HTML5 Canvas
  • Day 9: Dev Tools Domination
  • Day 10: Hold Shift and Check Checkboxes
  • Day 11: Custom Video Player
  • Day 12: Key Sequence Detection
  • Day 13: Slide in on Scroll
  • Day 14: JavaScript References VS Copying
  • Day 15: LocalStorage
  • Day 16: Mouse Move Shadow
  • Day 17: Sort Without Articles
  • Day 18: Adding Up Times with Reduce
  • Day 19: Webcam Booth
  • Day 20: Speech Detection
  • Day 21: Geolocation
  • Day 22: Follow Along Link Highlighter
  • Day 23: Speech Synthesis
  • Day 24: Sticky Nav
  • Day 25: Event Capture, Propagation, Bubbling and Once
  • Day 26: Stripe Follow Along Nav
  • Day 27: Click and Drag
  • Day 28: Video Speed Controller
  • Day 29: Countdown Timer
  • Day 30: Whack A Mole

👏 Acknowledgements

Huge thanks to Wes Bos for providing the starter files and the incredible course structure.

About

30 vanilla JavaScript projects from Wes Bos's JS30, enhanced with custom UI and extended logic.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors