diff --git a/submissions/examples/before-after-image-slider-em/README.md b/submissions/examples/before-after-image-slider-em/README.md
new file mode 100644
index 00000000000..9eb2d10003b
--- /dev/null
+++ b/submissions/examples/before-after-image-slider-em/README.md
@@ -0,0 +1,48 @@
+# Before / After Comparison Slider
+
+## 1. What does this do?
+
+This is a self-contained example (resolves [#55696](https://github.com/SAPTARSHI-coder/EaseMotion-css/issues/55696)) that adds an interactive, draggable before/after image comparison slider — the kind used in design-portfolio and photo-retouching showcases to reveal a "before" and "after" state side by side.
+
+It includes two working instances:
+
+- **Darkroom grade** — a desaturated landscape scene sliding into a vivid color-graded version, demonstrating the component on illustrative imagery.
+- **Interface redesign** — a wireframe-style UI mockup sliding into its redesigned counterpart, demonstrating the component on flat UI content instead of a photo.
+
+Both instances share the same markup pattern and are driven entirely by one CSS custom property, `--clip-offset`.
+
+## 2. How is it used?
+
+Open `demo.html` in a browser — no build step, no dependencies. Drag the circular handle left/right, tap and swipe on mobile, or click the handle and use the **Left/Right arrow keys** to nudge the comparison point.
+
+The core pattern, consistent with the [component conventions](../../../README.md) used elsewhere in this repo:
+
+```html
+
+
+
...before content...
+
...after content...
+
+
+
+
+```
+
+```css
+.compare-layer--after {
+ clip-path: inset(0 calc(100% - var(--clip-offset)) 0 0);
+}
+```
+
+```js
+// script.js
+range.addEventListener("input", () => {
+ container.style.setProperty("--clip-offset", `${range.value}%`);
+});
+```
+
+The "after" layer sits on top of the "before" layer and is clipped from the right edge by `--clip-offset`. A native `` is stretched over the whole frame, fully transparent except for its thumb, which is styled to look like the visible handle grip. Because it's a real range input, dragging, touch swiping, and arrow-key nudging all come from the browser for free — `script.js` only has to copy the input's value onto the CSS variable.
+
+## 3. Why is it useful?
+
+Most before/after sliders reach for `mousemove`/`touchmove` listeners and manual position math, which means re-implementing drag physics, touch handling, and keyboard support separately. Anchoring the whole interaction to a single custom property and a native range input removes almost all of that: the browser already knows how to drag, swipe, and step a range control, and CSS already knows how to clip a layer — this component just wires the two together. That makes it easy to drop a second, third, or fourth instance onto a page (as the two examples here show) without writing any additional interaction code, only new markup for the before/after content itself.
diff --git a/submissions/examples/before-after-image-slider-em/demo.html b/submissions/examples/before-after-image-slider-em/demo.html
new file mode 100644
index 00000000000..6b48d3d0a04
--- /dev/null
+++ b/submissions/examples/before-after-image-slider-em/demo.html
@@ -0,0 +1,256 @@
+
+
+
+
+
+ Before / After Comparison Slider — EaseMotion CSS
+
+
+
+
+
+
+
+
+ One slider, one CSS custom property. Drag the grip, use the arrow keys, or touch
+ and swipe — --clip-offset does the rest, no JavaScript animation
+ loop required.
+
+
+
+
+
+
+
Darkroom grade
+ landscape · color grade
+
+
+
+
+
+
+
+ Before
+
+
+
+
+
+ After
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Interface redesign
+ UI mockup · wireframe to shipped
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Before
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ After
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
How the reveal works
+
+
+ 1
+
One custom property
+
+ Every slider sets --clip-offset on its own .compare
+ container. The "after" layer's clip-path reads that value —
+ nothing else needs to know it exists.
+
+
+
+ 2
+
A transparent range input
+
+ A native <input type="range"> sits on top, fully
+ transparent except for its thumb. That's what gives you drag, touch, and
+ keyboard arrow support for free.
+
+
+
+ 3
+
One line of JS
+
+ On input, script.js writes the range's value
+ straight to the CSS variable. No drag math, no pointer tracking, no
+ animation frame loop.
+