🎨 I got tired of recoloring SVGs one at a time. You know that thing where you need 30 icons in a new brand color and you're sitting there doing find-and-replace on hex codes file by file? I kept doing that for way too long before I thought, okay, I should just automate this. So I built SVG Batch Recolor Tool. Here's how it works: 📋 Paste a bunch of SVG URLs 🎯 Pick a hex color ⚡ Hit recolor — all fills, strokes, and inline styles update instantly 👀 Live preview grid so you see what you're getting 📦 Download individually or grab everything as a ZIP It fetches the SVGs server-side (because CORS will ruin your afternoon otherwise), does the recoloring client-side with regex, and bundles the output with jszip. 🛠 Built with: Next.js 15 · React 19 · Tailwind v4 Honestly it's a simple tool. I just couldn't find one that worked the way I wanted, so here we are. The whole thing is open source 👇 🔗 Link: https://lnkd.in/gK-QQwi7 ♻️ Repost if this could save someone's afternoon. #webdev #nextjs #react #opensource #svg #developertools #frontend #javascript #typescript
Automate SVG Recoloring with SVG Batch Recolor Tool
More Relevant Posts
-
var was forgiving. Sometimes too forgiving. You could use a variable before declaring it and JavaScript would just... let you. No error. Just undefined. let and const changed that. Now the same pattern throws a ReferenceError. But here's what most explanations miss: the variable is hoisted. It exists. The engine knows about it. It just refuses to let you touch it. That window between the start of the scope and the declaration line has a name — the Temporal Dead Zone. The TDZ exists for a reason: catching bugs that var would silently swallow. Using a variable before it's defined is almost always a mistake. Now JavaScript tells you that instead of guessing. One place it catches even experienced devs off guard — default parameter values that reference each other. Do you always know where your TDZ is? 👇 #JavaScript #WebDevelopment #Frontend #JS #SoftwareEngineering
To view or add a comment, sign in
-
-
Just built the classic Snake Game using HTML, CSS, and JavaScript 🐍 The logic behind it was really interesting — especially handling movement, detecting collisions, and making the snake grow after eating food. This project helped me improve: • JavaScript logic building • DOM manipulation • Game loop concepts Still learning and exploring 🚀 Would love to hear your feedback! #JavaScript #WebDevelopment #Frontend #Projects #Learning
To view or add a comment, sign in
-
🔁 Understanding the forEach() loop in JavaScript The forEach() method is a simple way to iterate over arrays and perform an action for each element. 👉 Syntax: array.forEach((item, index) => { // logic here }); 👉 Example: const numbers = [1, 2, 3, 4]; numbers.forEach((num, index) => { console.log(`Index: ${index}, Value: ${num}`); }); 💡 Key Points: ✔️ Executes a function for each array element ✔️ Does not return a new array ✔️ Cannot break or use return to stop the loop If you need a return value, consider using map() instead. Small concepts like this build a strong JavaScript foundation 🚀 #JavaScript #WebDevelopment #Frontend #Coding #LearnToCode
To view or add a comment, sign in
-
JS challenge I solved today, Alhamdulillah: The Problem Write a panic() function that: i. Converts a sentence to uppercase ii. Adds ! at the end iii. Inserts a separator between words if it has more than one word My Thought Process I planned to: Split the string into words using split() Check if it has one word or multiple Use a normal space for single-word input Use a custom separator for multi-word input Then uppercase everything and add '!' The Mistake I initially made the logic more complex than necessary. The only thing that really changes is the separator. Clean Solution although different from the solution given by the teacher: What Clicked: Many problems feel big until you isolate the one part that actually changes. #javascript #frontend #learninginpublic #codingjourney
To view or add a comment, sign in
-
-
Hey network! 👋 I’ve been diving into learning JavaScript recently and wanted to share my latest practice project: a classic Simon Says Game! 🎮 Building this was a fantastic way to get hands-on experience with Vanilla JS, specifically focusing on DOM manipulation, event handling, and sequence logic. It was a fun challenge keeping track of the memory arrays and user inputs! 💻 Check out the code here: https://lnkd.in/gwGmr_37 🔗 Let's connect: https://lnkd.in/gtzKeBxq Thoughts and feedback are always welcome! #JavaScript #WebDevelopment #Frontend #CodingJourney #LearningToCode #Projects
To view or add a comment, sign in
-
Day 4 — Today was the day the web stopped being static for me. DOM manipulation. Sounds scary. Actually really fun. Built a simple to-do list from scratch — no libraries, no frameworks. Just vanilla JS touching the page directly. The moment I typed something in an input field and saw it appear on screen because of code I wrote... that feeling doesn't get old. Key thing I learned: event delegation. Instead of adding an event listener to every single element, you add one to the parent and let events bubble up. Cleaner and way more efficient. Also — preventDefault() is your best friend in form handling. Took me an embarrassing number of refreshing pages to learn that lesson. What was your first "I built this" moment in coding? #javascript #webdev #frontenddeveloper #learninpublic
To view or add a comment, sign in
-
-
🔍 JavaScript Bug You Might Have Seen (null vs undefined) You write this: let a; console.log(a); // ? let b = null; console.log(b); // ? Both look similar… But they are NOT the same. 💥 Output: undefined null Now here’s where it gets confusing 👇 console.log(null == undefined); // ? console.log(null === undefined); // ? 💥 Output: true false Wait… WHAT? 🤯 This happens because of how JavaScript treats them. 📌 What is undefined? 👉 A variable that is declared but NOT assigned a value 📌 What is null? 👉 A value that represents “intentional absence of value” (You explicitly set it) 📌 Then why this? null == undefined // true Because == does loose comparison 👉 It treats them as equal BUT: null === undefined // false Because === checks: ✔ Value ✔ Type 💡 Takeaway: ✔ undefined → JS gives it ✔ null → YOU assign it ✔ == → treats them equal ✔ === → they are different 👉 Use undefined for default/unassigned 👉 Use null when you intentionally want “no value” 🔁 Save this before it confuses you again 💬 Comment “null” if this clicked ❤️ Like for more JavaScript deep dives #javascript #frontend #codingtips #webdevelopment #js #developer
To view or add a comment, sign in
-
Turned my ASCII text scramble hover effect into a full-screen playground. Radial waves that expand from the cursor and scramble chars. Added a GUI for you to play with. Fun experiment but not sure it's very useful, might as well read some Lovecraft while you're there. Vanilla JS kept under 10k (gzipped) and only dependency is lil-gui for the control panel. → CodePen link: https://lnkd.in/dHrq789e #creativecoding #javascript #codepen #frontend #vanillajs
To view or add a comment, sign in
-
I just published a new open-source library: input-mask. I built it because input masking on the frontend often feels more annoying than it should be, especially in simple projects, forms, landing pages, and workflows where you just want to configure the field and move on. The idea is straightforward: apply input masks using HTML attributes only, without needing to write JavaScript just to initialize everything. You add the library via CDN, use attributes like data-mask="pattern" or data-mask="currency" on the input, and it handles the rest. Under the hood it uses IMask, but the whole point was to hide that complexity and make the implementation much more accessible. The first public version already supports: • pattern • regex • number • currency • date Repo: https://lnkd.in/e6pkj7wB CDN: https://lnkd.in/ebc7fdr5 If anyone wants to try it, share feedback, or suggest improvements, I’d love to hear it. #javascript #frontend #webdev #opensource #forms #nocode
To view or add a comment, sign in
-
JS Pop Quiz: Did we just overwrite the Admin?! Let’s see who really understands JavaScript memory allocation! 👨💻👩💻 Look at the code snippet from @codewithsarir. We have a user1 object. We assign it to user2, and then change user2's role to 'Guest'. Question: What does console.log(user1.role) actually print? A) 'Admin' (Because we only changed user2) B) 'Guest' (Because they share the same reference) C) undefined D) It throws a TypeError Hint: Think about how JavaScript handles Objects versus Primitive types like strings. Does = make a copy, or just point to the same address? 🤔 Drop your guess in the comments before you test it in your IDE! 👇 Hashtags: #JavaScript #CodingQuiz #WebDesign #ProgrammerLife #Developers #LearnToCode #JS #Frontend #creators #codinglife #programmer
To view or add a comment, sign in
-
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