Melin's Blog

Latest posts

See all posts
  • Understanding 3D LUT Color Mapping: From Color Cubes to a JavaScript Demo Shell
    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...
  • Detecting DOM Size Changes: A Brief Introduction to JavaScript’s `ResizeObserver`
    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...
  • ES6 Math Methods and Number Features: A Practical Guide
    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...
  • Practical Notes on JavaScript Events for Two-Finger Image Zoom on Mobile
    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...
  • JS Pure Front-End Audio Trimming: Cut, Copy, Play, and Upload Audio in the Browser
    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...
© 2026 • Melin
Press Esc or click anywhere to close