30 days of Vanilla JS projects.

That is a challenge, created by Wes Bos, which aim to code 30 Vanilla JS projects to inprove JS skills. I try to rewrite each of these small projects in my own way, add a new look, RWD funcionality and by doing this everyday I constantly getting to know new features of JavaScript and CSS.

Key sequence detection

canvas

Creating secret content on the website which can be accesable by typing secret code (key sequence).

Drum Kit

drum

Play sounds using keyboard. Learning about 'data' attribute and how to use it.

JS + CSS Clock

clock

Just displaying current time by manipulating transformations and transitions using JS.

Playing with Canvas

canvas

Working with some canvas properties and also learning about hsl().

Local Storage

canvas

Using localStorage to save data in the tacos list after refresh and between sessions.

Array methods I

arrayMethods1

Bunch of exercises with array methods ( filter(), sort(), map(), reduce() ), there is no actual output, but my understanding of arrays leveled up.

Array methods II

arrayMethods1

Again some exercises with array methods - some(), every(), find(), findIndex().

Shadow move

mouseover

Manipulationg text shadow based on mouseover event and offsets.

Sort without articles

variables

Sorting an array alphabetically without articles up front.

Custom Video Player

customVideoPlayer

Creating custom video player capable of skipping a video, manually moving inside video, changing volume and speed.

CSS variables + JS

variables

Manipulating CSS properties using inputs and JavaScript, getting to know with CSS variables.

Flex Panel Gallery

variables

Learning more about Flexbox and manipulating it using JS.

City list filter JS

variables

New stuff about selecting, listening and also that RegExp() method.

Dev Tools

devtools

Going deeper into working with console in browser dev tools.

Manipulating Checkboxes

canvas

Playing with checkboxes events and keydown.

Slide in on Scroll

canvas

Working with window height html property and debounce function to make slideIn effect for images in text.

JS References vs Copying

refferencesvscopying

Console exercises with JS variable references vs coppying variables and differences between these two.

Adding Up with Reduce

addingwithreduce

Adding seconds from data in DOM elements using map and reduce methods.

Speech Detection

canvas

Enable speech detection in browser and displaying what was captured by microphone.

Geolocation

geolocation

Creating a compas and speedometer based on geolocation.

Link highlighter

link-highlighter

Highlighting links based on mouseenter property and calculation of position inside browser window.

Sticky Nav

sticky-nav

Simple sticky navigation + slide in logo, key thing is to add padding as high as navigation itself to avoid jumping content.

Evant propagation

refferencesvscopying

JS evant propagation, bubling, capture and once on a simple example.

Follow Nav

sticky-nav

More advenced navigation dropdown which follows mouse and adjust to the size of a content which should be displayed.

Click and Drag

sticky-nav

Click and Drag slider based on mouse event + simple css rotations, perspective and active class.

Video Speed Controller

sticky-nav

Changing video speed using mouseover effect and calculating percentage on speed bar.

Countdown Timer

sticky-nav

Creating timer based on bunch of 'Date' build in methods, using intervals and click listeners.

Whack A Mole

sticky-nav

JS game using functions based on Math.random, intervals and click listeners.