Junk Drawer Lemon DOM Vanilla JS · No build step

A tiny visual effects library

Lemon DOM

Juicy UI effects for plain old websites.

No framework. No build step. No dependency pulp. Drop three files into any page, add a few data attributes, and call LemonDOM.init().

Live preview All effects active

Press. Glow. Release.

Glass surface, cursor bloom, tactile squeeze, and a whisper of zest — working together in one panel.

Move cursor · press and hold · release

What it does

Five effects. One small API.

Each effect is opt-in via a data attribute or a method call. Mix them freely, customize with CSS variables, and keep your markup boring on purpose.

01

Glass

data-lemon-glass

Frosted surfaces with blur, soft borders, and inner light.

02

Juice

data-lemon-juice

Cursor-follow bloom using --lemon-x and --lemon-y.

03

Squeeze

data-lemon-squeeze

Tactile press feedback with subtle compression and spring.

04

Zest

data-lemon-zest

CSS-only grain for a quieter, more analog finish.

05

Peel

data-lemon-peel

Scroll-triggered reveal via IntersectionObserver.

Interactive gallery

A composed demo grid — one featured surface, focused examples, and a peel reveal waiting below the fold.

Basic usage

Three files. One init call.

Download or clone this repo, link the stylesheet and script, mark up your elements, then initialize. Per-element tuning lives in CSS custom properties.

<link rel="stylesheet" href="lemon-dom.css">
<script src="lemon-dom.js" defer></script>

<article
  data-lemon-glass
  data-lemon-juice
  data-lemon-squeeze
  style="--lemon-blur: 24px; --lemon-accent: #ffe66d;"
>
  Your card content
</article>

Credit where it's due

Inspired by Liquid DOM.

A respectful tribute

Inspired by the experimental visual direction of Liquid DOM by Andrew Prifer. Lemon DOM is a lightweight vanilla-web tribute built for practical everyday sites — not affiliated, not a clone, and not claiming feature parity.

Fallbacks

Glass degrades to a solid translucent surface without backdrop-filter. Peel, squeeze, and juice honor prefers-reduced-motion.