Skip to content

feat: add premium wave and bounce entrance animations#5948

Merged
JhaSourav07 merged 1 commit into
JhaSourav07:mainfrom
vivek0369:feat/premium-entrance-animations
Jun 18, 2026
Merged

feat: add premium wave and bounce entrance animations#5948
JhaSourav07 merged 1 commit into
JhaSourav07:mainfrom
vivek0369:feat/premium-entrance-animations

Conversation

@vivek0369

Copy link
Copy Markdown
Contributor

feat: add premium wave and bounce entrance animations

🎯 Summary

This PR introduces two new premium SVG/CSS entrance animations — wave and bounce — for CommitPulse's 3D isometric monolith visualization. These animations extend the existing &entrance= customization parameter, giving users more visually engaging ways to showcase their GitHub contribution activity.

Closes #<ISSUE_NUMBER>


✨ New Animations

🌊 &entrance=wave

Blocks grow upward with a sweeping overshoot crest (scaleY: 0 → 1.15 → 1).

Since towers already use staggered animation delays based on grid position ((row + col) * 0.015s), the animation naturally propagates across the monolith, creating a smooth left-to-right wave effect.

Keyframe: wave-up
Easing: cubic-bezier(0.16, 1, 0.3, 1)

Result

  • Smooth cascading motion

  • Premium visual appearance

  • Maintains existing rendering performance


🏀 &entrance=bounce

Blocks enter from above (translateY: -40px → 0) and settle using a multi-step elastic bounce:

0 → -10px → 0 → -4px → 0

The decreasing bounce amplitude simulates natural physics and provides a playful, dynamic entrance effect.

Keyframe: bounce-in
Easing: cubic-bezier(0.28, 0.84, 0.42, 1)

Result

  • Physics-inspired motion

  • Improved visual engagement

  • Smooth landing animation


🔧 Changes Made

File | Description -- | -- lib/svg/animations.ts | Added wave-up and bounce-in keyframes to getTowerAnimationCSS() lib/svg/generator.ts | Extended renderStyle() entrance union to support 'wave' and 'bounce' lib/validations.ts | Added new values to Zod .enum() validation types/index.ts | Updated BadgeParams.entrance type definitions types/index.test-d.ts | Updated compile-time type assertions lib/svg/animations.test.ts | Added unit tests for both new animations

🧪 Testing

Added Tests

  • ✅ Wave animation keyframe generation

  • ✅ Bounce animation keyframe generation

  • ✅ Correct CSS output generation

  • ✅ Type validation coverage

  • ✅ Schema validation coverage

Accessibility

  • ✅ Fully respects @media (prefers-reduced-motion: reduce)

  • ✅ Animations disabled when reduced motion is requested

  • ✅ Static rendering fallback maintained

Scaling Verification

  • ✅ Scale factor (sf) applied correctly to:

    • translateY offsets

    • bounce amplitudes

    • transform origins

    • animation transforms

Validation

  • ✅ Unknown entrance values continue to fall back to 'rise'

  • ✅ Existing behavior preserved through Zod .catch('rise')


📖 Usage

Wave Entrance

![Streak](https://commitpulse.vercel.app/api/streak?user=USERNAME&entrance=wave)

Bounce Entrance

![Streak](https://commitpulse.vercel.app/api/streak?user=USERNAME&entrance=bounce)

🔄 Backward Compatibility

This change is fully backward compatible.

Existing entrance values continue to function exactly as before:

  • rise

  • fade

  • slide

  • none

No breaking changes were introduced.


🚀 Benefits

  • Adds premium visual customization options

  • Improves GitHub profile presentation

  • Enhances user personalization

  • Demonstrates advanced SVG/CSS animation capabilities

  • Maintains performance and accessibility standards


📋 Checklist

  • Feature implemented

  • Unit tests added

  • Type definitions updated

  • Validation schema updated

  • Accessibility support included

  • Existing functionality preserved

  • Documentation updated

  • Lint checks passed

  • Tests passing

  • DCO sign-off completed

Related Issue

Fixes #5790

Add two new visually engaging SVG/CSS entrance animations for the 3D isometric monolith blocks:

- wave: blocks grow upward with a sweeping overshoot crest (scaleY 0 -> 1.15 -> 1), creating a left-to-right wave motion via staggered animation-delay

- bounce: blocks drop from above with a multi-step elastic bounce (translateY -40px -> 0 -> -10px -> 0 -> -4px -> 0), simulating a natural physics bounce

Changes:

- lib/svg/animations.ts: added wave-up and bounce-in keyframe branches

- lib/svg/generator.ts: widened renderStyle entrance union type

- lib/validations.ts: added wave and bounce to Zod enum

- types/index.ts: extended BadgeParams.entrance union

- types/index.test-d.ts: updated type assertion

- lib/svg/animations.test.ts: added unit tests for both animations

Usage: &entrance=wave or &entrance=bounce
Signed-off-by: Vivek Arya <vivekaryaa369@gmail.com>
@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

@vivek0369 is attempting to deploy a commit to the jhasourav07's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions

Copy link
Copy Markdown
Contributor

📦 Next.js Bundle Size Report (Gzipped Sizes)

✨ No significant bundle size changes detected.

📊 Summary of Totals

Category PR Size Base Size Difference
Total JS 3628.49 KB 3628.47 KB +0.02 KB (+0.00%)
Total CSS 284.92 KB 284.92 KB 0 B

@Aamod-Dev Aamod-Dev added level:intermediate Moderate complexity tasks quality:clean PR follows clean coding practices, proper formatting, documentation, and maintainability standards. type:feature New features, additions, or enhancements mentor:Aamod007 labels Jun 18, 2026

@Aamod-Dev Aamod-Dev left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Difficulty: intermediate – Adds wave/bounce entrance animations to animations.ts with keyframes, updates generator.ts and validations.ts enum, includes tests.

Quality: clean – Complete implementation with cubic-bezier easing, transform-origin handling.

Type: feature – New premium animation options for SVG towers.

Nice animations!

@JhaSourav07 JhaSourav07 added the gssoc:approved PR has been reviewed and accepted for valid contribution points label Jun 18, 2026
@JhaSourav07 JhaSourav07 merged commit 17f85c4 into JhaSourav07:main Jun 18, 2026
9 of 10 checks passed
@github-actions github-actions Bot added this to the GSSoC 2026 milestone Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🎉 Congratulations @vivek0369! Your PR has been successfully merged. 🚀

Thank you for contributing to CommitPulse. Your work helps us build a better tool for the community.

⚠️ Important for GSSoC Contributors:
You are strictly advised to join our Discord Server as it is mandatory for all GSSoC participants. All important announcements, point claims, and community discussions happen there.

Keep building! 💻✨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc:approved PR has been reviewed and accepted for valid contribution points level:intermediate Moderate complexity tasks mentor:Aamod007 quality:clean PR follows clean coding practices, proper formatting, documentation, and maintainability standards. type:feature New features, additions, or enhancements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Add Premium Animated Entrance Effects for Monolith Blocks

3 participants