{"id":21744649,"url":"https://github.com/lmoroz/javascript30","last_synced_at":"2025-08-04T12:04:32.673Z","repository":{"id":127075030,"uuid":"81100566","full_name":"lmoroz/javascript30","owner":"lmoroz","description":"🔥 30 Day Vanilla JS Challenge https://JavaScript30.com","archived":false,"fork":false,"pushed_at":"2019-10-02T02:09:38.000Z","size":32095,"stargazers_count":3,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-13T05:12:27.560Z","etag":null,"topics":["challenge","es2016","exercise","javascript","javascript30","js6","lessons-learned","vanilla-javascript","vanilla-js","wesbos"],"latest_commit_sha":null,"homepage":"https://lmoroz.github.io/javascript30/","language":"HTML","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lmoroz.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-06T15:20:23.000Z","updated_at":"2020-08-01T21:44:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"65f20c9e-547f-44e7-b1e9-e7ee8db5367f","html_url":"https://github.com/lmoroz/javascript30","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lmoroz/javascript30","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmoroz%2Fjavascript30","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmoroz%2Fjavascript30/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmoroz%2Fjavascript30/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmoroz%2Fjavascript30/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lmoroz","download_url":"https://codeload.github.com/lmoroz/javascript30/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lmoroz%2Fjavascript30/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265233753,"owners_count":23731825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["challenge","es2016","exercise","javascript","javascript30","js6","lessons-learned","vanilla-javascript","vanilla-js","wesbos"],"created_at":"2024-11-26T07:12:11.452Z","updated_at":"2025-07-14T02:38:03.148Z","avatar_url":"https://github.com/lmoroz.png","language":"HTML","readme":"![](https://javascript30.com/images/JS3-social-share.png)\r\n\r\n# JavaScript30\r\n\r\nSolutions by Larisa Moroz for the JavaScript 30 Day Challenge.\r\n\r\nGrab the course at [https://JavaScript30.com](https://JavaScript30.com)\r\n\r\n\r\n# My progress\r\n\r\nStart date: Febuary 7th, 2017\r\n\r\n1.  [x]     [Drum Kit](https://lmoroz.github.io/javascript30/01%20-%20JavaScript%20Drum%20Kit/index.html)\r\n2.  [x]     [CSS+JS Clock](https://lmoroz.github.io/javascript30/02%20-%20JS%20and%20CSS%20Clock/index.html)\r\n3.  [x]     [CSS Variables](https://lmoroz.github.io/javascript30/03%20-%20CSS%20Variables/index.html)\r\n4.  [x]     [Array Cardio 1](https://lmoroz.github.io/javascript30/04%20-%20Array%20Cardio%20Day%201/index.html)\r\n5.  [x]     [Flex Panel Gallery](https://lmoroz.github.io/javascript30/05%20-%20Flex%20Panel%20Gallery/index.html)\r\n6.  [x]     [Type Ahead](https://lmoroz.github.io/javascript30/06%20-%20Type%20Ahead/index.html)\r\n7.  [x]     [Array Cardio 2](https://lmoroz.github.io/javascript30/07%20-%20Array%20Cardio%20Day%202/index.html)\r\n8.  [x]     [HTML5 Canvas](https://lmoroz.github.io/javascript30/08%20-%20Fun%20with%20HTML5%20Canvas/index.html)\r\n9.  [x]     [Dev Tools Domination](https://lmoroz.github.io/javascript30/09%20-%20Dev%20Tools%20Domination/index.html)\r\n10. [x]     [Checkboxes](https://lmoroz.github.io/javascript30/10%20-%20Hold%20Shift%20and%20Check%20Checkboxes/index.html)\r\n11. [x]     [Custom Video Player](https://lmoroz.github.io/javascript30/11%20-%20Custom%20Video%20Player/)\r\n12. [x]     [Key Sequence Detection](https://lmoroz.github.io/javascript30/12%20-%20Key%20Sequence%20Detection/)\r\n13. [x]     [Slide in on Scroll](https://lmoroz.github.io/javascript30/13%20-%20Slide%20in%20on%20Scroll/)\r\n14. [x]     [JS References vs Copying](https://lmoroz.github.io/javascript30/14%20-%20JavaScript%20References%20VS%20Copying/)\r\n15. [x]     [LocalStorage](https://lmoroz.github.io/javascript30/15%20-%20LocalStorage/)\r\n16. [x]     [Mouse Move Shadow](https://lmoroz.github.io/javascript30/16%20-%20Mouse%20Move%20Shadow/)\r\n17. [x]     [Sort Without Articles](https://lmoroz.github.io/javascript30/17%20-%20Sort%20Without%20Articles/)\r\n18. [x]     [Adding Up Times with Reduce](https://lmoroz.github.io/javascript30/18%20-%20Adding%20Up%20Times%20with%20Reduce/)\r\n19. [x]     [Webcam Fun](https://lmoroz.github.io/javascript30/19%20-%20Webcam%20Fun/)\r\n20. [x]     [Speech Detection](https://lmoroz.github.io/javascript30/20%20-%20Speech%20Detection/)\r\n21. [x]     [Geolocation](https://lmoroz.github.io/javascript30/21%20-%20Geolocation/)\r\n22. [x]     [Follow Along Link Highlighter](https://lmoroz.github.io/javascript30/22%20-%20Follow%20Along%20Link%20Highlighter/)\r\n23. [x]     [Speech Synthesis ](https://lmoroz.github.io/javascript30/23%20-%20Speech%20Synthesis/)\r\n24. [x]     [Sticky Nav](https://lmoroz.github.io/javascript30/24%20-%20Sticky%20Nav/)\r\n25. [x]     [Event Capture, Propagation.. ](https://lmoroz.github.io/javascript30/25%20-%20Event%20Capture,%20Propagation,%20Bubbling%20and%20Once/)\r\n26. [x]     [Stripe Follow Along Nav](https://lmoroz.github.io/javascript30/26%20-%20Stripe%20Follow%20Along%20Nav/)\r\n27. [x]     [Click and Drag](https://lmoroz.github.io/javascript30/27%20-%20Click%20and%20Drag/)\r\n28. [x]     [Video Speed Controller](https://lmoroz.github.io/javascript30/28%20-%20Video%20Speed%20Controller/)\r\n29. [x]     [Countdown Timer](https://lmoroz.github.io/javascript30/29%20-%20Countdown%20Timer/)\r\n30. [x]     [Whack A Mole](https://lmoroz.github.io/javascript30/30%20-%20Whack%20A%20Mole/)\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmoroz%2Fjavascript30","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flmoroz%2Fjavascript30","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flmoroz%2Fjavascript30/lists"}