<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Melin.</title><description>A considered collection of notes on code, design, and the details of a better web.</description><link>https://melin.vercel.app/</link><item><title>Look! for…in and for…of Are Arguing Over There!</title><link>https://melin.vercel.app/blog/2026-10-17/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-17/</guid><description>Two JavaScript loops walk into ChinaJoy. Only one gets the photography job. By zhangxinxu · Original article Adapted for Medium, with updated technical explanations and a compan...</description><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Using the JavaScript Clipboard API to Improve Pasting in Input Fields</title><link>https://melin.vercel.app/blog/2026-10-16/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-16/</guid><description>Small formatting fixes can make everyday forms feel much more thoughtful. Based on the original article by zhangxinxu, with an additional walkthrough of the supplied event demo....</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Upload Images with a Paste: A Front-End JavaScript Guide</title><link>https://melin.vercel.app/blog/2026-10-13/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-13/</guid><description>Copy an image, press Ctrl+V or Command+V, and let the browser handle the rest. By zhangxinxu , adapted from the original article. Original publication note: Full reproduction re...</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>The Black Goat of the Drag-and-Drop Sacrifice: Understanding DataTransfer</title><link>https://melin.vercel.app/blog/2026-10-12/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-12/</guid><description>A front-end survival guide to drag data, drop effects, and the events that connect them. By zhangxinxu Adapted from the original article, with a companion demo using CustomEvent...</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Smooth Page Scrolling with CSS `scroll-behavior` and JavaScript `scrollIntoView()`</title><link>https://melin.vercel.app/blog/2026-10-11/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-11/</guid><description>Turn abrupt jumps into gentle transitions—and give your interfaces a little personality. Adapted from zhangxinxu’s original article, with updated technical notes and excerpts fr...</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate></item><item><title>How to Set and Get CSS Variables (`var()`) in HTML and JavaScript</title><link>https://melin.vercel.app/blog/2026-10-10/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-10/</guid><description>By zhangxinxu. Adapted from the original article. Changing a color in JavaScript does not require rewriting every CSS declaration that uses it. With CSS custom properties, you c...</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate></item><item><title>The Document Picture-in-Picture API: Picture-in-Picture for Any Element</title><link>https://melin.vercel.app/blog/2026-10-09/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-09/</guid><description>Keep images, controls, and small interactive interfaces visible while users work elsewhere. Adapted from zhangxinxu’s original article, with practical examples from the supplied...</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate></item><item><title>title</title><link>https://melin.vercel.app/blog/2026-10-08/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-08/</guid><description>title</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Picture-in-Picture for HTML5 Video: A Small Window with a Simple API</title><link>https://melin.vercel.app/blog/2026-10-08-picture-in-picture-for-html5-video-a-small-window-with-a-simple-/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-08-picture-in-picture-for-html5-video-a-small-window-with-a-simple-/</guid><description>Keep a video in view while you browse, read, or write code. Adapted from zhangxinxu’s original article, with practical examples from the supplied companion demo. You’re watching...</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Displaying MP3 Audio Waveforms with wavesurfer.js</title><link>https://melin.vercel.app/blog/2026-10-07/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-07/</guid><description>Turn an audio file into an interactive waveform—and give your interface a simple way to report what’s happening. By zhangxinxu , adapted from the original article. Original repr...</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Building a JavaScript Formatting Checker: Regex, Useful Interfaces, and Developer Impact</title><link>https://melin.vercel.app/blog/2026-10-06/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-06/</guid><description>Fan Group JS Basics Quiz #27: Written Q&amp;A By zhangxinxu Adapted from the original article, with practical examples from the accompanying browser demo. Original republication not...</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate></item><item><title>DOM Basics Quiz #27: A Few Things About Window Scrolling</title><link>https://melin.vercel.app/blog/2026-10-05/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-05/</guid><description>Where to listen, which measurements to read, and why the document behaves differently from an ordinary element. By zhangxinxu · Original article Adapted for Medium, with current...</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Using `document.scrollingElement` to Control the Page’s Scroll Position</title><link>https://melin.vercel.app/blog/2026-10-04/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-04/</guid><description>A clearer way to find the page’s scrolling element—and put it to work. By zhangxinxu · Original article Reproduction notice: Personal websites may reproduce the original article...</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate></item><item><title>A Deep Dive into the Node.compareDocumentPosition API</title><link>https://melin.vercel.app/blog/2026-10-03/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-03/</guid><description>Understanding DOM order, containment, and the bitmask that connects them. Adapted from the article by zhangxinxu , originally published at zhangxinxu.com. Original reproduction...</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate></item><item><title>DOM Quiz #28: Determining the Relative Order of DOM Nodes</title><link>https://melin.vercel.app/blog/2026-10-02/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-10-02/</guid><description>Two native APIs can save you a surprising amount of DOM traversal code. Adapted from zhangxinxu’s original article, with technical clarifications and examples from the supplied...</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate></item><item><title>CSS Scroll Snap: Detecting When Scrolling Stops—and Which Element Is Selected</title><link>https://melin.vercel.app/blog/2026-09-25/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-25/</guid><description>Let the browser handle snapping, then use JavaScript to keep your interface in sync. Adapted from zhangxinxu’s original article, published April 20, 2019, and updated June 12, 2...</description><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item><item><title>How to Upload and Download Images Styled with CSS Filters and Blend Modes</title><link>https://melin.vercel.app/blog/2026-09-24/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-24/</guid><description>Turn a CSS image preview into a bitmap you can save, share, or upload. Adapted from zhangxinxu’s original article, published April 20, 2019, at 23:30, under JavaScript Examples....</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate></item><item><title>An Introduction to the DOMParser and XMLSerializer APIs</title><link>https://melin.vercel.app/blog/2026-09-22/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-22/</guid><description>Turn markup into a document, work with its structure, and convert it back into text. Adapted from the original article by zhangxinxu. HTML often arrives as a string: a template,...</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HTML Audio: A Complete Guide to the Basic APIs</title><link>https://melin.vercel.app/blog/2026-09-21/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-21/</guid><description>Understand playback, loading, buffering, and the events that keep an audio interface in sync. Adapted from the original article by zhangxinxu, with technical clarifications and...</description><pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Introducing Moka: A Lightweight Way to Build and Deliver Static HTML Prototypes</title><link>https://melin.vercel.app/blog/2026-09-20/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-20/</guid><description>Develop with reusable components. Deliver ordinary HTML, CSS, and JavaScript. Original article by zhangxinxu. Read the original · Explore Moka on GitHub Republication notice: Th...</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>scrollTo and scrollBy: Two JavaScript APIs That Are Actually Somewhat Useful</title><link>https://melin.vercel.app/blog/2026-09-19/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-19/</guid><description>By zhangxinxu · Originally published July 27, 2019 Adapted with technical corrections and examples from the supplied demo. JavaScript offers plenty of ways to work with scrollin...</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item><item><title>I Wrote a Polyfill for Resizing Textareas in IE and Legacy Edge</title><link>https://melin.vercel.app/blog/2026-09-18/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-18/</guid><description>Giving an everyday form control a little more room to breathe. Adapted from zhangxinxu’s original article, with technical corrections and companion demo examples. A textarea can...</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Create and Download ZIP Files Entirely with Client-Side JavaScript</title><link>https://melin.vercel.app/blog/2026-09-17/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-17/</guid><description>Package SVG icons with JSZip, offer a browser download, and keep users informed along the way. Adapted from zhangxinxu’s original article. A tool that extracts individual icons...</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The Best Way to Implement Tooltips in the Modern Era</title><link>https://melin.vercel.app/blog/2026-09-16/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-16/</guid><description>How native HTML interactions, CSS anchor positioning, and shaped borders can simplify a familiar UI component. Adapted from an article by zhangxinxu , originally published on Se...</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Native JavaScript Form Validation: A Practical Guide to `checkValidity()` and Beyond</title><link>https://melin.vercel.app/blog/2026-09-15/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-15/</guid><description>Understand the browser’s validation tools—and connect them to an interactive, event-driven interface. Adapted from zhangxinxu’s original article, with updated technical explanat...</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate></item><item><title>A Detailed Introduction to JavaScript’s URL() and URLSearchParams() APIs</title><link>https://melin.vercel.app/blog/2026-09-14/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-14/</guid><description>Parse URLs, manage query parameters, and resolve relative paths with native JavaScript. Author: zhangxinxu Originally published: August 26, 2019 Editorial note: This edition upd...</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Watching the DOM: Five Ways to Detect Changes in JavaScript</title><link>https://melin.vercel.app/blog/2026-09-13/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-13/</guid><description>Understand what changed, choose the right signal, and keep your UI in sync. Adapted from zhangxinxu’s original article. Code examples are extracted and condensed from the suppli...</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Quick Tip: The Difference Between `innerText` and `textContent`</title><link>https://melin.vercel.app/blog/2026-09-12/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-12/</guid><description>How layout, hidden elements, and line breaks change the text JavaScript returns. For years, I treated innerText and textContent as interchangeable. Browser compatibility encoura...</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The Web Locks API: A Lifesaver When It Matters</title><link>https://melin.vercel.app/blog/2026-09-11/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-11/</guid><description>How to coordinate browser tabs, prevent competing uploads, and keep asynchronous work under control. By zhangxinxu . Adapted from the original article, with practical excerpts f...</description><pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate></item><item><title>A Quick Guide to `window.name`: What It Does and When It Helps</title><link>https://melin.vercel.app/blog/2026-09-10/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-10/</guid><description>A small browser property that can survive a page change—and a reminder that browser history shapes today’s APIs. Most JavaScript state disappears when you navigate to another pa...</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JS Intl Object: A Complete Introduction and Its Applications in Chinese</title><link>https://melin.vercel.app/blog/2026-09-09/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-09/</guid><description>Originally inspired by zhangxinxu’s 2019 article on the ECMAScript Internationalization API. This version is rewritten as a concise technical Medium-style introduction, with pra...</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Tip: Handling JavaScript Focus Without Page Scrolling or Repositioning</title><link>https://melin.vercel.app/blog/2026-09-08/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-08/</guid><description>By zhangxinxu Original source: https://www.zhangxinxu.com/wordpress/?p=8972 Managing focus is one of those small frontend details that can quietly make or break the user experie...</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Browser Native Lazy Loading for IMG Images with `loading=&quot;lazy&quot;`: A Practical Guide</title><link>https://melin.vercel.app/blog/2026-09-07/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-07/</guid><description>Native image lazy loading is one of those small HTML features that removes a surprising amount of JavaScript from everyday frontend work. Instead of watching scroll events, calc...</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Automatically Refresh an `&lt;a&gt;` Link or Reuse Its Already-Opened Browser Tab</title><link>https://melin.vercel.app/blog/2026-09-06/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-06/</guid><description>Opening the same page over and over again is a small UX problem that can quickly become annoying. A user clicks a link once, gets a new tab, then clicks the same link again and...</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Good Thing `document.readyState` Is Still Useful for Something After All</title><link>https://melin.vercel.app/blog/2026-09-05/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-05/</guid><description>For a long time, document.readyState felt like one of those browser APIs that looked useful in theory but rarely earned its place in real production code. It is old. It is simpl...</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Stop Using IndexedDB for Large Files. Use OPFS Instead.</title><link>https://melin.vercel.app/blog/2026-09-04/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-04/</guid><description>Based on the article by zhangxinxu, published September 3, 2026. Original source: https://www.zhangxinxu.com/wordpress/?p=12379 For years, IndexedDB has been the default answer...</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JS Methods for Detecting Whether a Browser Supports a CSS Property</title><link>https://melin.vercel.app/blog/2026-09-03/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-03/</guid><description>CSS feature detection is most useful when you are about to rely on a property or value that may not exist everywhere. The right approach is not browser sniffing. Instead, ask th...</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate></item><item><title>How to Use JavaScript to Turn a Relative URL Into an Absolute URL</title><link>https://melin.vercel.app/blog/2026-09-02/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-02/</guid><description>In real project development, you will often receive a relative URL and need to normalize it into a full absolute URL. For example: This is useful when processing links, normaliz...</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate></item><item><title>How I Pass Parameters from CSS to JavaScript</title><link>https://melin.vercel.app/blog/2026-09-01/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-09-01/</guid><description>CSS is often better than JavaScript at answering environment questions. It can detect viewport size, dark mode, pointer behavior, hover support, reduced motion preferences, and...</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Understanding 3D LUT Color Mapping: From Color Cubes to a JavaScript Demo Shell</title><link>https://melin.vercel.app/blog/2026-08-31/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-31/</guid><description>3D LUT filters are one of the core tools behind cinematic color grading. At a high level, a 3D LUT is a lookup table that remaps one RGB color to another RGB color. Instead of c...</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Detecting DOM Size Changes: A Brief Introduction to JavaScript’s `ResizeObserver`</title><link>https://melin.vercel.app/blog/2026-08-30/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-30/</guid><description>MutationObserver is useful when you need to detect changes to DOM nodes, attributes, or text content. But for a long time, detecting size changes was less direct. Developers oft...</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>ES6 Math Methods and Number Features: A Practical Guide</title><link>https://melin.vercel.app/blog/2026-08-29/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-29/</guid><description>JavaScript numbers look simple at first: one Number type, one global Math object, and a handful of familiar methods like Math.round() , Math.floor() , and parseInt() . ES6 made...</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate></item><item><title>JS Pure Front-End Audio Trimming: Cut, Copy, Play, and Upload Audio in the Browser</title><link>https://melin.vercel.app/blog/2026-08-28/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-28/</guid><description>Users often upload full audio files when your product only needs a short clip. A typical music file may run 3-5 minutes, but the business requirement might only need the first 1...</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Practical Notes on JavaScript Events for Two-Finger Image Zoom on Mobile</title><link>https://melin.vercel.app/blog/2026-08-28-practical-notes-on-javascript-events-for-two-finger-image-zoom-o/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-28-practical-notes-on-javascript-events-for-two-finger-image-zoom-o/</guid><description>Implementing image zoom on mobile sounds simple until you try to debug real two-finger gestures in the browser. The tricky part is not only applying transform: scale() to an ima...</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A Handy Tip for Passing Parameters with JavaScript `CustomEvent`</title><link>https://melin.vercel.app/blog/2026-08-26/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-26/</guid><description>JavaScript events are not limited to browser-native interactions like clicks, typing, or mouse movement. You can also create your own events, dispatch them manually, and pass da...</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A Practical Polyfill for the New CSS `attr()` Syntax</title><link>https://melin.vercel.app/blog/2026-08-09/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-09/</guid><description>Inspired by Zhang Xinxu’s original article on CSS attr() polyfilling, with updated context for modern browser support. For years, CSS attr() was useful but frustratingly limited...</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Cleverly Using CSS `var()` Variables to Implement Arbitrary Custom CSS Syntax</title><link>https://melin.vercel.app/blog/2026-08-06/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-06/</guid><description>CSS custom properties are usually introduced as reusable values: But they are more powerful than that. A custom property can store almost any token sequence, including syntax th...</description><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title>ES6 Template Strings in HTML Template Rendering</title><link>https://melin.vercel.app/blog/2026-08-04/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-04/</guid><description>ES6 template strings, also called template literals, are one of those JavaScript features that feel small at first, then quietly remove a lot of friction from everyday UI work....</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item><item><title>On a Sunday afternoon, while sitting in my study, I suddenly wondered: if an element, such as a `&lt;label&gt;` element, could respond to the state changes of a radio button or checkbox no matter where it is on the page, wouldn’t that make it possible to handle almost every click interaction on the page in one shot? That would be seriously awesome!</title><link>https://melin.vercel.app/blog/2026-08-03/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-03/</guid><description>But is it actually that awesome? Let’s take a closer look. The Starting Point: Most Click Interactions Are State Toggles If we strip many common click interactions down to their...</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Trying JavaScript `IntersectionObserver` to Link Headings and Navigation</title><link>https://melin.vercel.app/blog/2026-08-02/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-02/</guid><description>Long documentation pages often need a table of contents that follows the reader. As the user scrolls, the navigation item for the current section should become active. The tradi...</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>It Turns Out the DOM Has a JavaScript API Called `toggleAttribute()`</title><link>https://melin.vercel.app/blog/2026-08-01/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-08-01/</guid><description>For years, when I needed to work with DOM attributes, I reached for the familiar set: These APIs are everywhere. They are old, stable, and easy to remember. So I assumed that wa...</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Several Subtle Differences Between Common DOM APIs With Overlapping Functionality</title><link>https://melin.vercel.app/blog/2026-07-31/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-31/</guid><description>JavaScript’s DOM APIs often look interchangeable. In many cases, two methods can produce the same visible result, which makes it tempting to treat them as stylistic alternatives...</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Screen.isExtended, getScreenDetails, and Multi-Display Development</title><link>https://melin.vercel.app/blog/2026-07-30/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-30/</guid><description>Modern web apps are increasingly used in workspaces with more than one display: dashboards, trading terminals, presentation tools, support consoles, payment flows, and monitorin...</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Why `keyCode` Is No Longer Recommended: Understanding `event.key` and `event.code`</title><link>https://melin.vercel.app/blog/2026-07-29/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-29/</guid><description>By Zhang Xinxu. Adapted from the original article at zhangxinxu.com. Keyboard events look simple until you try to handle real-world input. For years, many JavaScript examples us...</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Cleverly Using DOM APIs to Escape and Unescape HTML Characters</title><link>https://melin.vercel.app/blog/2026-07-28/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-28/</guid><description>Escaping and unescaping HTML is one of those tasks that looks simple until you start thinking about every character, browser behavior, and execution environment. Most developers...</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Three Ways to Import External CSS in Web Components</title><link>https://melin.vercel.app/blog/2026-07-20/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-20/</guid><description>Shadow DOM gives Web Components one of their most useful superpowers: style isolation. A component can define its own markup and CSS without leaking styles into the page or bein...</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate></item><item><title>How Can JavaScript Detect Whether the User Has Zoomed the Page?</title><link>https://melin.vercel.app/blog/2026-07-19/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-19/</guid><description>Page zoom sounds simple until you try to detect it reliably. On desktop, users usually zoom with Ctrl + , Ctrl - , or the browser menu. On mobile, users pinch to zoom. Those two...</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate></item><item><title>A Practical Guide to Converting HTML Strings into DOM Nodes</title><link>https://melin.vercel.app/blog/2026-07-18/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-18/</guid><description>Converting an HTML string into real DOM nodes sounds simple, but the browser gives us several APIs with different tradeoffs. Some are fast, some are safer, some require a valid...</description><pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Using ffmpeg.wasm to Implement Multi-Audio and Video Compositing Entirely on the Front End</title><link>https://melin.vercel.app/blog/2026-07-17/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-17/</guid><description>Front-end video generation sounds simple until audio enters the picture. If all you need is visual recording, the browser already gives you several options. canvas.captureStream...</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Using `navigator.connection.downlink` to Measure Network Speed on the Front End</title><link>https://melin.vercel.app/blog/2026-07-16/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-16/</guid><description>For feed-style products like Weibo, image lists are everywhere. On mobile, those images are often served as 2x or even 3x assets to preserve visual quality on high-density scree...</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>First Impressions of Vap, Tencent’s Open-Source Solution for Playing Cool Animations</title><link>https://melin.vercel.app/blog/2026-07-15/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-15/</guid><description>A colleague recently mentioned Vap in our group chat. The description was simple: it can play flashy animation effects, and more importantly, it supports transparent animation b...</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate></item><item><title>JS Video Decoding: An Out-of-the-Box Review of JSMpeg and Broadway</title><link>https://melin.vercel.app/blog/2026-07-14/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-14/</guid><description>Last week, I tried Vap , a player that can use WebGL to decode and play videos, and wrote an article documenting the experience. Someone commented under that article: if all I w...</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Safari Does Not Support Built-In Custom Elements: A Practical Compatibility Strategy</title><link>https://melin.vercel.app/blog/2026-07-13/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-13/</guid><description>Based on Zhang Xinxu’s discussion of Safari’s Web Components limitations, with practical implementation examples from the demo code. Safari supports autonomous custom elements ,...</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Understanding `Promise.all()`, `Promise.race()`, and `Promise.any()`</title><link>https://melin.vercel.app/blog/2026-07-12/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-12/</guid><description>JavaScript gives us several ways to coordinate multiple asynchronous operations. Three of the most useful are Promise.all() , Promise.race() , and Promise.any() . They all accep...</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Triggering a JavaScript `change` Event When Assigning `input.value`</title><link>https://melin.vercel.app/blog/2026-07-11/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-11/</guid><description>In the browser, user interaction and JavaScript assignment are not treated the same way. When a user types, pastes, or drops text into an , the browser fires an input event. Whe...</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Front-End News: `setHTML()` and `Element.startViewTransition()` Are Now Supported</title><link>https://melin.vercel.app/blog/2026-07-10/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-10/</guid><description>Two DOM APIs quietly became much more interesting recently: Element.setHTML() and Element.startViewTransition() . The first gives the browser a native way to insert HTML while a...</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Use the CSS `revert` Global Keyword to Restore an Element’s `display`</title><link>https://melin.vercel.app/blog/2026-07-09/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-09/</guid><description>Small CSS details often cause the most confusing UI bugs. Here is a common front-end requirement: show only the first three list items by default, then reveal the remaining item...</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Proxy Is for Proxies. What Is `Reflect` For?</title><link>https://melin.vercel.app/blog/2026-07-08/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-08/</guid><description>JavaScript’s Proxy feels immediately useful: it lets you intercept property reads, writes, function calls, construction, and more. Reflect , at first glance, feels less dramatic...</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Using Deprecated HTML `rel=&quot;import&quot;` to Build Static Page Includes</title><link>https://melin.vercel.app/blog/2026-07-07/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-07/</guid><description>HTML Imports are dead. No modern browser supports them as an official platform feature anymore, and that sounds like bad news. But for static HTML demos, documentation pages, an...</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate></item><item><title>ogv.js: Making WebM Play on iPhone with JavaScript Decoding</title><link>https://melin.vercel.app/blog/2026-07-06/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-06/</guid><description>Web video compatibility is usually simple until it is not. Most of the time, you reach for the native element, encode an MP4, and move on. But some real-world mobile browsers co...</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>File Uploads Can Be Triggered Without Using an `input type=&quot;file&quot;`</title><link>https://melin.vercel.app/blog/2026-07-05/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-05/</guid><description>For a long time, file uploads on the web have meant one thing: an element with type=&quot;file&quot; . It is simple, reliable, and still very capable. You can use accept to limit selectab...</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>When Should JavaScript `WeakMap` Be Used?</title><link>https://melin.vercel.app/blog/2026-07-05-when-should-javascript-weakmap-be-used/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-05-when-should-javascript-weakmap-be-used/</guid><description>Most JavaScript applications can run perfectly well without WeakMap . That is part of what makes WeakMap easy to ignore. It is not a daily-use feature like Array.map() , Promise...</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Minimal JavaScript Clipboard Copying: From `execCommand()` to the Clipboard API</title><link>https://melin.vercel.app/blog/2026-07-03/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-03/</guid><description>Copying text to the clipboard looks like a tiny feature until you need it to work reliably across browsers, old enterprise environments, local demos, and modern HTTPS applicatio...</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Broaden Your Horizons: Web Development API Properties That Start With `current`</title><link>https://melin.vercel.app/blog/2026-07-02/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-02/</guid><description>In web development, we often use familiar properties like target , src , style , or value . But scattered across browser APIs are several less obvious properties that start with...</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Starting From `visibilitychange` Not Working in Safari</title><link>https://melin.vercel.app/blog/2026-07-01/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-07-01/</guid><description>The visibilitychange event has been around for a long time. I first wrote about it back in 2012 in an article introducing the Page Visibility API. At the time, it felt like a cl...</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Browsers Now Natively Support JSON Module Imports for Development</title><link>https://melin.vercel.app/blog/2026-06-30/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-30/</guid><description>Original article by zhangxinxu. Source: https://www.zhangxinxu.com/wordpress/?p=12241. This adaptation preserves the original author, source, and links. For years, importing JSO...</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Deep Dive Into JavaScript Randomness: `Math.random()` vs `crypto.getRandomValues()`</title><link>https://melin.vercel.app/blog/2026-06-29/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-29/</guid><description>Random numbers show up everywhere in JavaScript: temporary IDs, animations, randomized UI effects, shuffling lists, lottery-style selection, tokens, UUIDs, encryption keys, and...</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>When Should JavaScript Tagged Templates Be Used?</title><link>https://melin.vercel.app/blog/2026-06-28/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-28/</guid><description>JavaScript template strings are familiar to most developers: They make string interpolation readable and convenient. But JavaScript also has a more advanced form: tagged templat...</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>An Audio Player Component Built with howler.js</title><link>https://melin.vercel.app/blog/2026-06-27/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-27/</guid><description>Originally published by zhangxinxu on March 15, 2022, under “JS Examples.” Source: Xin Space - Xin Life. Audio playback looks simple until you need a real player: playlist navig...</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Detecting Font Loading Failure or Completion with the JavaScript FontFace API</title><link>https://melin.vercel.app/blog/2026-06-26/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-26/</guid><description>Custom fonts can make an interface feel polished, but they also introduce a timing problem: the browser may render text before the font file has finished loading. When that happ...</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>A Deep Dive into JavaScript’s `new Function` Syntax</title><link>https://melin.vercel.app/blog/2026-06-25/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-25/</guid><description>Most JavaScript developers rarely need new Function . In day-to-day frontend or Node.js work, a regular function or arrow function is usually clearer, safer, and easier to maint...</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title>JS and Barcode Generation: A Practical Guide for the Web</title><link>https://melin.vercel.app/blog/2026-06-24/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-24/</guid><description>Barcodes feel old compared with QR codes, but they still solve a useful problem: turning short pieces of structured text into simple, machine-readable graphics. With JavaScript,...</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How to Prevent a Page From Restoring Its Previous Scroll Position After Refresh</title><link>https://melin.vercel.app/blog/2026-06-23/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-23/</guid><description>Browsers try to be helpful. When a user refreshes a page normally, such as by clicking the refresh button or pressing F5 , the browser often restores the page to the same scroll...</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How to Inherit Custom Elements and Extend Methods Across JavaScript Files</title><link>https://melin.vercel.app/blog/2026-06-22/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-22/</guid><description>Web Components give us a native way to build reusable UI primitives. But once you start building more than one custom element, a practical question appears quickly: What should...</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate></item><item><title>JS `replaceAll` and `matchAll` Usage Guide, Not a Misguide</title><link>https://melin.vercel.app/blog/2026-06-21/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-21/</guid><description>String processing in JavaScript looks simple until user input, repeated matches, regular expressions, and captured groups enter the room. Two modern APIs help a lot here: - Stri...</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Building a Feishu-Style `@` Mention Input Box with Plain JavaScript</title><link>https://melin.vercel.app/blog/2026-06-20/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2026-06-20/</guid><description>A Feishu-style OKR input box looks simple from the outside: type @ , choose a person, insert a clean mention token, hover it for details, and press Enter to submit. Under the ho...</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Don’t get it mixed up, it’s not text; it’s the CSS font-size-adjust property</title><link>https://melin.vercel.app/blog/2025-02-17/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2025-02-17/</guid><description>Learn how to use the CSS font-size-adjust property to improve font legibility across different fonts. This blog explains its benefits for responsive design and accessibility, with practical tips and examples.</description><pubDate>Mon, 17 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Are you familiar with the purpose of the new with method in JavaScript Arrays?</title><link>https://melin.vercel.app/blog/2025-02-13/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2025-02-13/</guid><description>Explore the new with method in JavaScript Arrays! Learn how this feature improves array manipulation, boosts code readability, and enhances performance with practical examples.</description><pubDate>Thu, 13 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Introduction to the Broadcast Channel API: Enabling Broadcast Communication Across Web Page</title><link>https://melin.vercel.app/blog/2025-01-13/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2025-01-13/</guid><description>Discover how the Broadcast Channel API enables seamless communication between browser tabs, windows, and iframes. Learn how to implement it for real-time data sharing in modern web applications. A must-read for frontend developers!</description><pubDate>Mon, 13 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Introducing CSS @scope—it’s finally here!</title><link>https://melin.vercel.app/blog/2025-01-04/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2025-01-04/</guid><description>Learn how the CSS @scope rule helps you limit the scope of styles to specific elements, improving maintainability and reducing conflicts in large projects. This guide is perfect for frontend developers looking to master scoped styling in modern web development.</description><pubDate>Sat, 04 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Say goodbye to pointer-events: none and effectively disable with the HTML inert attribute</title><link>https://melin.vercel.app/blog/2025-01-03/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2025-01-03/</guid><description>Learn how the HTML inert attribute disables interactions with elements, improving accessibility and user experience in modals and UI components. A must-read for frontend developers focused on optimizing web apps.</description><pubDate>Fri, 03 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Times have changed, and now it’s time to use the native popover attribute to create dropdowns</title><link>https://melin.vercel.app/blog/2024-12-31/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-31/</guid><description>Discover how to create lightweight, accessible dropdowns using the native HTML popover attribute. This guide covers implementation, best practices, and tips for responsive, interactive menus without external libraries.</description><pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate></item><item><title>A New CSS Relative Color Syntax – Using from and calc()</title><link>https://melin.vercel.app/blog/2024-12-25/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-25/</guid><description>Explore the new CSS relative color syntax using from and calc() to create dynamic and responsive color schemes. This guide explains how to leverage these features for flexible, context-aware designs that adapt to different screen sizes and user interactions.</description><pubDate>Wed, 25 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Powerful JavaScript — How to Use JS to Access System Information such as Memory, CPU/GPU, Battery, and More</title><link>https://melin.vercel.app/blog/2024-12-24/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-24/</guid><description>Learn how to use JavaScript to access critical system information like memory, CPU/GPU usage, battery status, and more. This guide provides practical examples and tips for frontend developers to monitor and optimize web performance based on real-time system data.</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate></item><item><title>How to Display Slogans More Effectively - A Quick Guide to Understanding the text-wrap: balance CSS Property</title><link>https://melin.vercel.app/blog/2024-12-20/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-20/</guid><description>Explore the text-wrap: balance property in CSS to create balanced and aesthetically pleasing text layouts. This guide explains how to use this property to improve readability and design consistency across your web pages.</description><pubDate>Fri, 20 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Filling in the Gaps: The HTML nonce and popover attributes you might not know about</title><link>https://melin.vercel.app/blog/2024-12-19/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-19/</guid><description>Understand the functionality of the HTML nonce and popover attributes and how they enhance security and user experience. This guide provides an in-depth look at how to use these attributes effectively in your web projects to prevent XSS attacks and create interactive UI elements.</description><pubDate>Thu, 19 Dec 2024 00:00:00 GMT</pubDate></item><item><title>The Good One For Performance Observer-elementtiming Attribute in HTML</title><link>https://melin.vercel.app/blog/2024-12-17/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-17/</guid><description>Learn how to use the elementtiming attribute in HTML to measure key content loading performance. This guide explains its functionality and provides examples to help frontend developers optimize web page rendering and improve user experience.</description><pubDate>Tue, 17 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Boost Page Loading Speed -  Resource Loading Priorities in Web Pages</title><link>https://melin.vercel.app/blog/2024-12-16/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-16/</guid><description>Optimize your web performance by understanding resource loading priorities in web pages. This guide covers how browsers prioritize loading scripts, styles, and images, offering tips for frontend developers to enhance site speed and user experience.</description><pubDate>Mon, 16 Dec 2024 00:00:00 GMT</pubDate></item><item><title>That’s right, Web pages can also keep the screen from turning off.</title><link>https://melin.vercel.app/blog/2024-12-13/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-13/</guid><description>Discover the new Screen Wake Lock API that prevents screens from turning off while using web pages. Learn how to implement this feature to enhance user experience in web apps requiring continuous screen visibility.</description><pubDate>Fri, 13 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Become an Image Processing Pro With SVG-4: Achieve text thinning or thickening effects using SVG instead of CSS</title><link>https://melin.vercel.app/blog/2024-12-12/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-12/</guid><description>Master image processing with SVG by learning advanced techniques like filters, masks, and clipping paths. This guide offers practical examples and tips for frontend developers to create stunning visuals and dynamic web graphics.</description><pubDate>Thu, 12 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Become an Image Processing Pro With SVG-3: Use the feMerge filter to replicate the visual effects of any DOM element’s style.</title><link>https://melin.vercel.app/blog/2024-12-11/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-11/</guid><description>Master image processing with SVG by learning advanced techniques like filters, masks, and clipping paths. This guide offers practical examples and tips for frontend developers to create stunning visuals and dynamic web graphics.</description><pubDate>Wed, 11 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Become an Image Processing Pro With SVG-2: Understanding the &lt;feGaussianBlur&gt; and &lt;feDropShadow&gt;</title><link>https://melin.vercel.app/blog/2024-12-10/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-10/</guid><description>Master image processing with SVG by learning advanced techniques like filters, masks, and clipping paths. This guide offers practical examples and tips for frontend developers to create stunning visuals and dynamic web graphics.</description><pubDate>Tue, 10 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Become an Image Processing Pro With SVG-1: Understanding the &lt;feBlend&gt; Element</title><link>https://melin.vercel.app/blog/2024-12-09/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-09/</guid><description>Master image processing with SVG by learning advanced techniques like filters, masks, and clipping paths. This guide offers practical examples and tips for frontend developers to create stunning visuals and dynamic web graphics.</description><pubDate>Mon, 09 Dec 2024 00:00:00 GMT</pubDate></item><item><title>An Initial Experience with the Page-Level Visual Animations of the View Transitions API</title><link>https://melin.vercel.app/blog/2024-12-06/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-06/</guid><description>Explore the View Transitions API for creating seamless page-level visual animations. This guide explains how to use this cutting-edge API to enhance user experience with smooth transitions, offering practical tips and examples for frontend developers.</description><pubDate>Fri, 06 Dec 2024 00:00:00 GMT</pubDate></item><item><title>A Simpler Way to Create Page Scroll Animations: Unlocking New CSS Scroll Animations</title><link>https://melin.vercel.app/blog/2024-12-05/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-05/</guid><description>Discover a simpler approach to creating page scroll animations with the latest CSS scroll animation features. This guide explores how to implement smooth, engaging animations effortlessly, offering tips and examples for frontend developers to elevate web design.</description><pubDate>Thu, 05 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Understanding Mathematical Functions in CSS: Creating animations using the round() function</title><link>https://melin.vercel.app/blog/2024-12-04/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-04/</guid><description>Learn how to leverage mathematical functions in CSS, like calc(), min(), max(), and clamp(), to create dynamic and responsive designs. This guide offers practical examples and tips for frontend developers to enhance layout flexibility and efficiency.</description><pubDate>Wed, 04 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Exploring the selectionchange Event in JavaScript: Notes from Practice</title><link>https://melin.vercel.app/blog/2024-12-03/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-03/</guid><description>Explore the selectionchange event in JavaScript to detect and respond to text selection changes on a webpage. This guide provides examples and use cases for frontend developers to enhance interactivity and user experience.</description><pubDate>Tue, 03 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Beyond the Grid: Exploring Use Cases for Subgrid in CSS Grid Layout</title><link>https://melin.vercel.app/blog/2024-12-01/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-12-01/</guid><description>Discover the power of Subgrid in CSS Grid Layout to create more precise and nested designs. This guide explains how Subgrid works, its practical use cases, and tips for leveraging it to build flexible, responsive layouts.</description><pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Aligning Content in CSS: Introduction to Grid - Part 7</title><link>https://melin.vercel.app/blog/2024-11-29/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-29/</guid><description>Master the fundamentals of CSS Grid with this comprehensive guide. Learn how to create flexible, responsive layouts using grid properties, practical examples, and best practices tailored for frontend developers.</description><pubDate>Fri, 29 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Aligning Content in CSS: Introduction to Grid - Part 6</title><link>https://melin.vercel.app/blog/2024-11-28/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-28/</guid><description>Master the fundamentals of CSS Grid with this comprehensive guide. Learn how to create flexible, responsive layouts using grid properties, practical examples, and best practices tailored for frontend developers.</description><pubDate>Thu, 28 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Aligning Content in CSS: Introduction to Grid - Part 5</title><link>https://melin.vercel.app/blog/2024-11-27/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-27/</guid><description>Master the fundamentals of CSS Grid with this comprehensive guide. Learn how to create flexible, responsive layouts using grid properties, practical examples, and best practices tailored for frontend developers.</description><pubDate>Wed, 27 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Aligning Content in CSS: Introduction to Grid - Part 4</title><link>https://melin.vercel.app/blog/2024-11-26/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-26/</guid><description>Master the fundamentals of CSS Grid with this comprehensive guide. Learn how to create flexible, responsive layouts using grid properties, practical examples, and best practices tailored for frontend developers.</description><pubDate>Tue, 26 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Modern CSS: Create a modal popup without javascript</title><link>https://melin.vercel.app/blog/2024-11-25/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-25/</guid><description>Learn how to create a fully functional modal using only CSS—no JavaScript required. This guide provides step-by-step instructions and best practices for frontend developers to build lightweight and accessible modals for modern web designs</description><pubDate>Mon, 25 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Unlocking Dynamic Layouts and Smooth Animations in CSS:Introducing calc-size and interpolate-size</title><link>https://melin.vercel.app/blog/2024-11-22/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-22/</guid><description>Explore the power of CSS properties calc-size and interpolate-size to create dynamic and responsive layouts. This guide explains their functionality with practical examples, helping frontend developers enhance design flexibility.</description><pubDate>Fri, 22 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Aligning Content in CSS: Introduction to Grid - Part 3</title><link>https://melin.vercel.app/blog/2024-11-21/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-21/</guid><description>Master the fundamentals of CSS Grid with this comprehensive guide. Learn how to create flexible, responsive layouts using grid properties, practical examples, and best practices tailored for frontend developers.</description><pubDate>Thu, 21 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Aligning Content in CSS: Introduction to Grid - Part 2</title><link>https://melin.vercel.app/blog/2024-11-20/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-20/</guid><description>Master the fundamentals of CSS Grid with this comprehensive guide. Learn how to create flexible, responsive layouts using grid properties, practical examples, and best practices tailored for frontend developers.</description><pubDate>Wed, 20 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Aligning Content in CSS: Introduction to Grid - Part 1</title><link>https://melin.vercel.app/blog/2024-11-19/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-19/</guid><description>Master the fundamentals of CSS Grid with this comprehensive guide. Learn how to create flexible, responsive layouts using grid properties, practical examples, and best practices tailored for frontend developers.</description><pubDate>Tue, 19 Nov 2024 00:00:00 GMT</pubDate></item><item><title>How to Easily Create a Mosaic Effect on Images with Simple Web Methods</title><link>https://melin.vercel.app/blog/2024-11-18/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-18/</guid><description>Learn how to create a stunning mosaic effect on images using CSS and JavaScript. This guide provides practical examples and tips for frontend developers to enhance their web design projects.</description><pubDate>Mon, 18 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Exploring the Risks and Applications of the Top Layer Feature</title><link>https://melin.vercel.app/blog/2024-11-17/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-17/</guid><description>Discover the applications and risks of the Top Layer feature in web development, including best practices for modals, pop-ups, and overlays.</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Be a master--the CSS Text Custom Highlight API</title><link>https://melin.vercel.app/blog/2024-11-16/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-16/</guid><description>Discover how to style text selections like never before with the CSS Text Custom Highlight API. This guide explains how to create custom highlights for search results, grammar corrections, and more, providing practical examples and tips for frontend developers to enhance user experience.</description><pubDate>Sat, 16 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Using CSS transitions and animations, you can create animation effects even with display: none.</title><link>https://melin.vercel.app/blog/2024-11-15/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-15/</guid><description>Learn how to create smooth animations with CSS transition-behavior. This guide covers its functionality, use cases, and best practices, helping frontend developers enhance user interactions effortlessly.</description><pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Differences Between Object.is and ===, Array .at() and Direct Indexing with [ ], and substring and slice</title><link>https://melin.vercel.app/blog/2024-11-13/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-13/</guid><description>Uncover the subtle differences between JavaScript methods like Object.is vs. == and substring vs. slice in this comprehensive guide. Designed for frontend developers, this article explores how these methods compare values and manipulate strings, highlighting practical use cases and performance considerations. Perfect for anyone looking to deepen their JavaScript knowledge, this guide demystifies common comparisons to help you write cleaner, more effective code.</description><pubDate>Wed, 13 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Understanding the Different Types of Light Source Filters in SVG</title><link>https://melin.vercel.app/blog/2024-11-12/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-12/</guid><description>Learn how to bring depth and visual effects to your graphics with SVG light source filters. This guide explores the different types of light sources available in SVG—such as feDistantLight, fePointLight, and feSpotLight—and how they impact your designs. Perfect for frontend developers and designers, this tutorial breaks down each filter type with examples, making it easy to add realistic lighting effects to your SVG elements.</description><pubDate>Tue, 12 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Aligning Content in CSS: How to Use the align-content Property Effectively</title><link>https://melin.vercel.app/blog/2024-11-11/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-11/</guid><description>Discover how to create visually balanced layouts using the CSS align-content property. This guide explains how align-content works in flexbox and grid layouts, covering its practical applications for aligning rows within containers. Ideal for frontend developers looking to enhance their CSS layout skills, this tutorial provides examples and best practices to help you master this essential property.</description><pubDate>Mon, 11 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Mastering Scroll Events: An Introduction to scrollend in JavaScript</title><link>https://melin.vercel.app/blog/2024-11-10/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-10/</guid><description>Learn how to enhance user experience with the JavaScript scrollend event in this beginner-friendly guide. We’ll dive into how scrollend works, explore its practical applications, and cover essential tips to detect the end of scrolling accurately. Perfect for frontend developers looking to optimize web interactions, this tutorial provides hands-on examples to make your web content more dynamic and engaging.</description><pubDate>Sun, 10 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Unlocking Image Effects: Transformations in Pixi.js</title><link>https://melin.vercel.app/blog/2024-11-08/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-11-08/</guid><description>Learn how to create dynamic and interactive image transformations using Pixi.js! This beginner-friendly guide covers essential tips, step-by-step instructions, and examples to help you enhance images with effects like scaling, rotation, and filters. Perfect for web developers looking to bring their visuals to life using Pixi.js.</description><pubDate>Fri, 08 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Everything about Lassa fever</title><link>https://melin.vercel.app/blog/2024-10-31/</link><guid isPermaLink="true">https://melin.vercel.app/blog/2024-10-31/</guid><description>Lassa fever, Epidemiology, Clinical Features, Transmission, Prevention Strategies</description><pubDate>Thu, 31 Oct 2024 00:00:00 GMT</pubDate></item></channel></rss>