20 projects complete. 80 to go. Started this challenge a month ago - 100 JavaScript projects in 100 days to build a strong foundation before diving deeper into frameworks. First 10 projects: Counter, color flipper, tip calculator, quote generator, modal popup, accordion menu, todo list, digital clock, stopwatch, countdown timer. Projects 11-20 (took me more than 15 days, but consistency matters more than speed): ⚖️ BMI Calculator - Input validation and health category logic 🌡️ Temperature Converter - Multi-unit conversion (Celsius, Fahrenheit, Kelvin) 🔐 Random Password Generator - Customizable length and character types 🔤 Character Counter - Real-time tracking with remaining character display ❓ FAQ Collapse/Expand - Smooth animations and toggle functionality 🖼️ Image Slider - Navigation controls and auto-slideshow 📑 Tabs Component - Active state management and content switching 🍔 Navbar Toggle - Responsive mobile menu 🌓 Dark/Light Mode Toggle - Theme switching with localStorage persistence 📝 Form Validation - Real-time error messages for empty fields What's clicking now: First 10 projects were about basic DOM manipulation. Projects 11-20 took it up a notch - localStorage for data persistence, CSS variables for theming, smooth transitions. The dark/light mode project really helped me understand how CSS variables and transitions work together properly. Key learnings: ✅ localStorage for saving user preferences ✅ CSS variables for dynamic theming ✅ Transition effects for smooth UI changes ✅ Form validation without libraries My JavaScript foundation is getting stronger. When I go back to React, Vue, or Angular, I'll know exactly what's happening behind the abstractions. 🌐 CHECK OUT ALL LIVE PROJECTS HERE: 👉 https://lnkd.in/gHAUwuM3 💻 Source Code: https://lnkd.in/gexDJ7BY Progress: 20/100 (20% complete) Next 10 projects include scroll animations, progress bars, star ratings, toast notifications, and drag & drop functionality. Let's keep building. 🚀 #JavaScript #100DaysOfCode #WebDevelopment #FrontendDeveloper #LearningInPublic #VanillaJS
JavaScript Foundation Builds with 20 Projects Complete
More Relevant Posts
-
Building Dynamic UIs with Vanilla JavaScript and Tailwind CSS I recently worked on a project that focuses on one of the most essential skills for a front-end developer: working with APIs and the DOM. I built a User Profile Card Generator that fetches data from the RandomUser API. Instead of hardcoding the UI, I used JavaScript to dynamically create every element—from the profile images to the stat counters. What I focused on: Handling asynchronous data using the Fetch API. Creating reusable UI components through JavaScript functions. Implementing a dark-themed, modern design using Tailwind CSS. This project was a great way to practice writing clean, maintainable code while ensuring the final result looks professional and polished. Check out the repository here: [Insert GitHub Link] #WebDevelopment #JavaScript #TailwindCSS #Frontend #CodingProject #Programming
To view or add a comment, sign in
-
Day 28 of my JavaScript journey 🚀 Built a Coming Soon Page with a live countdown timer using HTML, CSS, and JavaScript. Features: ⏳ Real-time countdown timer 🎯 Dynamic date calculation using JavaScript 📱 Responsive and clean UI This project helped me understand how to work with time-based logic and create engaging landing page components. 🔗 Live Demo: https://lnkd.in/gxAnkF3v 💻 GitHub Repo: https://lnkd.in/gPimcWEY Exploring how small features like countdowns can improve user engagement. 💻 #JavaScript #WebDevelopment #FrontendDeveloper #100DaysOfCode #CodingJourney
To view or add a comment, sign in
-
🚀 JavaScript forEach vs map — Know the Difference Like a Pro! Many developers use forEach and map interchangeably… but they serve completely different purposes 👀 Let’s break it down 👇 🔹 forEach() 👉 Executes a function for each element 👉 Perfect for side effects (logging, updating UI, API calls) 👉 ❌ Does NOT return a new array 💡 Use it when you just want to do something, not transform data 🔹 map() 👉 Transforms each element 👉 ✅ Returns a new array 👉 Ideal for rendering lists (especially in React ⚛️) 💡 Use it when you want to create something new from existing data ⚡ Quick Rule to Remember: ➡️ Need a new array? → map() ➡️ Just looping? → forEach() 🧠 Pro Tip: Overusing forEach when you actually need map can make your code less clean and harder to scale! 💬 Which one do you use more in your projects — forEach or map? #JavaScript #WebDevelopment #FrontendDevelopment #ReactJS #ProgrammingTips #CodingLife #SoftwareDeveloper #LearnToCode #100DaysOfCode #DevCommunity
To view or add a comment, sign in
-
🚀 Day 40 of My Full Stack Development Journey Today I stepped into one of the most exciting parts of JavaScript — the DOM (Document Object Model) 🌐⚡ Here’s what I explored today: 🔹 What is DOM? – Understanding how JavaScript interacts with HTML 🔹 DOM Manipulation – Dynamically changing web pages 🔹 Selecting Elements – By ID, Class, Tag Name & Query Selectors 🔹 Setting Content – Updating text and HTML dynamically 🔹 Manipulating Attributes & Styles – Changing appearance using JS 🔹 classList Property – Adding/removing classes easily 🔹 DOM Navigation – Traversing elements on a page 🔹 Adding & Removing Elements – Creating dynamic UI Also solved practice questions and 5 assignment problems 💻 This feels like a huge step — now I can actually make web pages interactive and dynamic! Excited to build real projects using DOM 🚀 #FullStackJourney #WebDevelopment #JavaScript #DOM #LearningInPublic #100DaysOfCode #CodingJourney
To view or add a comment, sign in
-
🚀Day 18 — Event Delegation in JavaScript (Simplified) Handling events efficiently is key when working with the DOM 🚀 --- 🔍 The Problem 👉 Attaching event listeners to multiple elements can be inefficient document.querySelectorAll("li").forEach(item => { item.addEventListener("click", () => { console.log("Item clicked"); }); }); ❌ Adds multiple listeners ❌ Not scalable for dynamic elements --- ⚡ Solution: Event Delegation 👉 Attach a single event listener to a parent document.getElementById("list").addEventListener("click", (e) => { if (e.target.tagName === "LI") { console.log("Item clicked"); } }); --- 🧠 What’s happening? 👉 Events bubble up from child → parent 👉 Parent handles events for all children --- 🚀 Why it matters ✔ Better performance (fewer listeners) ✔ Works for dynamically added elements ✔ Cleaner code --- 💡 Real-world example 👉 Handling clicks in: Lists Tables Dynamic UI components --- 🔥 One-line takeaway: 👉 “Use one parent listener instead of many child listeners.” --- If you're working with dynamic UIs, this pattern is a must. #JavaScript #EventDelegation #WebDevelopment #Frontend #100DaysOfCode 🚀
To view or add a comment, sign in
-
🔍 JavaScript Bug You Might Have Seen (setTimeout vs Promise) You write this code: console.log("Start"); setTimeout(() => { console.log("Timeout"); }, 0); Promise.resolve().then(() => { console.log("Promise"); }); console.log("End"); What do you expect? Start Timeout Promise End But actual output is: Start End Promise Timeout This happens because of the Event Loop 📌 What is the Event Loop? 👉 The event loop is the mechanism that decides which task runs next in JavaScript’s asynchronous execution. 📌 Priority order (very important): 1️⃣ Call Stack (synchronous code) 2️⃣ Microtask Queue 3️⃣ Macrotask Queue 📌 What’s inside each queue? 👉 Microtask Queue (HIGH priority): ✔ Promise.then / catch / finally ✔ queueMicrotask ✔ MutationObserver 👉 Macrotask Queue (LOWER priority): ✔ setTimeout ✔ setInterval ✔ setImmediate ✔ I/O tasks ✔ UI rendering events Execution flow: ✔ Step 1: Run all synchronous code 👉 Start → End ✔ Step 2: Execute ALL microtasks 👉 Promise ✔ Step 3: Execute macrotasks 👉 setTimeout So final order becomes: Start End Promise Timeout 💡 Takeaway: ✔ Microtasks run before macrotasks ✔ Promises > setTimeout ✔ setTimeout(fn, 0) is NOT immediate 👉 Understand queues = master async JS 🔁 Save this for later 💬 Comment “event loop” if this made sense ❤️ Like for more JavaScript deep dives #javascript #frontend #codingtips #webdevelopment #js #developer
To view or add a comment, sign in
-
🚀 Just Built My First Dynamic Quote Generator! Excited to share a small project I’ve been working on using JavaScript DOM manipulation 🎯 💡 Features: ✔️ Generates random quotes ✔️ Changes background colors dynamically 🎨 ✔️ Uses concepts like textContent, setInterval, and DOM methods This project helped me understand: 👉 How to manipulate the DOM 👉 How to use arrays and random functions 👉 Difference between innerHTML and textContent 👉 Real-time UI updates 🔧 Tech Used: HTML | CSS | JavaScript Small steps, but moving forward consistently 💪 Next step: Adding animations and user input features 🚀 Would love your feedback and suggestions 🙌 #WebDevelopment #JavaScript #Frontend #Learning #CodingJourney #100DaysOfCode
To view or add a comment, sign in
-
Worked on a few small projects while learning JavaScript in the browser. Focused mainly on: • DOM manipulation • forms and validation • timers (setTimeout, setInterval) • localStorage Nothing complex, but enough to understand how things actually behave. Handling user input, updating the UI, storing data - all of it made JavaScript feel more practical. These small projects helped connect multiple concepts together instead of learning them in isolation. #javascript #webdevelopment #frontend
To view or add a comment, sign in
-
We often hear that JavaScript is single threaded. But at the same time, it handles API calls, timers, and UI updates smoothly. The reason is the Event Loop. Here is a simple way to understand it. Think in terms of 5 parts: 1. Call Stack This is where code runs right now. If something blocks here (like an infinite loop), everything else stops. 2. Web APIs The browser handles things like fetch, setTimeout, and events outside the main thread. When they are done, they send callbacks to queues. 3. Microtask Queue (high priority) This includes Promise callbacks and async/await. All microtasks run completely before anything else happens. -> If you keep adding microtasks (like recursive Promise.then), you can actually block rendering completely. 4. Macrotask Queue (low priority) This includes setTimeout, setInterval, and other tasks. Only one macrotask runs at a time. 5. Render After microtasks are done, the browser updates the UI (layout and paint). -> The browser decides when to paint — not strictly after every loop. Simple cycle: Run one macrotask → run all microtasks → update UI → repeat JavaScript isn’t non-blocking — the event loop just makes it feel that way. #javascript #frontend #reactjs #webdevelopment #softwareengineering #webperformance #systemdesign #Coding
To view or add a comment, sign in
-
-
Random Quote Generator | No API 🚀 Build a complete Random Quote Generator using only HTML, CSS, and JavaScript, no API, no libraries, just pure Vanilla JavaScript. This is a perfect beginner JavaScript project to understand arrays, DOM manipulation, and Math.random(), great for your portfolio too! ✔ Features You'll Build: → Random quote display on button click → Curated quotes stored in JavaScript array → Smooth UI design with CSS → Copy quote to clipboard button → Clean modern dark/light UI 📚 JavaScript Concepts Covered: → JavaScript Arrays → Math.random() and Math.floor() → DOM manipulation → querySelector and textContent → Event listeners 🎯 Who Is This For? Perfect for beginners learning JavaScript who want real hands-on projects to strengthen DOM manipulation skills and build an impressive frontend portfolio. 👉 Watch the full implemention here:https://lnkd.in/dXQyH6Hn #javascript #quotegenerator #youtube #javascriptproject #beginnerjavascript #htmlcssjavascript #webdevelopment
To view or add a comment, sign in
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development