Skip to content

fix: add zoom-in duplicate class bug demo (fixes #872)#875

Open
Krish0703-irl wants to merge 1 commit into
SAPTARSHI-coder:mainfrom
Krish0703-irl:feature/zoom-in-duplicate-fix
Open

fix: add zoom-in duplicate class bug demo (fixes #872)#875
Krish0703-irl wants to merge 1 commit into
SAPTARSHI-coder:mainfrom
Krish0703-irl:feature/zoom-in-duplicate-fix

Conversation

@Krish0703-irl
Copy link
Copy Markdown

Pull Request Description

This submission demonstrates the .ease-zoom-in duplicate class bug in core/animations.css
by showing both conflicting animations side-by-side, making it easy for the maintainer
to visually confirm the correct behavior before fixing it in core.

Related issue: #872


Type of Change

  • ✨ New animation / hover effect
  • 🧩 New component
  • 📝 Documentation improvement
  • 🐛 Bug fix in an existing submission
  • Other (describe below)

Submission Checklist

  • All changes are inside submissions/examples/ZoomIn-Duplicate-Fix/
  • Includes demo.html — self-contained, opens in browser with no server
  • Includes style.css — raw CSS for the proposed feature
  • Includes README.md — what it does, how to use it, why it fits EaseMotion CSS
  • No changes to core/
  • No changes to components/
  • One feature per PR (no bundled unrelated changes)

Feature Description

What does this add?
A side-by-side demo exposing the .ease-zoom-in duplicate class bug where two
different @keyframes blocks produce conflicting behavior and one is dead code.

How does a developer use it?

<div class="ease-zoom-in">I animate in correctly</div>

Why does it fit EaseMotion CSS?
EaseMotion CSS is animation-first and consistency is core to its philosophy.
Having two definitions of .ease-zoom-in referencing different keyframes breaks
that consistency — one animates from scale(0) with no opacity change, the other
from opacity:0, scale(0.85) using design tokens. The second definition silently
wins via CSS cascade, making the first dead code. This demo makes the case for
cleaning up the duplicate so the framework behaves predictably.


Demo

  • Demo added (demo.html works by opening directly in a browser)

Browser Testing

  • Chrome
  • Firefox
  • Edge
  • Safari (optional but appreciated)

Notes for Maintainer

This PR is a companion to issue #872. The core fix requires:

  1. Removing the first .ease-zoom-in block (~line 452) and orphaned @keyframes ease-zoom-in
  2. Keeping the second definition using ease-kf-zoom-in with design tokens
  3. Also cleaning up duplicate @keyframes ease-kf-slide-image-exit (lines 333, 372, 390),
    @keyframes ease-kf-shimmer-sweep (lines 343, 382) and .ease-shimmer-sweep class (lines 499, 516)
  4. Regenerating easemotion.min.css via npm run build

Feel free to adjust timing or naming during integration.


Reminder: Only the repository maintainer may merge pull requests.
Do not self-merge, even if you have write access.
Maximum 2 active assigned issues per contributor — unassign extras before opening a PR.

@SAPTARSHI-coder SAPTARSHI-coder added accepted Contribution approved for integration into EaseMotion CSS animation Animation effects, hover interactions, motion ideas, transitions component New UI components (buttons, cards, modals, tooltips, badges) enhancement New feature or request good first issue Good for newcomers GSSoC-26 Official GSSoC 2026 issue gssoc:approved Approved for GSSoC contributions integrated Successfully merged and included in the framework level:intermediate Requires moderate project understanding type:feature New functionality or enhancement labels Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

accepted Contribution approved for integration into EaseMotion CSS animation Animation effects, hover interactions, motion ideas, transitions component New UI components (buttons, cards, modals, tooltips, badges) enhancement New feature or request good first issue Good for newcomers gssoc:approved Approved for GSSoC contributions GSSoC-26 Official GSSoC 2026 issue integrated Successfully merged and included in the framework level:intermediate Requires moderate project understanding type:feature New functionality or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants